diff --git a/xReleaseAssistant_Kanban_1.html b/BKP/14050626/xReleaseAssistant_Kanban_1.html similarity index 100% rename from xReleaseAssistant_Kanban_1.html rename to BKP/14050626/xReleaseAssistant_Kanban_1.html diff --git a/xReleaseAssistant_Kanban_2.html b/BKP/14050626/xReleaseAssistant_Kanban_2.html similarity index 97% rename from xReleaseAssistant_Kanban_2.html rename to BKP/14050626/xReleaseAssistant_Kanban_2.html index 2f38ff3..2cf356c 100644 --- a/xReleaseAssistant_Kanban_2.html +++ b/BKP/14050626/xReleaseAssistant_Kanban_2.html @@ -28,6 +28,7 @@ --danger: #e53e3e; --warning: #dd6b20; --info: #3182ce; + --column-bg: #edf2f7; --shadow: 0 4px 6px rgba(0, 0, 0, 0.08), 0 10px 20px rgba(26, 54, 93, 0.1); --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.06); @@ -50,6 +51,7 @@ --text: #e2e8f0; --text-muted: #cbd5e0; --text-light: #a0aec0; + --column-bg: #374151; --border: #4a5568; --border-light: #374151; --shadow: 0 4px 6px rgba(0, 0, 0, 0.3), 0 10px 20px rgba(0, 0, 0, 0.4); @@ -2156,6 +2158,322 @@ opacity: 0.3; margin-bottom: 20px; } + /* ═══════════════════════════════════════════════════ + 🎴 Kanban Columns & Cards (Release Boards) + ═══════════════════════════════════════════════════ */ + + /* ── ستون‌ها ── */ + .column { + border-radius: var(--radius); + min-width: 300px; + max-width: 300px; + max-height: calc(100% - 20px); + display: flex; + flex-direction: column; + box-shadow: var(--shadow-sm); + border: 1px solid var(--border); + transition: all 0.2s; + background: var(--column-bg); + } + + .column-header { + padding: 12px 14px; + display: flex; + align-items: center; + justify-content: space-between; + border-bottom: 1px solid var(--border); + background: linear-gradient( + to bottom, + rgba(255, 255, 255, 0.3), + transparent + ); + border-radius: var(--radius) var(--radius) 0 0; + } + + .column-title { + font-weight: 700; + font-size: 14px; + display: flex; + align-items: center; + gap: 8px; + flex: 1; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + + .column-count { + font-size: 11px; + padding: 2px 8px; + border-radius: 10px; + font-weight: 700; + background: rgba(0, 0, 0, 0.15); + color: inherit; + flex-shrink: 0; + } + + .column-actions { + display: flex; + gap: 4px; + flex-shrink: 0; + } + + .column-action-btn { + background: transparent; + border: none; + cursor: pointer; + color: inherit; + opacity: 0.7; + padding: 4px 6px; + border-radius: 4px; + font-size: 14px; + transition: all 0.2s; + } + + .column-action-btn:hover { + background: rgba(0, 0, 0, 0.1); + opacity: 1; + } + + .column-body { + padding: 10px; + overflow-y: auto; + flex: 1; + min-height: 60px; + } + + .column-body::-webkit-scrollbar { + width: 6px; + } + .column-body::-webkit-scrollbar-thumb { + background: rgba(0, 0, 0, 0.15); + border-radius: 3px; + } + + .column-footer { + padding: 8px; + border-top: 1px solid var(--border); + } + + /* ── دکمه افزودن کارت ── */ + .add-card-btn { + width: 100%; + background: transparent; + border: 1px dashed var(--border); + color: var(--text-muted); + padding: 8px; + border-radius: var(--radius-sm); + cursor: pointer; + font-family: inherit; + font-size: 13px; + display: flex; + align-items: center; + justify-content: center; + gap: 6px; + transition: all 0.2s; + } + + .add-card-btn:hover { + background: var(--card-bg); + border-color: var(--accent); + color: var(--accent-dark); + } + + /* ── دکمه افزودن ستون ── */ + .add-column-btn { + background: rgba(255, 255, 255, 0.5); + border: 2px dashed var(--border); + border-radius: var(--radius); + min-width: 280px; + min-height: 100px; + cursor: pointer; + color: var(--text-muted); + font-family: inherit; + font-size: 14px; + font-weight: 600; + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + transition: all 0.2s; + flex-shrink: 0; + } + + [data-theme="dark"] .add-column-btn { + background: rgba(255, 255, 255, 0.05); + } + + .add-column-btn:hover { + background: var(--card-bg); + border-color: var(--accent); + color: var(--accent-dark); + } + + /* ── کارت‌ها ── */ + .card { + background: var(--card-bg); + border-radius: 8px; + padding: 12px; + margin-bottom: 8px; + box-shadow: var(--shadow-sm); + cursor: pointer; + border: 1px solid var(--border); + transition: all 0.15s; + position: relative; + } + + .card:hover { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); + transform: translateY(-1px); + border-color: var(--accent); + } + + .card:active { + cursor: grabbing; + } + + /* ── تگ‌های کارت ── */ + .card-tags { + display: flex; + flex-wrap: wrap; + gap: 4px; + margin-bottom: 8px; + } + + .card-tag { + font-size: 10px; + padding: 2px 8px; + border-radius: 10px; + font-weight: 600; + color: white; + display: inline-block; + } + + /* ── عنوان و توضیحات کارت ── */ + .card-title { + font-weight: 700; + font-size: 13px; + margin-bottom: 6px; + line-height: 1.5; + color: var(--text); + } + + .card-desc { + font-size: 12px; + margin-bottom: 8px; + line-height: 1.6; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + opacity: 0.85; + color: var(--text-muted); + } + + /* ── متادیتای کارت ── */ + .card-meta { + display: flex; + flex-wrap: wrap; + gap: 6px; + font-size: 11px; + align-items: center; + opacity: 0.9; + margin-top: 6px; + } + + .card-meta-item { + display: inline-flex; + align-items: center; + gap: 3px; + background: rgba(0, 0, 0, 0.08); + padding: 2px 6px; + border-radius: 4px; + color: var(--text-muted); + } + + [data-theme="dark"] .card-meta-item { + background: rgba(255, 255, 255, 0.15); + color: var(--text); + } + + .card-meta-item.overdue { + background: #fed7d7; + color: var(--danger); + font-weight: 600; + opacity: 1; + } + + .card-meta-item.soon { + background: #fef5e7; + color: var(--warning); + font-weight: 600; + opacity: 1; + } + + [data-theme="dark"] .card-meta-item.overdue { + background: rgba(229, 62, 62, 0.3); + color: #feb2b2; + } + + [data-theme="dark"] .card-meta-item.soon { + background: rgba(221, 107, 32, 0.3); + color: #fbd38d; + } + + /* ── نوار پیشرفت چک‌لیست ── */ + .card-checklist-progress { + width: 100%; + height: 4px; + background: rgba(0, 0, 0, 0.1); + border-radius: 2px; + overflow: hidden; + margin-top: 8px; + } + + [data-theme="dark"] .card-checklist-progress { + background: rgba(255, 255, 255, 0.15); + } + + .card-checklist-bar { + height: 100%; + background: linear-gradient(90deg, var(--success), #48bb78); + transition: width 0.3s; + } + + /* ── چیپ‌های تگ (برای مودال ویرایش) ── */ + .tag-chip { + display: inline-flex; + align-items: center; + gap: 4px; + padding: 4px 10px; + border-radius: 12px; + font-size: 12px; + font-weight: 600; + color: white; + transition: all 0.15s; + border: 2px solid transparent; + user-select: none; + } + + .tag-chip.selected { + border-color: var(--primary); + transform: scale(1.05); + box-shadow: + 0 0 0 2px var(--card-bg), + 0 0 0 4px var(--primary); + } + + .tag-chip:hover { + opacity: 0.85; + } + + /* ── حالت خالی ستون ── */ + .rb-board-area .empty-state { + text-align: center; + padding: 20px 10px; + color: var(--text-muted); + font-size: 12px; + } ::-webkit-scrollbar { width: 8px; @@ -7582,13 +7900,14 @@ wrapper.style.display = "flex"; boardArea.style.background = board.backgroundColor || ""; + // ✅ رندر ستون‌ها + دکمه افزودن ستون wrapper.innerHTML = board.columns.map((col) => this.renderColumn(col)).join("") + ` - - `; + + `; }, renderColumn(col) { @@ -7599,34 +7918,34 @@ if (col.textColor) style.push(`color:${col.textColor};`); return ` -
-
-
- ${this.escapeHtml(col.title)} - ${cardCount} -
-
- - -
+
+
+
+ ${this.escapeHtml(col.title)} + ${cardCount}
-
- ${ - col.cards.length === 0 - ? ` -
-
📭
-
کارتی وجود ندارد
-
- ` - : col.cards.map((card) => this.renderCard(card)).join("") - } -
- - `; +
+ ${ + col.cards.length === 0 + ? ` +
+
📭
+
کارتی وجود ندارد
+
+ ` + : col.cards.map((card) => this.renderCard(card)).join("") + } +
+ +
+ `; }, renderCard(card) { diff --git a/BKP/14050626/xReleaseAssistant_Kanban_3.html b/BKP/14050626/xReleaseAssistant_Kanban_3.html new file mode 100644 index 0000000..527dbc3 --- /dev/null +++ b/BKP/14050626/xReleaseAssistant_Kanban_3.html @@ -0,0 +1,10517 @@ + + + + + + دستیار انتشار + + + + + +
+
+ +
+
دستیار انتشار
+
+ مدیریت نسخه‌ها و نیازمندی‌های محصولات +
+
+
+
+
+
+ + + + +
+ +
+
+ 🏷️ +
+
+ 🌐 +
+
+
+
+ 📋 0 +
+
+ 📦 0 +
+
+ 🌿 0 +
+
+ 🔗 0 +
+
+
+
+ +
+
+
+
+ طراح و توسعه‌دهنده: هادی خزاعی اصل + |شرکت: رایان پرداز کاوش +
+
نسخه: 1.1.0
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + diff --git a/BKP/14050626/xReleaseAssistant_Kanban_4.html b/BKP/14050626/xReleaseAssistant_Kanban_4.html new file mode 100644 index 0000000..e93e6a9 --- /dev/null +++ b/BKP/14050626/xReleaseAssistant_Kanban_4.html @@ -0,0 +1,10741 @@ + + + + + + دستیار انتشار + + + + + +
+
+ +
+
دستیار انتشار
+
+ مدیریت نسخه‌ها و نیازمندی‌های محصولات +
+
+
+
+
+
+ + + + +
+ +
+
+ 🏷️ +
+
+ 🌐 +
+
+
+
+ 📋 0 +
+
+ 📦 0 +
+
+ 🌿 0 +
+
+ 🔗 0 +
+
+
+
+ +
+
+
+
+ طراح و توسعه‌دهنده: هادی خزاعی اصل + |شرکت: رایان پرداز کاوش +
+
نسخه: 1.1.0
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + diff --git a/BKP/14050626/xReleaseAssistant_Kanban_AutoSaveRecover_5.html b/BKP/14050626/xReleaseAssistant_Kanban_AutoSaveRecover_5.html new file mode 100644 index 0000000..7771293 --- /dev/null +++ b/BKP/14050626/xReleaseAssistant_Kanban_AutoSaveRecover_5.html @@ -0,0 +1,11637 @@ + + + + + + دستیار انتشار + + + + + +
+
+ +
+
دستیار انتشار
+
+ مدیریت نسخه‌ها و نیازمندی‌های محصولات +
+
+
+
+
+
+ + + + +
+ +
+
+ 🏷️ +
+
+ 🌐 +
+
+
+
+ 📋 0 +
+
+ 📦 0 +
+
+ 🌿 0 +
+
+ 🔗 0 +
+
+
+
+ +
+
+
+
+ طراح و توسعه‌دهنده: هادی خزاعی اصل + |شرکت: رایان پرداز کاوش +
+
نسخه: 1.1.0
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ ذخیره خودکار انجام شد +
+ + + +
+
+
+ + + + + diff --git a/Prompts.txt b/Prompts.txt index d51563e..6621854 100644 --- a/Prompts.txt +++ b/Prompts.txt @@ -1 +1,5 @@ -- پس از هر تغییر مهم، مثلا ثبت تغییرات، افزودن پروژه ها، درج وابستگی، ویرایش و یا پاکسازی، یا بازیابی فایل، اطلاعات باید بروزرسانی شوند که این اتفاق نمی افتد. این موارد رو بررسی کن و پروژه رو با رفع این مشکل بروزرسانی کن سپس کد کامل پروژه رو ارائه بده ... \ No newline at end of file +آخرین نسخه تایید شده +- در گروه بردها از ابزارها یک گزینه بنام "مدیریت تگ ها" اضافه کن و در صورت انتخاب کاربر مودال مدیریت تگ ها را نمایش بده. +- قابلیت فیلتر کارت‌ها بر اساس تگ در مودال بردها اضافه شود. +- قابلیت Drag & Drop ستونها و کارت‌ها بین ستون‌ها پیاده‌سازی شود. +- قابلیت جستجوی کارت‌ها در برد فعال اضافه شود. \ No newline at end of file diff --git a/deepseek_html_20260917_3131af.html b/deepseek_html_20260917_3131af.html new file mode 100644 index 0000000..340dceb --- /dev/null +++ b/deepseek_html_20260917_3131af.html @@ -0,0 +1,8899 @@ + + + + + + دستیار انتشار + + + + + +
+
+ +
+
دستیار انتشار
+
+ مدیریت نسخه‌ها و نیازمندی‌های محصولات +
+
+
+
+
+
+ + + + +
+ +
+
+ 🏷️ +
+
+ 🌐 +
+
+
+
+ 📋 0 +
+
+ 📦 0 +
+
+ 🌿 0 +
+
+ 🔗 0 +
+
+
+
+ +
+
+
+
+ طراح و توسعه‌دهنده: هادی خزاعی اصل + |شرکت: رایان پرداز کاوش +
+
نسخه: 1.1.0
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ ذخیره خودکار انجام شد +
+ + + +
+
+
+ + + + \ No newline at end of file diff --git a/xReleaseAssistant.html b/xReleaseAssistant.html index ecd7ac9..7771293 100644 --- a/xReleaseAssistant.html +++ b/xReleaseAssistant.html @@ -28,6 +28,7 @@ --danger: #e53e3e; --warning: #dd6b20; --info: #3182ce; + --column-bg: #edf2f7; --shadow: 0 4px 6px rgba(0, 0, 0, 0.08), 0 10px 20px rgba(26, 54, 93, 0.1); --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.06); @@ -50,6 +51,7 @@ --text: #e2e8f0; --text-muted: #cbd5e0; --text-light: #a0aec0; + --column-bg: #374151; --border: #4a5568; --border-light: #374151; --shadow: 0 4px 6px rgba(0, 0, 0, 0.3), 0 10px 20px rgba(0, 0, 0, 0.4); @@ -1990,6 +1992,688 @@ display: block; } + /* ── Release Boards Modal Toolbar ── */ + .rb-toolbar { + display: flex; + gap: 6px; + align-items: center; + flex-wrap: wrap; + padding: 8px 12px; + background: linear-gradient( + 135deg, + var(--primary-dark), + var(--primary) + ); + border-bottom: 1px solid var(--border); + } + .rb-toolbar .btn { + background: rgba(255, 255, 255, 0.12); + border: 1px solid rgba(255, 255, 255, 0.2); + color: #fff; + font-size: 11px; + padding: 5px 10px; + } + .rb-toolbar .btn:hover { + background: var(--accent); + color: var(--primary-dark); + } + .rb-toolbar .btn.btn-accent { + background: linear-gradient(135deg, var(--accent), var(--accent-dark)); + color: var(--primary-dark); + font-weight: 700; + } + .rb-toolbar .btn.btn-danger { + background: linear-gradient(135deg, #f56565, #e53e3e); + color: #fff; + } + .rb-toolbar-separator { + width: 1px; + height: 24px; + background: rgba(255, 255, 255, 0.2); + margin: 0 4px; + } + + /* ── Release Boards Tab Bar ── */ + .rb-tabs-bar { + background: linear-gradient( + 135deg, + var(--primary-dark) 0%, + var(--primary) 100% + ); + border-bottom: 2px solid var(--accent); + display: flex; + align-items: center; + padding: 0 10px; + min-height: 42px; + gap: 3px; + overflow-x: auto; + } + .rb-tabs-bar::-webkit-scrollbar { + height: 4px; + } + .rb-tabs-bar::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.2); + border-radius: 2px; + } + + .rb-tab-item { + padding: 7px 14px; + background: rgba(255, 255, 255, 0.08); + border: 1px solid rgba(255, 255, 255, 0.1); + cursor: pointer; + font-family: inherit; + font-size: 12px; + font-weight: 500; + color: rgba(255, 255, 255, 0.85); + border-radius: 6px 6px 0 0; + display: flex; + align-items: center; + gap: 8px; + white-space: nowrap; + transition: all 0.2s; + border-bottom: 2px solid transparent; + } + .rb-tab-item:hover { + background: rgba(255, 255, 255, 0.15); + color: #fff; + } + .rb-tab-item.active { + background: var(--accent); + color: var(--primary-dark); + font-weight: 700; + border-bottom-color: var(--primary-dark); + } + .rb-tab-close { + width: 18px; + height: 18px; + border-radius: 50%; + background: transparent; + border: none; + cursor: pointer; + color: inherit; + font-size: 11px; + display: flex; + align-items: center; + justify-content: center; + opacity: 0.6; + transition: all 0.2s; + } + .rb-tab-item:hover .rb-tab-close { + opacity: 1; + } + .rb-tab-close:hover { + background: var(--danger); + color: #fff; + } + + .rb-tab-add { + background: rgba(255, 255, 255, 0.08); + border: 1px dashed rgba(255, 255, 255, 0.3); + color: rgba(255, 255, 255, 0.7); + padding: 7px 12px; + border-radius: 6px; + cursor: pointer; + font-size: 14px; + font-weight: 700; + transition: all 0.2s; + } + .rb-tab-add:hover { + background: var(--accent); + color: var(--primary-dark); + border-color: var(--accent); + } + + .rb-empty-tabs { + color: rgba(255, 255, 255, 0.5); + font-size: 12px; + padding: 0 10px; + } + + /* ── Release Boards Body ── */ + .rb-board-area { + flex: 1; + overflow: auto; + padding: 20px; + background: var(--board-bg); + } + .rb-board-wrapper { + display: flex; + gap: 15px; + align-items: flex-start; + min-height: calc(100% - 40px); + padding-bottom: 20px; + } + .rb-empty-state { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 100%; + color: var(--text-muted); + text-align: center; + padding: 60px 20px; + } + .rb-empty-state-icon { + font-size: 80px; + opacity: 0.3; + margin-bottom: 20px; + } + /* ── سوییچ ستون‌های پیش‌فرض ── */ + .rb-default-columns-switch { + border: 1px solid var(--border); + border-radius: var(--radius-sm); + padding: 12px; + background: var(--border-light); + } + + .rb-switch-label { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + cursor: pointer; + user-select: none; + } + + .rb-switch-info { + flex: 1; + min-width: 0; + } + + .rb-switch-title { + font-size: 13px; + font-weight: 700; + color: var(--text); + margin-bottom: 2px; + } + + .rb-switch-desc { + font-size: 11px; + color: var(--text-muted); + line-height: 1.5; + } + + .rb-default-columns-preview { + display: flex; + gap: 6px; + margin-top: 10px; + padding-top: 10px; + border-top: 1px dashed var(--border); + flex-wrap: wrap; + animation: rbFadeIn 0.3s ease; + } + + .rb-default-columns-preview.hidden { + display: none; + } + + .rb-preview-column { + flex: 1; + min-width: 80px; + padding: 8px 10px; + border-radius: 6px; + font-size: 11px; + font-weight: 600; + text-align: center; + border: 1px solid rgba(0, 0, 0, 0.08); + box-shadow: var(--shadow-sm); + transition: transform 0.2s; + } + + .rb-preview-column:hover { + transform: translateY(-2px); + } + + @keyframes rbFadeIn { + from { + opacity: 0; + transform: translateY(-5px); + } + to { + opacity: 1; + transform: translateY(0); + } + } + /* ═══════════════════════════════════════════════════ + 🎴 Kanban Columns & Cards (Release Boards) + ═══════════════════════════════════════════════════ */ + + /* ── ستون‌ها ── */ + .column { + border-radius: var(--radius); + min-width: 300px; + max-width: 300px; + max-height: calc(100% - 20px); + display: flex; + flex-direction: column; + box-shadow: var(--shadow-sm); + border: 1px solid var(--border); + transition: all 0.2s; + background: var(--column-bg); + } + + .column-header { + padding: 12px 14px; + display: flex; + align-items: center; + justify-content: space-between; + border-bottom: 1px solid var(--border); + background: linear-gradient( + to bottom, + rgba(255, 255, 255, 0.3), + transparent + ); + border-radius: var(--radius) var(--radius) 0 0; + } + + .column-title { + font-weight: 700; + font-size: 14px; + display: flex; + align-items: center; + gap: 8px; + flex: 1; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + + .column-count { + font-size: 11px; + padding: 2px 8px; + border-radius: 10px; + font-weight: 700; + background: rgba(0, 0, 0, 0.15); + color: inherit; + flex-shrink: 0; + } + + .column-actions { + display: flex; + gap: 4px; + flex-shrink: 0; + } + + .column-action-btn { + background: transparent; + border: none; + cursor: pointer; + color: inherit; + opacity: 0.7; + padding: 4px 6px; + border-radius: 4px; + font-size: 14px; + transition: all 0.2s; + } + + .column-action-btn:hover { + background: rgba(0, 0, 0, 0.1); + opacity: 1; + } + + .column-body { + padding: 10px; + overflow-y: auto; + flex: 1; + min-height: 60px; + } + + .column-body::-webkit-scrollbar { + width: 6px; + } + .column-body::-webkit-scrollbar-thumb { + background: rgba(0, 0, 0, 0.15); + border-radius: 3px; + } + + .column-footer { + padding: 8px; + border-top: 1px solid var(--border); + } + + /* ── دکمه افزودن کارت ── */ + .add-card-btn { + width: 100%; + background: transparent; + border: 1px dashed var(--border); + color: var(--text-muted); + padding: 8px; + border-radius: var(--radius-sm); + cursor: pointer; + font-family: inherit; + font-size: 13px; + display: flex; + align-items: center; + justify-content: center; + gap: 6px; + transition: all 0.2s; + } + + .add-card-btn:hover { + background: var(--card-bg); + border-color: var(--accent); + color: var(--accent-dark); + } + + /* ── دکمه افزودن ستون ── */ + .add-column-btn { + background: rgba(255, 255, 255, 0.5); + border: 2px dashed var(--border); + border-radius: var(--radius); + min-width: 280px; + min-height: 100px; + cursor: pointer; + color: var(--text-muted); + font-family: inherit; + font-size: 14px; + font-weight: 600; + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + transition: all 0.2s; + flex-shrink: 0; + } + + [data-theme="dark"] .add-column-btn { + background: rgba(255, 255, 255, 0.05); + } + + .add-column-btn:hover { + background: var(--card-bg); + border-color: var(--accent); + color: var(--accent-dark); + } + + /* ── کارت‌ها ── */ + .card { + background: var(--card-bg); + border-radius: 8px; + padding: 12px; + margin-bottom: 8px; + box-shadow: var(--shadow-sm); + cursor: pointer; + border: 1px solid var(--border); + transition: all 0.15s; + position: relative; + } + + .card:hover { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); + transform: translateY(-1px); + border-color: var(--accent); + } + + .card:active { + cursor: grabbing; + } + + /* ── تگ‌های کارت ── */ + .card-tags { + display: flex; + flex-wrap: wrap; + gap: 4px; + margin-bottom: 8px; + } + + .card-tag { + font-size: 10px; + padding: 2px 8px; + border-radius: 10px; + font-weight: 600; + color: white; + display: inline-block; + } + + /* ── عنوان و توضیحات کارت ── */ + .card-title { + font-weight: 700; + font-size: 13px; + margin-bottom: 6px; + line-height: 1.5; + color: var(--text); + } + + .card-desc { + font-size: 12px; + margin-bottom: 8px; + line-height: 1.6; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + opacity: 0.85; + color: var(--text-muted); + } + + /* ── متادیتای کارت ── */ + .card-meta { + display: flex; + flex-wrap: wrap; + gap: 6px; + font-size: 11px; + align-items: center; + opacity: 0.9; + margin-top: 6px; + } + + .card-meta-item { + display: inline-flex; + align-items: center; + gap: 3px; + background: rgba(0, 0, 0, 0.08); + padding: 2px 6px; + border-radius: 4px; + color: var(--text-muted); + } + + [data-theme="dark"] .card-meta-item { + background: rgba(255, 255, 255, 0.15); + color: var(--text); + } + + .card-meta-item.overdue { + background: #fed7d7; + color: var(--danger); + font-weight: 600; + opacity: 1; + } + + .card-meta-item.soon { + background: #fef5e7; + color: var(--warning); + font-weight: 600; + opacity: 1; + } + + [data-theme="dark"] .card-meta-item.overdue { + background: rgba(229, 62, 62, 0.3); + color: #feb2b2; + } + + [data-theme="dark"] .card-meta-item.soon { + background: rgba(221, 107, 32, 0.3); + color: #fbd38d; + } + + /* ── نوار پیشرفت چک‌لیست ── */ + .card-checklist-progress { + width: 100%; + height: 4px; + background: rgba(0, 0, 0, 0.1); + border-radius: 2px; + overflow: hidden; + margin-top: 8px; + } + + [data-theme="dark"] .card-checklist-progress { + background: rgba(255, 255, 255, 0.15); + } + + .card-checklist-bar { + height: 100%; + background: linear-gradient(90deg, var(--success), #48bb78); + transition: width 0.3s; + } + + /* ── چیپ‌های تگ (برای مودال ویرایش) ── */ + .tag-chip { + display: inline-flex; + align-items: center; + gap: 4px; + padding: 4px 10px; + border-radius: 12px; + font-size: 12px; + font-weight: 600; + color: white; + transition: all 0.15s; + border: 2px solid transparent; + user-select: none; + } + + .tag-chip.selected { + border-color: var(--primary); + transform: scale(1.05); + box-shadow: + 0 0 0 2px var(--card-bg), + 0 0 0 4px var(--primary); + } + + .tag-chip:hover { + opacity: 0.85; + } + + /* ── مدیریت تگ‌ها ── */ + .rb-tag-add-form { + background: var(--border-light); + border: 1px solid var(--border); + border-radius: var(--radius-sm); + padding: 12px; + margin-bottom: 16px; + } + + .rb-tag-list-header { + display: flex; + align-items: center; + justify-content: space-between; + font-size: 13px; + font-weight: 700; + color: var(--text); + margin-bottom: 10px; + padding-bottom: 8px; + border-bottom: 1px solid var(--border); + } + + .rb-tag-count { + background: var(--primary); + color: #fff; + font-size: 11px; + padding: 2px 8px; + border-radius: 10px; + font-weight: 700; + } + + .rb-tag-list { + max-height: 320px; + overflow-y: auto; + display: flex; + flex-direction: column; + gap: 6px; + } + + .rb-tag-list::-webkit-scrollbar { + width: 6px; + } + .rb-tag-list::-webkit-scrollbar-thumb { + background: rgba(0, 0, 0, 0.15); + border-radius: 3px; + } + + .rb-tag-item { + display: flex; + align-items: center; + gap: 10px; + padding: 8px 12px; + background: var(--card-bg); + border: 1px solid var(--border); + border-radius: var(--radius-sm); + transition: all 0.15s; + } + + .rb-tag-item:hover { + border-color: var(--accent); + box-shadow: var(--shadow-sm); + } + + .rb-tag-color-dot { + width: 16px; + height: 16px; + border-radius: 50%; + flex-shrink: 0; + border: 2px solid rgba(0, 0, 0, 0.1); + } + + .rb-tag-name { + flex: 1; + font-size: 13px; + font-weight: 600; + color: var(--text); + } + + .rb-tag-usage { + font-size: 11px; + color: var(--text-muted); + background: var(--border-light); + padding: 2px 8px; + border-radius: 10px; + } + + .rb-tag-actions { + display: flex; + gap: 4px; + } + + .rb-tag-action-btn { + background: transparent; + border: none; + cursor: pointer; + padding: 4px 6px; + border-radius: 4px; + font-size: 13px; + opacity: 0.6; + transition: all 0.15s; + } + + .rb-tag-action-btn:hover { + opacity: 1; + background: var(--border-light); + } + + .rb-tag-action-btn.danger:hover { + background: #fed7d7; + } + + .rb-tag-empty { + text-align: center; + padding: 30px 10px; + color: var(--text-muted); + font-size: 13px; + } + + .rb-tag-empty-icon { + font-size: 40px; + opacity: 0.3; + margin-bottom: 10px; + } + + /* ── حالت خالی ستون ── */ + .rb-board-area .empty-state { + text-align: center; + padding: 20px 10px; + color: var(--text-muted); + font-size: 12px; + } + ::-webkit-scrollbar { width: 8px; height: 8px; @@ -2815,10 +3499,700 @@
+ + + + + + + + + + + + + + + + + + + + + + +
+
+ ذخیره خودکار انجام شد +
+ + +
+ + + + + +
+
+ +
+
دستیار انتشار
+
+ مدیریت نسخه‌ها و نیازمندی‌های محصولات +
+
+
+
+
+
+ + + + +
+ +
+
+ 🏷️ +
+
+ 🌐 +
+
+
+
+ 📋 0 +
+
+ 📦 0 +
+
+ 🌿 0 +
+
+ 🔗 0 +
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ ذخیره خودکار انجام شد +
+ + + +
+
+
+ + + + +