@fastnd/components 1.0.12 → 1.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/BaseList/BaseList.d.ts +6 -0
- package/dist/components/BaseTable/BaseTable.d.ts +31 -0
- package/dist/components/DataCard/DataCard.d.ts +6 -0
- package/dist/components/FavoriteButton/FavoriteButton.d.ts +2 -0
- package/dist/components/ListItem/ListItem.d.ts +9 -0
- package/dist/components/WidgetCard/WidgetCard.d.ts +11 -0
- package/dist/components/index.d.ts +11 -1
- package/dist/components.js +997 -745
- package/package.json +1 -1
package/dist/components.js
CHANGED
|
@@ -1,77 +1,333 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document<"u"){var r=document.createElement("style");r.appendChild(document.createTextNode('._status-badge_c7rzu_3{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;border-radius:1rem;font-size:.75rem;font-weight:500;line-height:1;color:var(--custom-color, var(--current-color));background-color:var(--custom-bg, var(--current-bg));white-space:nowrap}._status-badge_c7rzu_3:before{content:"";display:block;width:6px;height:6px;border-radius:50%;background-color:var(--custom-color, var(--current-color))}._status-badge--neu_c7rzu_26{--current-color: var(--status-neu);--current-bg: color-mix(in srgb, var(--status-neu), transparent 90%)}._status-badge--offen_c7rzu_31{--current-color: var(--status-offen);--current-bg: color-mix(in srgb, var(--status-offen), transparent 90%)}._status-badge--in-prufung_c7rzu_36{--current-color: var(--status-in-prufung);--current-bg: color-mix(in srgb, var(--status-in-prufung), transparent 90%)}._status-badge--validierung_c7rzu_41{--current-color: var(--status-validierung);--current-bg: color-mix(in srgb, var(--status-validierung), transparent 90%)}._status-badge--abgeschlossen_c7rzu_46{--current-color: var(--status-abgeschlossen);--current-bg: color-mix(in srgb, var(--status-abgeschlossen), transparent 90%)}._favorite-btn_1jlmc_3{background:none;border:none;color:var(--custom-color, var(--on-surface-light));cursor:pointer;display:flex;align-items:center;justify-content:center;padding:.375rem;border-radius:var(--radius);transition:all .2s ease}._favorite-btn_1jlmc_3:hover,._favorite-btn_1jlmc_3:focus-visible{background-color:var(--surface-variant);color:var(--custom-active-color, var(--color-warning));outline:none}._favorite-btn--active_1jlmc_23{color:var(--custom-active-color, var(--color-warning))}._favorite-btn_1jlmc_3 svg{width:18px;height:18px;fill:currentColor}._status-legend__item_1xv4z_3{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-radius:calc(var(--radius) - 2px);cursor:pointer;transition:background-color .2s ease;border:1px solid transparent;background:none;width:100%}._status-legend__item_1xv4z_3:hover,._status-legend__item_1xv4z_3:focus-visible{background-color:var(--surface-variant);outline:none}._status-legend__item--active_1xv4z_22{background-color:var(--surface-variant);border-color:var(--border)}._status-legend__label-wrap_1xv4z_27{display:flex;align-items:center;gap:.5rem}._status-legend__color_1xv4z_33{width:12px;height:12px;border-radius:50%;flex-shrink:0;background-color:var(--custom-color, var(--current-color))}._status-legend__label_1xv4z_27{font-size:.875rem;color:var(--on-surface);font-weight:500}._status-legend__count_1xv4z_47{font-family:var(--font-grotesk);font-size:.875rem;color:var(--on-surface-variant);font-weight:600;background-color:var(--surface-variant);padding:.125rem .5rem;border-radius:1rem}._color-neu_1xv4z_57{--current-color: var(--status-neu)}._color-offen_1xv4z_61{--current-color: var(--status-offen)}._color-in-prufung_1xv4z_65{--current-color: var(--status-in-prufung)}._color-validierung_1xv4z_69{--current-color: var(--status-validierung)}._color-abgeschlossen_1xv4z_73{--current-color: var(--status-abgeschlossen)}._color-alle_1xv4z_77{--current-color: var(--status-alle)}._status-overview__chart-container_6nwc9_3{position:relative;width:200px;height:200px;margin:1rem auto 2rem;display:flex;align-items:center;justify-content:center}._status-chart-svg_6nwc9_13{width:100%;height:100%;position:absolute;top:0;left:0;filter:drop-shadow(var(--shadow-sm));pointer-events:none}._status-chart__segment_6nwc9_23{transition:all .3s cubic-bezier(.4,0,.2,1);stroke-linecap:butt;pointer-events:stroke}._status-chart__segment_6nwc9_23:hover,._status-chart__segment--hovered_6nwc9_30{stroke-width:48px;filter:brightness(1.1)}._status-chart__segment--dimmed_6nwc9_35{opacity:.6;filter:grayscale(.2)}._status-chart__hole_6nwc9_40{width:120px;height:120px;background-color:var(--surface);border-radius:50%;position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset var(--shadow-sm);clip-path:circle(50%)}._status-chart__total-value_6nwc9_55{font-family:var(--font-clash);font-size:2rem;font-weight:600;line-height:1;color:var(--on-surface)}._status-chart__total-label_6nwc9_63{font-size:.75rem;color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.05em;margin-top:.25rem}._table-container_y8cqq_3{overflow-x:auto}._project-table_y8cqq_7{width:100%;border-collapse:separate;border-spacing:0;text-align:left;table-layout:fixed}._project-table__head_y8cqq_15 th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--on-surface-variant);padding:.75rem 1rem;border-bottom:1px solid var(--border);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._project-table__head_y8cqq_15 th:nth-child(1){width:auto}._project-table__head_y8cqq_15 th:nth-child(2){width:20%}._project-table__head_y8cqq_15 th:nth-child(3){width:150px}._project-table__head_y8cqq_15 th:nth-child(4){width:160px}._project-table__row_y8cqq_33{transition:background-color .15s ease;cursor:default}._project-table__row_y8cqq_33:hover{background-color:var(--surface-hover)}._project-table__row_y8cqq_33 td{padding:1rem;border-bottom:1px solid var(--border);font-size:.875rem;color:var(--on-surface);vertical-align:middle}._project-table__row_y8cqq_33 td:nth-child(1),._project-table__row_y8cqq_33 td:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._project-table__row_y8cqq_33 td:nth-child(3),._project-table__row_y8cqq_33 td:nth-child(4){overflow:visible}._project-table__row_y8cqq_33:last-child td{border-bottom:none}._project-table__name-cell_y8cqq_66{display:flex;align-items:center;gap:.5rem}._project-table__favorite_y8cqq_72{margin-left:-.5rem}._project-table__name-wrapper_y8cqq_76{display:flex;flex-direction:column;overflow:hidden;min-width:0}._project-table__name_y8cqq_66{font-weight:500;color:var(--on-surface);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._project-table__app_y8cqq_92,._project-table__date-secondary_y8cqq_93{font-size:.75rem;color:var(--on-surface-variant);margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._project-table__client_y8cqq_102,._project-table__date-main_y8cqq_103{color:var(--on-surface-variant);font-size:.8125rem;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._project-table__date-main_y8cqq_103{color:var(--on-surface);font-weight:500}._avatar_17ic7_3{width:1.5rem;height:1.5rem;border-radius:50%;background-color:var(--surface-variant);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.625rem;font-weight:600;color:var(--on-surface);text-transform:uppercase}._avatar-group_17ic7_18{display:flex;align-items:center}._group-member_17ic7_23{margin-right:-.5rem;position:relative;z-index:1;border:2px solid var(--surface)}._group-member_17ic7_23:hover{z-index:10}._btn_7bh63_3{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;white-space:nowrap;border-radius:calc(var(--radius) - 2px);font-size:.875rem;font-weight:500;transition:all .2s cubic-bezier(.16,1,.3,1);cursor:pointer;border:1px solid transparent}._btn_7bh63_3:focus-visible{outline:2px solid var(--primary);outline-offset:2px}._btn_7bh63_3:active{transform:scale(.98)}._btn--primary_7bh63_27{background:var(--gradient-header);color:#fff;padding:.5rem 1rem;box-shadow:var(--shadow-sm)}._btn--primary_7bh63_27:hover{box-shadow:var(--shadow-md);opacity:.9}._btn--outline_7bh63_39{background-color:transparent;border-color:var(--border);color:var(--on-surface);padding:.375rem .75rem;min-width:110px}._btn--outline_7bh63_39:hover{background-color:var(--surface-variant);color:var(--on-surface)}._btn--ghost_7bh63_52{background-color:transparent;color:var(--on-surface-variant);padding:.375rem}._btn--ghost_7bh63_52:hover{background-color:var(--surface-variant);color:var(--on-surface)}._btn--sm_7bh63_63{padding:.2rem .4rem;font-size:.75rem;min-width:auto!important}._badge_1e35x_3{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-grotesk);font-weight:800}._badge--high_1e35x_12{background-color:var(--error-variant);color:var(--error);border:1px solid color-mix(in srgb,var(--error),transparent 80%)}._badge--medium_1e35x_18{background-color:var(--color-warning-variant);color:var(--color-warning);border:1px solid color-mix(in srgb,var(--color-warning),transparent 80%)}._badge--low_1e35x_24{background-color:var(--surface-variant);color:var(--on-surface-variant);border:1px solid var(--border)}._badge--size-small_1e35x_30{width:1.5rem;height:1.5rem;border-radius:.375rem;font-size:.75rem}._badge--size-large_1e35x_37{width:2.25rem;height:2.25rem;border-radius:.5rem;font-size:1.125rem}._badge--size-large_1e35x_37._badge--low_1e35x_24{font-size:.875rem}._badge_1j9lv_3{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background-color:var(--surface-variant);border-radius:2rem;font-size:.8125rem;font-weight:500}._status-dropdown_15zae_3{position:relative;display:inline-block;width:88px}._status-trigger_15zae_9{width:100%!important;justify-content:space-between!important}._status-menu_15zae_14{position:absolute;top:100%;right:0;margin-top:.25rem;background-color:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);box-shadow:var(--shadow-lg);z-index:100;width:100%;min-width:88px;display:none;padding:.25rem;animation:_fadeIn_15zae_1 .15s ease-out}._status-menu_15zae_14._is-open_15zae_31{display:block}._status-menu-item_15zae_35{width:100%;padding:.5rem .75rem;font-size:.8125rem;text-align:left;background:none;border:none;cursor:pointer;border-radius:calc(var(--radius) - 4px);color:var(--on-surface);transition:background-color .1s}._status-menu-item_15zae_35:hover{background-color:var(--surface-variant)}._status-menu-item_15zae_35._is-active_15zae_52{font-weight:500}._icon_15zae_56{width:1rem;height:1rem;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}._icon-sm_15zae_65{width:.875rem;height:.875rem}@keyframes _fadeIn_15zae_1{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}._checklist_ulozz_3{display:flex;flex-direction:column;gap:.5rem}._check-item_ulozz_9{display:flex;align-items:center;gap:.5rem;font-size:.875rem}._check-item_ulozz_9 input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--primary);cursor:pointer}._check-item_ulozz_9 label{cursor:pointer}._check-item_ulozz_9._is-done_ulozz_27 label{text-decoration:line-through;color:var(--on-surface-variant)}._checklist--readonly_ulozz_32 ._check-item_ulozz_9 label{cursor:pointer}._checklist--readonly_ulozz_32 ._check-item_ulozz_9 input[type=checkbox]{pointer-events:all}._form-control_ulozz_40{width:100%;padding:.125rem;border:none;background:transparent;color:var(--on-surface);font-family:inherit;font-size:.875rem;border-radius:calc(var(--radius) - 2px);transition:background-color .2s}._form-control_ulozz_40:focus{outline:none;background-color:var(--surface)}._is-done_ulozz_27 ._form-control_ulozz_40{text-decoration:line-through;color:var(--on-surface-variant)}._searchInput_16e7c_3{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border:1px solid var(--border);border-radius:1rem;background-color:var(--surface-variant);transition:border-color .15s ease,box-shadow .15s ease;min-width:200px}._searchInput_16e7c_3:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary),transparent 85%)}._icon_16e7c_20{width:14px;height:14px;color:var(--on-surface-variant);flex-shrink:0}._field_16e7c_27{border:none;background:none;font-family:var(--font-inter);font-size:.8125rem;color:var(--on-surface);outline:none;width:100%}._field_16e7c_27::placeholder{color:var(--on-surface-variant)}@media(max-width:1024px){._searchInput_16e7c_3{min-width:160px}}@media(max-width:640px){._searchInput_16e7c_3{flex:1;min-width:0}}._btn_6gx9b_3{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .5rem;border:1px solid var(--border);background:none;border-radius:calc(var(--radius) - 2px);font-family:var(--font-inter);font-size:.6875rem;font-weight:500;color:var(--on-surface-variant);cursor:pointer;transition:all .15s ease}._btn_6gx9b_3:hover{border-color:color-mix(in srgb,var(--primary),transparent 60%);color:var(--primary);background-color:var(--primary-container)}._btn_6gx9b_3:focus-visible{outline:2px solid var(--primary);outline-offset:1px}._chevron_6gx9b_30{width:12px;height:12px;transition:transform .2s ease;flex-shrink:0}._btn--open_6gx9b_37 ._chevron_6gx9b_30{transform:rotate(180deg)}._circle_gvt69_3{position:relative;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center}._svg_gvt69_12{width:100%;height:100%;transform:rotate(-90deg)}._track_gvt69_18{fill:none;stroke:var(--surface-variant);stroke-width:3}._fill_gvt69_24{fill:none;stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset .4s ease}._label_gvt69_31{position:absolute;font-family:var(--font-grotesk);font-size:.5625rem;font-weight:600;color:var(--on-surface)}._bar_l0q8t_3{display:flex;align-items:center;gap:.5rem}._track_l0q8t_9{width:60px;height:4px;background-color:var(--surface-variant);border-radius:2px;overflow:hidden}._fill_l0q8t_17{height:100%;border-radius:2px;background:var(--gradient-primary)}._value_l0q8t_23{font-family:var(--font-grotesk);font-size:.75rem;font-weight:500;color:var(--on-surface-variant);min-width:28px}._empty_26icj_3{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center}._icon_26icj_12{width:48px;height:48px;color:var(--on-surface-light);margin-bottom:1rem}._title_26icj_19{font-family:var(--font-clash);font-size:1.125rem;font-weight:500;color:var(--on-surface);margin-bottom:.25rem}._text_26icj_27{font-size:.8125rem;color:var(--on-surface-variant)}._toggle_176y2_3{display:inline-flex;background-color:var(--surface-variant);border-radius:calc(var(--radius) - 2px);padding:3px;gap:2px}._btn_176y2_11{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border:none;background:none;border-radius:calc(var(--radius) - 4px);font-family:var(--font-inter);font-size:.8125rem;font-weight:500;color:var(--on-surface-variant);cursor:pointer;transition:all .15s ease;white-space:nowrap}._btn_176y2_11:hover{color:var(--on-surface)}._btn_176y2_11:focus-visible{outline:2px solid var(--primary);outline-offset:1px}._btn--active_176y2_37{background-color:var(--surface);color:var(--on-surface);box-shadow:var(--shadow-sm)}._icon_176y2_43{width:16px;height:16px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}._icon_176y2_43>svg{width:100%;height:100%}._dashboard_1mbco_4{width:100%;display:grid;grid-template-columns:35% 65%;gap:1.5rem}@media(max-width:1024px){._dashboard_1mbco_4{grid-template-columns:1fr}}._dashboard-card_1mbco_17{background-color:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);border:1px solid var(--border);padding:1.5rem 2.5%;display:flex;flex-direction:column}._dashboard-card__header_1mbco_27{margin-bottom:1.5rem}._dashboard-card__title_1mbco_31{font-family:var(--font-clash);font-size:1.5rem;font-weight:500;color:var(--on-surface);margin:0}._status-legend_1mbco_39{display:flex;flex-direction:column;gap:.75rem}._project-filters_1mbco_45{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}._project-filters__search_1mbco_54{padding:.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background-color:var(--surface-variant);font-family:var(--font-inter);font-size:.875rem;color:var(--on-surface);width:250px;transition:border-color .2s,box-shadow .2s}._project-filters__search_1mbco_54:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary),transparent 80%)}._task-item_15khb_4{display:grid;grid-template-columns:55% 15% 30%;align-items:center;gap:0;padding:.75rem 5%;border-bottom:1px solid var(--border);transition:background-color .2s ease;cursor:pointer;font-family:var(--font-inter)}._task-item_15khb_4:last-child{border-bottom:none}._task-item_15khb_4:hover{background-color:var(--surface-hover)}._task-item__content_15khb_25{display:flex;flex-direction:column;gap:.375rem;min-width:0}._task-item__title-group_15khb_32{display:flex;align-items:center;gap:.375rem;min-width:0}._task-item__title_15khb_32{color:var(--on-surface);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.875rem;font-weight:500;line-height:1.25rem;font-family:var(--font-inter)}._task-item__meta_15khb_52{display:flex;align-items:center;gap:1.25rem;color:var(--on-surface-variant);font-size:.625rem;line-height:.875rem;font-family:var(--font-inter);min-width:0}._meta-user_15khb_64{display:flex;align-items:center;flex-shrink:0}._meta-project_15khb_70{display:flex;align-items:center;gap:.375rem;color:var(--on-surface-variant);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.75rem;flex:0 1 auto}._meta-project_15khb_70 ._icon-sm_15khb_83{flex-shrink:0}._task-item__deadline_15khb_88{white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right;font-family:var(--font-grotesk);font-size:.75rem;line-height:1rem}._deadline-urgent_15khb_97{color:var(--color-danger);font-weight:500}._deadline-normal_15khb_102{color:var(--on-surface-variant)}._task-item__actions_15khb_107{display:flex;align-items:center;gap:.5rem;justify-content:flex-end}._icon_15khb_83{width:1rem;height:1rem;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}._icon-sm_15khb_83{width:.875rem;height:.875rem;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}@media(max-width:640px){._task-item_15khb_4{grid-template-columns:1fr auto;grid-template-rows:auto auto;grid-template-areas:"content actions" "deadline actions";gap:.25rem .75rem}._task-item__content_15khb_25{grid-area:content}._task-item__deadline_15khb_88{grid-area:deadline;text-align:left}._task-item__actions_15khb_107{grid-area:actions;align-self:center}}._modal-overlay_m18cx_4{position:fixed;inset:0;background-color:#0f172a66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:50;opacity:0;pointer-events:none;transition:opacity .2s ease-out;padding:1rem}._modal-overlay_m18cx_4._is-active_m18cx_19{opacity:1;pointer-events:all}._modal-content_m18cx_25{background-color:var(--surface);color:var(--on-surface);font-family:var(--font-inter);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;transform:scale(.95) translateY(10px);transition:transform .2s ease-out;overflow:hidden}._modal-overlay_m18cx_4._is-active_m18cx_19 ._modal-content_m18cx_25{transform:scale(1) translateY(0)}._modal-header_m18cx_46{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}._modal-header-title_m18cx_55{margin:0;font-family:var(--font-clash);font-weight:500;font-size:1.25rem;line-height:1.75rem;color:var(--on-surface)}._modal-body_m18cx_65{padding:1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:1.5rem;scrollbar-width:thin;scrollbar-color:var(--border) transparent}._modal-body_m18cx_65::-webkit-scrollbar{width:4px}._modal-body_m18cx_65::-webkit-scrollbar-thumb{background-color:var(--border);border-radius:2px}._modal-footer_m18cx_84{padding:1rem 1.5rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.5rem;background:var(--surface-hover);flex-shrink:0}._view-group_m18cx_95{display:flex;flex-direction:column;gap:.375rem}._view-label_m18cx_101{font-size:.625rem;line-height:.875rem;color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.08em;font-weight:600;font-family:var(--font-inter)}._view-badge-row_m18cx_111{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:flex-start}._view-task-title_m18cx_118{margin:0;font-family:var(--font-clash);font-weight:600;font-size:1.25rem;line-height:1.4;color:var(--on-surface)}._view-value-strong_m18cx_127{font-family:var(--font-grotesk);font-weight:500;font-size:.9375rem;color:var(--on-surface)}._view-description_m18cx_134{font-size:.875rem;line-height:1.6;margin:0;color:var(--on-surface);font-family:var(--font-inter)}._text-muted_m18cx_142{color:var(--on-surface-variant);font-style:italic}._form-group_m18cx_148{display:flex;flex-direction:column;gap:.5rem}._form-row_m18cx_154{display:grid;grid-template-columns:1fr 1fr;gap:1rem}._form-label_m18cx_160{font-size:.625rem;line-height:.875rem;font-weight:600;color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-inter)}._form-control_m18cx_170{width:100%;padding:.625rem .75rem;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background-color:var(--surface);color:var(--on-surface);font-family:var(--font-inter);font-size:.875rem;line-height:1.25rem;transition:border-color .2s,box-shadow .2s;box-sizing:border-box;appearance:auto}._form-control_m18cx_170:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary),transparent 88%)}._textarea_m18cx_191{resize:vertical;min-height:80px}._icon_m18cx_197{width:1.25rem;height:1.25rem;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}._icon-pencil_m18cx_207{width:.875rem;height:.875rem;fill:currentColor}@media(max-width:640px){._form-row_m18cx_154{grid-template-columns:1fr}}:root{--surface: #ffffff;--surface-variant: #f0f1f2;--surface-hover: #f7f7f7;--border: #e0e4eb;--border-variant: rgba(0, 20, 41, .1);--on-surface: #001429;--on-surface-variant: #576472;--on-surface-light: #9aa2aa;--primary: #0073e6;--primary-variant: rgba(0, 115, 230, .07);--primary-container: rgba(0, 115, 230, .05);--error: #bd0c38;--error-variant: rgba(189, 12, 56, .07);--color-success: #1ec489;--color-success-dark: #148a5f;--color-success-variant: rgba(69, 220, 166, .2);--color-warning: #efaf55;--color-warning-dark: #b07a1e;--color-warning-variant: rgba(239, 175, 85, .25);--color-info: #8c46c4;--color-info-variant: rgba(169, 62, 255, .15);--color-danger: #f34e2a;--color-danger-variant: rgba(243, 78, 42, .2);--lifecycle-active: var(--color-success);--lifecycle-active-dark: var(--color-success-dark);--lifecycle-nrnd: var(--color-warning);--lifecycle-nrnd-dark: var(--color-warning-dark);--lifecycle-eol: var(--error);--lifecycle-production: var(--primary);--inventory-high: var(--color-success);--inventory-high-dark: var(--color-success-dark);--inventory-medium: var(--color-warning);--inventory-medium-dark: var(--color-warning-dark);--inventory-low: var(--error);--destructive: #bd0c38;--score-high: #1ec489;--score-medium: #efaf55;--score-low: #f34e2a;--sidebar-background: #ffffff;--sidebar-foreground: #001429;--sidebar-primary: #0073e6;--sidebar-accent: #f0f1f2;--sidebar-border: #e0e4eb;--status-alle: #576472;--status-neu: #0073e6;--status-offen: #efaf55;--status-in-prufung: #f34e2a;--status-validierung: #1ec489;--status-abgeschlossen: #1ec489;--radius: .5rem;--font-inter: "Inter", sans-serif;--font-clash: "Clash Grotesk", sans-serif;--font-grotesk: "Space Grotesk", sans-serif;--shadow-sm: 0 1px 2px 0 rgba(0, 20, 41, .04);--shadow-md: 0 4px 6px -1px rgba(0, 20, 41, .08);--shadow-lg: 0 10px 15px -3px rgba(0, 20, 41, .1);--shadow-card: 0 2px 8px rgba(0, 20, 41, .06);--gradient-primary: linear-gradient(135deg, #0073e6, #0053a3);--gradient-header: linear-gradient(135deg, #0053a3, #0073e6)}@media(prefers-color-scheme:dark){:root{--surface: #000000;--surface-variant: #18191b;--surface-hover: #0d0d0d;--border: #14181f;--border-variant: rgba(255, 255, 255, .1);--on-surface: #ffffff;--on-surface-variant: #9aa2aa;--on-surface-light: #576472;--primary: #0073e6;--primary-variant: rgba(0, 115, 230, .07);--primary-container: rgba(0, 115, 230, .05);--error: #bd0c38;--error-variant: rgba(189, 12, 56, .07);--color-success: #1ec489;--color-success-variant: rgba(69, 220, 166, .2);--color-warning: #efaf55;--color-warning-variant: rgba(239, 175, 85, .25);--color-info: #8c46c4;--color-info-variant: rgba(169, 62, 255, .15);--color-danger: #f34e2a;--color-danger-variant: rgba(243, 78, 42, .2);--sidebar-background: #000000;--sidebar-foreground: #ffffff;--sidebar-primary: #0073e6;--sidebar-accent: #18191b;--sidebar-border: #14181f;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5);--shadow-card: 0 2px 8px rgba(0, 0, 0, .3)}}._widget-card_gqjal_4{background-color:var(--surface);color:var(--on-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);display:flex;flex-direction:column;height:100%;max-width:520px;overflow:hidden;font-family:var(--font-inter);animation:_fadeIn_gqjal_1 .4s ease-out}._widget-header_gqjal_20{display:flex;justify-content:space-between;align-items:center;padding:1rem 5%;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0}._widget-header__title_gqjal_30{margin:0;font-family:var(--font-clash);font-size:1.25rem;font-weight:500;line-height:1.3;color:var(--on-surface);letter-spacing:-.02em}._task-list_gqjal_41{display:flex;flex-direction:column;overflow-y:auto;flex:1 1 0;scrollbar-width:thin;scrollbar-color:var(--border) transparent}._task-list_gqjal_41::-webkit-scrollbar{width:4px}._task-list_gqjal_41::-webkit-scrollbar-track{background:transparent}._task-list_gqjal_41::-webkit-scrollbar-thumb{background-color:var(--border);border-radius:2px}._icon_gqjal_64{width:1rem;height:1rem;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}._icon-sm_gqjal_74{width:.875rem;height:.875rem}@keyframes _fadeIn_gqjal_1{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}')),document.head.appendChild(r)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
|
|
2
|
-
import { jsx as e, jsxs as
|
|
3
|
-
import
|
|
4
|
-
function
|
|
5
|
-
var
|
|
6
|
-
if (typeof
|
|
7
|
-
else if (typeof
|
|
8
|
-
var
|
|
9
|
-
for (
|
|
10
|
-
} else for (
|
|
11
|
-
return
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var r=document.createElement("style");r.appendChild(document.createTextNode('._tableContainer_133qi_4{overflow-x:auto}._table_133qi_4{width:100%;border-collapse:separate;border-spacing:0;text-align:left;table-layout:fixed}._table__head_133qi_18 th{font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;color:var(--on-surface-variant);padding:.625rem 1rem;border-bottom:1px solid var(--border);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative}._table__head_133qi_18 th._sortable_133qi_32{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s ease}._table__head_133qi_18 th._sortable_133qi_32:hover{color:var(--on-surface)}._table__head_133qi_18 th:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}._sortIndicator_133qi_48{display:inline-flex;margin-left:.25rem;opacity:.4;vertical-align:middle}._table__head_133qi_18 th[aria-sort] ._sortIndicator_133qi_48{opacity:1;color:var(--primary)}._colResizeHandle_133qi_61{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize;z-index:5;background:transparent}._colResizeHandle_133qi_61:hover{background-color:var(--primary);opacity:.4}._table--resizing_133qi_77{cursor:col-resize;-webkit-user-select:none;user-select:none}._table--resizing_133qi_77 *{cursor:col-resize!important}._table__row_133qi_87{transition:background-color .1s ease}._table__row_133qi_87:hover{background-color:var(--surface-hover)}._table__row_133qi_87 td{padding:.75rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle;overflow:hidden;text-overflow:ellipsis}._table__row_133qi_87:last-child td{border-bottom:none}._table__row--animated_133qi_108{animation:_fadeInRow_133qi_1 .2s ease both}@keyframes _fadeInRow_133qi_1{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){._table__row--animated_133qi_108{animation:none}}@media(max-width:1024px){._col-hide-tablet_133qi_131{display:none}}@media(max-width:640px){._col-hide-mobile_133qi_137{display:none}}._widgetCard_gx9fj_4{background-color:var(--surface);color:var(--on-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);display:flex;flex-direction:column;height:100%;overflow:hidden;font-family:var(--font-inter);animation:_fadeIn_gx9fj_1 .4s ease-out}._widgetCard--half_gx9fj_18{max-width:520px}._widgetCard__header_gx9fj_23{display:flex;justify-content:space-between;align-items:center;padding:1rem 5%;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0}._widgetCard--full_gx9fj_33 ._widgetCard__header_gx9fj_23{padding:1.5rem 2.5%}._widgetCard__title_gx9fj_37{margin:0;font-family:var(--font-clash);font-size:1.25rem;font-weight:500;line-height:1.3;color:var(--on-surface);letter-spacing:-.02em}._widgetCard--full_gx9fj_33 ._widgetCard__title_gx9fj_37{font-size:1.5rem}._widgetCard__content_gx9fj_52{flex:1 1 0}._widgetCard__content--scrollable_gx9fj_56{overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}._widgetCard__content--scrollable_gx9fj_56::-webkit-scrollbar{width:4px}._widgetCard__content--scrollable_gx9fj_56::-webkit-scrollbar-track{background:transparent}._widgetCard__content--scrollable_gx9fj_56::-webkit-scrollbar-thumb{background-color:var(--border);border-radius:2px}._widgetCard__content--padded_gx9fj_76{padding:1rem 5%}._widgetCard--full_gx9fj_33 ._widgetCard__content--padded_gx9fj_76{padding:1.5rem 2.5%}@keyframes _fadeIn_gx9fj_1{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){._widgetCard_gx9fj_4{animation:none}}._dataCard_19cka_3{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;transition:box-shadow .15s ease,border-color .15s ease;display:flex;flex-direction:column;gap:.75rem}._dataCard_19cka_3:hover{box-shadow:var(--shadow-md)}._dataCard--clickable_19cka_18{cursor:pointer}._dataCard--clickable_19cka_18:focus-visible{outline:2px solid var(--primary);outline-offset:2px}._baseList_47qml_3{display:flex;flex-direction:column}._baseList--scrollable_47qml_8{overflow-y:auto;flex:1 1 0;scrollbar-width:thin;scrollbar-color:var(--border) transparent}._baseList--scrollable_47qml_8::-webkit-scrollbar{width:4px}._baseList--scrollable_47qml_8::-webkit-scrollbar-track{background:transparent}._baseList--scrollable_47qml_8::-webkit-scrollbar-thumb{background-color:var(--border);border-radius:2px}._listItem_1ssj2_3{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);transition:background-color .1s ease;font-family:var(--font-inter)}._listItem_1ssj2_3:last-child{border-bottom:none}._listItem_1ssj2_3:hover{background-color:var(--surface-hover)}._listItem--clickable_1ssj2_21{cursor:pointer}._listItem_1ssj2_3:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}._listItem__leading_1ssj2_31{flex-shrink:0;display:flex;align-items:center}._listItem__content_1ssj2_37{flex:1;min-width:0}._listItem__trailing_1ssj2_42{flex-shrink:0;display:flex;align-items:center;gap:.5rem}@media(max-width:640px){._listItem_1ssj2_3{flex-wrap:wrap;gap:.5rem}}._status-badge_c7rzu_3{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;border-radius:1rem;font-size:.75rem;font-weight:500;line-height:1;color:var(--custom-color, var(--current-color));background-color:var(--custom-bg, var(--current-bg));white-space:nowrap}._status-badge_c7rzu_3:before{content:"";display:block;width:6px;height:6px;border-radius:50%;background-color:var(--custom-color, var(--current-color))}._status-badge--neu_c7rzu_26{--current-color: var(--status-neu);--current-bg: color-mix(in srgb, var(--status-neu), transparent 90%)}._status-badge--offen_c7rzu_31{--current-color: var(--status-offen);--current-bg: color-mix(in srgb, var(--status-offen), transparent 90%)}._status-badge--in-prufung_c7rzu_36{--current-color: var(--status-in-prufung);--current-bg: color-mix(in srgb, var(--status-in-prufung), transparent 90%)}._status-badge--validierung_c7rzu_41{--current-color: var(--status-validierung);--current-bg: color-mix(in srgb, var(--status-validierung), transparent 90%)}._status-badge--abgeschlossen_c7rzu_46{--current-color: var(--status-abgeschlossen);--current-bg: color-mix(in srgb, var(--status-abgeschlossen), transparent 90%)}._favorite-btn_1fvb2_3{background:none;border:none;color:var(--custom-color, var(--on-surface-light));cursor:pointer;display:flex;align-items:center;justify-content:center;padding:.375rem;border-radius:var(--radius);transition:all .2s ease}._favorite-btn_1fvb2_3:hover,._favorite-btn_1fvb2_3:focus-visible{background-color:var(--surface-variant);color:var(--custom-active-color, var(--color-warning));outline:none}._favorite-btn--active_1fvb2_23{color:var(--custom-active-color, var(--color-warning))}._favorite-btn--md_1fvb2_28{padding:.375rem}._favorite-btn--md_1fvb2_28 svg{width:18px;height:18px;fill:currentColor}._favorite-btn--sm_1fvb2_39{padding:.25rem}._favorite-btn--sm_1fvb2_39 svg{width:16px;height:16px;fill:currentColor}._status-legend__item_1xv4z_3{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-radius:calc(var(--radius) - 2px);cursor:pointer;transition:background-color .2s ease;border:1px solid transparent;background:none;width:100%}._status-legend__item_1xv4z_3:hover,._status-legend__item_1xv4z_3:focus-visible{background-color:var(--surface-variant);outline:none}._status-legend__item--active_1xv4z_22{background-color:var(--surface-variant);border-color:var(--border)}._status-legend__label-wrap_1xv4z_27{display:flex;align-items:center;gap:.5rem}._status-legend__color_1xv4z_33{width:12px;height:12px;border-radius:50%;flex-shrink:0;background-color:var(--custom-color, var(--current-color))}._status-legend__label_1xv4z_27{font-size:.875rem;color:var(--on-surface);font-weight:500}._status-legend__count_1xv4z_47{font-family:var(--font-grotesk);font-size:.875rem;color:var(--on-surface-variant);font-weight:600;background-color:var(--surface-variant);padding:.125rem .5rem;border-radius:1rem}._color-neu_1xv4z_57{--current-color: var(--status-neu)}._color-offen_1xv4z_61{--current-color: var(--status-offen)}._color-in-prufung_1xv4z_65{--current-color: var(--status-in-prufung)}._color-validierung_1xv4z_69{--current-color: var(--status-validierung)}._color-abgeschlossen_1xv4z_73{--current-color: var(--status-abgeschlossen)}._color-alle_1xv4z_77{--current-color: var(--status-alle)}._status-overview__chart-container_6nwc9_3{position:relative;width:200px;height:200px;margin:1rem auto 2rem;display:flex;align-items:center;justify-content:center}._status-chart-svg_6nwc9_13{width:100%;height:100%;position:absolute;top:0;left:0;filter:drop-shadow(var(--shadow-sm));pointer-events:none}._status-chart__segment_6nwc9_23{transition:all .3s cubic-bezier(.4,0,.2,1);stroke-linecap:butt;pointer-events:stroke}._status-chart__segment_6nwc9_23:hover,._status-chart__segment--hovered_6nwc9_30{stroke-width:48px;filter:brightness(1.1)}._status-chart__segment--dimmed_6nwc9_35{opacity:.6;filter:grayscale(.2)}._status-chart__hole_6nwc9_40{width:120px;height:120px;background-color:var(--surface);border-radius:50%;position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset var(--shadow-sm);clip-path:circle(50%)}._status-chart__total-value_6nwc9_55{font-family:var(--font-clash);font-size:2rem;font-weight:600;line-height:1;color:var(--on-surface)}._status-chart__total-label_6nwc9_63{font-size:.75rem;color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.05em;margin-top:.25rem}._nameCell_1n6hv_4{display:flex;align-items:center;gap:.5rem}._favorite_1n6hv_10{margin-left:-.5rem}._nameWrapper_1n6hv_14{display:flex;flex-direction:column;overflow:hidden;min-width:0}._name_1n6hv_4{font-weight:500;color:var(--on-surface);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._secondary_1n6hv_31{font-size:.75rem;color:var(--on-surface-variant);margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._client_1n6hv_41{color:var(--on-surface-variant);font-size:.8125rem;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._dateMain_1n6hv_51{color:var(--on-surface);font-weight:500;font-size:.8125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._avatar_17ic7_3{width:1.5rem;height:1.5rem;border-radius:50%;background-color:var(--surface-variant);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.625rem;font-weight:600;color:var(--on-surface);text-transform:uppercase}._avatar-group_17ic7_18{display:flex;align-items:center}._group-member_17ic7_23{margin-right:-.5rem;position:relative;z-index:1;border:2px solid var(--surface)}._group-member_17ic7_23:hover{z-index:10}._btn_7bh63_3{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;white-space:nowrap;border-radius:calc(var(--radius) - 2px);font-size:.875rem;font-weight:500;transition:all .2s cubic-bezier(.16,1,.3,1);cursor:pointer;border:1px solid transparent}._btn_7bh63_3:focus-visible{outline:2px solid var(--primary);outline-offset:2px}._btn_7bh63_3:active{transform:scale(.98)}._btn--primary_7bh63_27{background:var(--gradient-header);color:#fff;padding:.5rem 1rem;box-shadow:var(--shadow-sm)}._btn--primary_7bh63_27:hover{box-shadow:var(--shadow-md);opacity:.9}._btn--outline_7bh63_39{background-color:transparent;border-color:var(--border);color:var(--on-surface);padding:.375rem .75rem;min-width:110px}._btn--outline_7bh63_39:hover{background-color:var(--surface-variant);color:var(--on-surface)}._btn--ghost_7bh63_52{background-color:transparent;color:var(--on-surface-variant);padding:.375rem}._btn--ghost_7bh63_52:hover{background-color:var(--surface-variant);color:var(--on-surface)}._btn--sm_7bh63_63{padding:.2rem .4rem;font-size:.75rem;min-width:auto!important}._badge_1e35x_3{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-grotesk);font-weight:800}._badge--high_1e35x_12{background-color:var(--error-variant);color:var(--error);border:1px solid color-mix(in srgb,var(--error),transparent 80%)}._badge--medium_1e35x_18{background-color:var(--color-warning-variant);color:var(--color-warning);border:1px solid color-mix(in srgb,var(--color-warning),transparent 80%)}._badge--low_1e35x_24{background-color:var(--surface-variant);color:var(--on-surface-variant);border:1px solid var(--border)}._badge--size-small_1e35x_30{width:1.5rem;height:1.5rem;border-radius:.375rem;font-size:.75rem}._badge--size-large_1e35x_37{width:2.25rem;height:2.25rem;border-radius:.5rem;font-size:1.125rem}._badge--size-large_1e35x_37._badge--low_1e35x_24{font-size:.875rem}._badge_1j9lv_3{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background-color:var(--surface-variant);border-radius:2rem;font-size:.8125rem;font-weight:500}._status-dropdown_15zae_3{position:relative;display:inline-block;width:88px}._status-trigger_15zae_9{width:100%!important;justify-content:space-between!important}._status-menu_15zae_14{position:absolute;top:100%;right:0;margin-top:.25rem;background-color:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);box-shadow:var(--shadow-lg);z-index:100;width:100%;min-width:88px;display:none;padding:.25rem;animation:_fadeIn_15zae_1 .15s ease-out}._status-menu_15zae_14._is-open_15zae_31{display:block}._status-menu-item_15zae_35{width:100%;padding:.5rem .75rem;font-size:.8125rem;text-align:left;background:none;border:none;cursor:pointer;border-radius:calc(var(--radius) - 4px);color:var(--on-surface);transition:background-color .1s}._status-menu-item_15zae_35:hover{background-color:var(--surface-variant)}._status-menu-item_15zae_35._is-active_15zae_52{font-weight:500}._icon_15zae_56{width:1rem;height:1rem;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}._icon-sm_15zae_65{width:.875rem;height:.875rem}@keyframes _fadeIn_15zae_1{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}._checklist_1iobh_3{gap:.5rem}._checkItem_1iobh_7{display:flex;align-items:center;gap:.5rem;font-size:.875rem;padding:0}._checkItem_1iobh_7 input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--primary);cursor:pointer}._checkItem_1iobh_7 label{cursor:pointer}._checkItem_1iobh_7._is-done_1iobh_26 label{text-decoration:line-through;color:var(--on-surface-variant)}._checklist--readonly_1iobh_31 ._checkItem_1iobh_7 label{cursor:pointer}._checklist--readonly_1iobh_31 ._checkItem_1iobh_7 input[type=checkbox]{pointer-events:all}._formControl_1iobh_39{width:100%;padding:.125rem;border:none;background:transparent;color:var(--on-surface);font-family:inherit;font-size:.875rem;border-radius:calc(var(--radius) - 2px);transition:background-color .2s}._formControl_1iobh_39:focus{outline:none;background-color:var(--surface)}._is-done_1iobh_26 ._formControl_1iobh_39{text-decoration:line-through;color:var(--on-surface-variant)}._searchInput_16e7c_3{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border:1px solid var(--border);border-radius:1rem;background-color:var(--surface-variant);transition:border-color .15s ease,box-shadow .15s ease;min-width:200px}._searchInput_16e7c_3:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary),transparent 85%)}._icon_16e7c_20{width:14px;height:14px;color:var(--on-surface-variant);flex-shrink:0}._field_16e7c_27{border:none;background:none;font-family:var(--font-inter);font-size:.8125rem;color:var(--on-surface);outline:none;width:100%}._field_16e7c_27::placeholder{color:var(--on-surface-variant)}@media(max-width:1024px){._searchInput_16e7c_3{min-width:160px}}@media(max-width:640px){._searchInput_16e7c_3{flex:1;min-width:0}}._btn_6gx9b_3{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .5rem;border:1px solid var(--border);background:none;border-radius:calc(var(--radius) - 2px);font-family:var(--font-inter);font-size:.6875rem;font-weight:500;color:var(--on-surface-variant);cursor:pointer;transition:all .15s ease}._btn_6gx9b_3:hover{border-color:color-mix(in srgb,var(--primary),transparent 60%);color:var(--primary);background-color:var(--primary-container)}._btn_6gx9b_3:focus-visible{outline:2px solid var(--primary);outline-offset:1px}._chevron_6gx9b_30{width:12px;height:12px;transition:transform .2s ease;flex-shrink:0}._btn--open_6gx9b_37 ._chevron_6gx9b_30{transform:rotate(180deg)}._circle_gvt69_3{position:relative;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center}._svg_gvt69_12{width:100%;height:100%;transform:rotate(-90deg)}._track_gvt69_18{fill:none;stroke:var(--surface-variant);stroke-width:3}._fill_gvt69_24{fill:none;stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset .4s ease}._label_gvt69_31{position:absolute;font-family:var(--font-grotesk);font-size:.5625rem;font-weight:600;color:var(--on-surface)}._bar_l0q8t_3{display:flex;align-items:center;gap:.5rem}._track_l0q8t_9{width:60px;height:4px;background-color:var(--surface-variant);border-radius:2px;overflow:hidden}._fill_l0q8t_17{height:100%;border-radius:2px;background:var(--gradient-primary)}._value_l0q8t_23{font-family:var(--font-grotesk);font-size:.75rem;font-weight:500;color:var(--on-surface-variant);min-width:28px}._empty_26icj_3{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center}._icon_26icj_12{width:48px;height:48px;color:var(--on-surface-light);margin-bottom:1rem}._title_26icj_19{font-family:var(--font-clash);font-size:1.125rem;font-weight:500;color:var(--on-surface);margin-bottom:.25rem}._text_26icj_27{font-size:.8125rem;color:var(--on-surface-variant)}._toggle_176y2_3{display:inline-flex;background-color:var(--surface-variant);border-radius:calc(var(--radius) - 2px);padding:3px;gap:2px}._btn_176y2_11{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border:none;background:none;border-radius:calc(var(--radius) - 4px);font-family:var(--font-inter);font-size:.8125rem;font-weight:500;color:var(--on-surface-variant);cursor:pointer;transition:all .15s ease;white-space:nowrap}._btn_176y2_11:hover{color:var(--on-surface)}._btn_176y2_11:focus-visible{outline:2px solid var(--primary);outline-offset:1px}._btn--active_176y2_37{background-color:var(--surface);color:var(--on-surface);box-shadow:var(--shadow-sm)}._icon_176y2_43{width:16px;height:16px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}._icon_176y2_43>svg{width:100%;height:100%}._dashboard_wq6z7_4{width:100%;display:grid;grid-template-columns:35% 65%;gap:1.5rem}@media(max-width:1024px){._dashboard_wq6z7_4{grid-template-columns:1fr}}._sectionTitle_wq6z7_18{font-family:var(--font-clash);font-size:1.5rem;font-weight:500;color:var(--on-surface);margin:0 0 1.5rem}._statusLegend_wq6z7_27{display:flex;flex-direction:column;gap:.75rem}._projectFilters_wq6z7_34{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:0 2.5%;flex-wrap:wrap;gap:1rem}._projectFilters_wq6z7_34 ._sectionTitle_wq6z7_18{margin-bottom:0}._projectFilters__search_wq6z7_48{padding:.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background-color:var(--surface-variant);font-family:var(--font-inter);font-size:.875rem;color:var(--on-surface);width:250px;transition:border-color .2s,box-shadow .2s}._projectFilters__search_wq6z7_48:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary),transparent 80%)}._taskItem_77jzk_4{display:grid;grid-template-columns:55% 15% 30%;align-items:center;gap:0;padding:.75rem 5%;font-family:var(--font-inter)}._taskItem__content_77jzk_14{display:flex;flex-direction:column;gap:.375rem;min-width:0}._taskItem__titleGroup_77jzk_21{display:flex;align-items:center;gap:.375rem;min-width:0}._taskItem__title_77jzk_21{color:var(--on-surface);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.875rem;font-weight:500;line-height:1.25rem;font-family:var(--font-inter)}._taskItem__meta_77jzk_41{display:flex;align-items:center;gap:1.25rem;color:var(--on-surface-variant);font-size:.625rem;line-height:.875rem;font-family:var(--font-inter);min-width:0}._metaUser_77jzk_52{display:flex;align-items:center;flex-shrink:0}._metaProject_77jzk_58{display:flex;align-items:center;gap:.375rem;color:var(--on-surface-variant);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.75rem;flex:0 1 auto}._metaProject_77jzk_58 ._icon-sm_77jzk_71{flex-shrink:0}._taskItem__deadline_77jzk_76{white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right;font-family:var(--font-grotesk);font-size:.75rem;line-height:1rem}._deadline-urgent_77jzk_85{color:var(--color-danger);font-weight:500}._deadline-normal_77jzk_90{color:var(--on-surface-variant)}._taskItem__actions_77jzk_95{display:flex;align-items:center;gap:.5rem;justify-content:flex-end}._icon-sm_77jzk_71{width:.875rem;height:.875rem;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}@media(max-width:640px){._taskItem_77jzk_4{grid-template-columns:1fr auto;grid-template-rows:auto auto;grid-template-areas:"content actions" "deadline actions";gap:.25rem .75rem}._taskItem__content_77jzk_14{grid-area:content}._taskItem__deadline_77jzk_76{grid-area:deadline;text-align:left}._taskItem__actions_77jzk_95{grid-area:actions;align-self:center}}._modal-overlay_m18cx_4{position:fixed;inset:0;background-color:#0f172a66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:50;opacity:0;pointer-events:none;transition:opacity .2s ease-out;padding:1rem}._modal-overlay_m18cx_4._is-active_m18cx_19{opacity:1;pointer-events:all}._modal-content_m18cx_25{background-color:var(--surface);color:var(--on-surface);font-family:var(--font-inter);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;transform:scale(.95) translateY(10px);transition:transform .2s ease-out;overflow:hidden}._modal-overlay_m18cx_4._is-active_m18cx_19 ._modal-content_m18cx_25{transform:scale(1) translateY(0)}._modal-header_m18cx_46{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}._modal-header-title_m18cx_55{margin:0;font-family:var(--font-clash);font-weight:500;font-size:1.25rem;line-height:1.75rem;color:var(--on-surface)}._modal-body_m18cx_65{padding:1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:1.5rem;scrollbar-width:thin;scrollbar-color:var(--border) transparent}._modal-body_m18cx_65::-webkit-scrollbar{width:4px}._modal-body_m18cx_65::-webkit-scrollbar-thumb{background-color:var(--border);border-radius:2px}._modal-footer_m18cx_84{padding:1rem 1.5rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.5rem;background:var(--surface-hover);flex-shrink:0}._view-group_m18cx_95{display:flex;flex-direction:column;gap:.375rem}._view-label_m18cx_101{font-size:.625rem;line-height:.875rem;color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.08em;font-weight:600;font-family:var(--font-inter)}._view-badge-row_m18cx_111{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:flex-start}._view-task-title_m18cx_118{margin:0;font-family:var(--font-clash);font-weight:600;font-size:1.25rem;line-height:1.4;color:var(--on-surface)}._view-value-strong_m18cx_127{font-family:var(--font-grotesk);font-weight:500;font-size:.9375rem;color:var(--on-surface)}._view-description_m18cx_134{font-size:.875rem;line-height:1.6;margin:0;color:var(--on-surface);font-family:var(--font-inter)}._text-muted_m18cx_142{color:var(--on-surface-variant);font-style:italic}._form-group_m18cx_148{display:flex;flex-direction:column;gap:.5rem}._form-row_m18cx_154{display:grid;grid-template-columns:1fr 1fr;gap:1rem}._form-label_m18cx_160{font-size:.625rem;line-height:.875rem;font-weight:600;color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-inter)}._form-control_m18cx_170{width:100%;padding:.625rem .75rem;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background-color:var(--surface);color:var(--on-surface);font-family:var(--font-inter);font-size:.875rem;line-height:1.25rem;transition:border-color .2s,box-shadow .2s;box-sizing:border-box;appearance:auto}._form-control_m18cx_170:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary),transparent 88%)}._textarea_m18cx_191{resize:vertical;min-height:80px}._icon_m18cx_197{width:1.25rem;height:1.25rem;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}._icon-pencil_m18cx_207{width:.875rem;height:.875rem;fill:currentColor}@media(max-width:640px){._form-row_m18cx_154{grid-template-columns:1fr}}:root{--surface: #ffffff;--surface-variant: #f0f1f2;--surface-hover: #f7f7f7;--border: #e0e4eb;--border-variant: rgba(0, 20, 41, .1);--on-surface: #001429;--on-surface-variant: #576472;--on-surface-light: #9aa2aa;--primary: #0073e6;--primary-variant: rgba(0, 115, 230, .07);--primary-container: rgba(0, 115, 230, .05);--error: #bd0c38;--error-variant: rgba(189, 12, 56, .07);--color-success: #1ec489;--color-success-dark: #148a5f;--color-success-variant: rgba(69, 220, 166, .2);--color-warning: #efaf55;--color-warning-dark: #b07a1e;--color-warning-variant: rgba(239, 175, 85, .25);--color-info: #8c46c4;--color-info-variant: rgba(169, 62, 255, .15);--color-danger: #f34e2a;--color-danger-variant: rgba(243, 78, 42, .2);--lifecycle-active: var(--color-success);--lifecycle-active-dark: var(--color-success-dark);--lifecycle-nrnd: var(--color-warning);--lifecycle-nrnd-dark: var(--color-warning-dark);--lifecycle-eol: var(--error);--lifecycle-production: var(--primary);--inventory-high: var(--color-success);--inventory-high-dark: var(--color-success-dark);--inventory-medium: var(--color-warning);--inventory-medium-dark: var(--color-warning-dark);--inventory-low: var(--error);--destructive: #bd0c38;--score-high: #1ec489;--score-medium: #efaf55;--score-low: #f34e2a;--sidebar-background: #ffffff;--sidebar-foreground: #001429;--sidebar-primary: #0073e6;--sidebar-accent: #f0f1f2;--sidebar-border: #e0e4eb;--status-alle: #576472;--status-neu: #0073e6;--status-offen: #efaf55;--status-in-prufung: #f34e2a;--status-validierung: #1ec489;--status-abgeschlossen: #1ec489;--radius: .5rem;--font-inter: "Inter", sans-serif;--font-clash: "Clash Grotesk", sans-serif;--font-grotesk: "Space Grotesk", sans-serif;--shadow-sm: 0 1px 2px 0 rgba(0, 20, 41, .04);--shadow-md: 0 4px 6px -1px rgba(0, 20, 41, .08);--shadow-lg: 0 10px 15px -3px rgba(0, 20, 41, .1);--shadow-card: 0 2px 8px rgba(0, 20, 41, .06);--gradient-primary: linear-gradient(135deg, #0073e6, #0053a3);--gradient-header: linear-gradient(135deg, #0053a3, #0073e6)}@media(prefers-color-scheme:dark){:root{--surface: #000000;--surface-variant: #18191b;--surface-hover: #0d0d0d;--border: #14181f;--border-variant: rgba(255, 255, 255, .1);--on-surface: #ffffff;--on-surface-variant: #9aa2aa;--on-surface-light: #576472;--primary: #0073e6;--primary-variant: rgba(0, 115, 230, .07);--primary-container: rgba(0, 115, 230, .05);--error: #bd0c38;--error-variant: rgba(189, 12, 56, .07);--color-success: #1ec489;--color-success-variant: rgba(69, 220, 166, .2);--color-warning: #efaf55;--color-warning-variant: rgba(239, 175, 85, .25);--color-info: #8c46c4;--color-info-variant: rgba(169, 62, 255, .15);--color-danger: #f34e2a;--color-danger-variant: rgba(243, 78, 42, .2);--sidebar-background: #000000;--sidebar-foreground: #ffffff;--sidebar-primary: #0073e6;--sidebar-accent: #18191b;--sidebar-border: #14181f;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5);--shadow-card: 0 2px 8px rgba(0, 0, 0, .3)}}._icon_1rthp_4{width:1rem;height:1rem;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}._icon-sm_1rthp_14{width:.875rem;height:.875rem}')),document.head.appendChild(r)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
|
|
2
|
+
import { jsx as e, jsxs as c, Fragment as Le } from "react/jsx-runtime";
|
|
3
|
+
import p, { useCallback as ze, useState as A, useRef as Re, useEffect as le, useMemo as Z } from "react";
|
|
4
|
+
function pe(t) {
|
|
5
|
+
var a, n, r = "";
|
|
6
|
+
if (typeof t == "string" || typeof t == "number") r += t;
|
|
7
|
+
else if (typeof t == "object") if (Array.isArray(t)) {
|
|
8
|
+
var i = t.length;
|
|
9
|
+
for (a = 0; a < i; a++) t[a] && (n = pe(t[a])) && (r && (r += " "), r += n);
|
|
10
|
+
} else for (n in t) t[n] && (r && (r += " "), r += n);
|
|
11
|
+
return r;
|
|
12
12
|
}
|
|
13
|
-
function
|
|
14
|
-
for (var
|
|
15
|
-
return
|
|
13
|
+
function g() {
|
|
14
|
+
for (var t, a, n = 0, r = "", i = arguments.length; n < i; n++) (t = arguments[n]) && (a = pe(t)) && (r && (r += " "), r += a);
|
|
15
|
+
return r;
|
|
16
16
|
}
|
|
17
|
-
const
|
|
17
|
+
const Te = "_tableContainer_133qi_4", De = "_table_133qi_4", Pe = "_table__head_133qi_18", Me = "_sortable_133qi_32", Ee = "_sortIndicator_133qi_48", Be = "_colResizeHandle_133qi_61", Fe = "_table__row_133qi_87", j = {
|
|
18
|
+
tableContainer: Te,
|
|
19
|
+
table: De,
|
|
20
|
+
table__head: Pe,
|
|
21
|
+
sortable: Me,
|
|
22
|
+
sortIndicator: Ee,
|
|
23
|
+
colResizeHandle: Be,
|
|
24
|
+
"table--resizing": "_table--resizing_133qi_77",
|
|
25
|
+
table__row: Fe,
|
|
26
|
+
"table__row--animated": "_table__row--animated_133qi_108",
|
|
27
|
+
"col-hide-tablet": "_col-hide-tablet_133qi_131",
|
|
28
|
+
"col-hide-mobile": "_col-hide-mobile_133qi_137"
|
|
29
|
+
};
|
|
30
|
+
function Oe({
|
|
31
|
+
columns: t,
|
|
32
|
+
rows: a,
|
|
33
|
+
rowKey: n,
|
|
34
|
+
renderCell: r,
|
|
35
|
+
sortColumn: i,
|
|
36
|
+
sortDirection: u,
|
|
37
|
+
onSort: l,
|
|
38
|
+
resizable: h = !1,
|
|
39
|
+
columnWidths: _ = {},
|
|
40
|
+
onColumnResize: m,
|
|
41
|
+
renderExpandedRow: o,
|
|
42
|
+
rowAnimation: w = !1,
|
|
43
|
+
rowClassName: x,
|
|
44
|
+
rowDataAttributes: C,
|
|
45
|
+
ariaLabel: f,
|
|
46
|
+
className: k,
|
|
47
|
+
...v
|
|
48
|
+
}, y) {
|
|
49
|
+
const b = ze(
|
|
50
|
+
(s, N, I) => {
|
|
51
|
+
const L = N.offsetWidth, F = N.closest("table"), S = (Q) => {
|
|
52
|
+
const Ae = Q.clientX - I, J = Math.max(60, L + Ae);
|
|
53
|
+
N.style.width = `${J}px`, N.style.minWidth = `${J}px`, m?.(s, J);
|
|
54
|
+
}, z = () => {
|
|
55
|
+
F?.classList.remove(j["table--resizing"]), document.removeEventListener("mousemove", S), document.removeEventListener("mouseup", z);
|
|
56
|
+
};
|
|
57
|
+
F?.classList.add(j["table--resizing"]), document.addEventListener("mousemove", S), document.addEventListener("mouseup", z);
|
|
58
|
+
},
|
|
59
|
+
[m]
|
|
60
|
+
);
|
|
61
|
+
return /* @__PURE__ */ e("div", { ref: y, className: g(j.tableContainer, k), tabIndex: 0, ...v, children: /* @__PURE__ */ c("table", { className: j.table, "aria-label": f, children: [
|
|
62
|
+
/* @__PURE__ */ e("thead", { className: j.table__head, children: /* @__PURE__ */ e("tr", { children: t.map((s) => {
|
|
63
|
+
const N = g({
|
|
64
|
+
[j["col-hide-tablet"]]: s.hideTablet,
|
|
65
|
+
[j["col-hide-mobile"]]: s.hideMobile
|
|
66
|
+
}), I = _[s.key] ? { width: `${_[s.key]}px`, minWidth: `${_[s.key]}px` } : s.width != null ? { width: typeof s.width == "number" ? `${s.width}px` : s.width, minWidth: typeof s.width == "number" ? `${s.width}px` : s.width } : void 0, L = i === s.key, F = L ? u === "asc" ? "ascending" : "descending" : void 0;
|
|
67
|
+
return /* @__PURE__ */ c(
|
|
68
|
+
"th",
|
|
69
|
+
{
|
|
70
|
+
scope: "col",
|
|
71
|
+
className: g(N || void 0, { [j.sortable]: s.sortable }),
|
|
72
|
+
style: I,
|
|
73
|
+
"aria-sort": F,
|
|
74
|
+
tabIndex: s.sortable ? 0 : void 0,
|
|
75
|
+
onClick: (S) => {
|
|
76
|
+
h && S.target.closest(`.${j.colResizeHandle}`) || s.sortable && l && l(s.key);
|
|
77
|
+
},
|
|
78
|
+
onKeyDown: (S) => {
|
|
79
|
+
(S.key === "Enter" || S.key === " ") && s.sortable && l && (S.preventDefault(), l(s.key));
|
|
80
|
+
},
|
|
81
|
+
children: [
|
|
82
|
+
s.headerContent != null ? s.headerContent : /* @__PURE__ */ c(Le, { children: [
|
|
83
|
+
s.label,
|
|
84
|
+
s.sortable && /* @__PURE__ */ e("span", { className: j.sortIndicator, "aria-hidden": "true", children: L ? u === "asc" ? "↑" : "↓" : "↕" })
|
|
85
|
+
] }),
|
|
86
|
+
h && /* @__PURE__ */ e(
|
|
87
|
+
"span",
|
|
88
|
+
{
|
|
89
|
+
className: j.colResizeHandle,
|
|
90
|
+
"data-resize-col": s.key,
|
|
91
|
+
onMouseDown: (S) => {
|
|
92
|
+
S.preventDefault(), S.stopPropagation();
|
|
93
|
+
const z = S.target.closest("th");
|
|
94
|
+
b(s.key, z, S.clientX);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
)
|
|
98
|
+
]
|
|
99
|
+
},
|
|
100
|
+
s.key
|
|
101
|
+
);
|
|
102
|
+
}) }) }),
|
|
103
|
+
/* @__PURE__ */ e("tbody", { children: a.map((s, N) => {
|
|
104
|
+
const I = n(s, N), L = x?.(s, N), F = C?.(s) ?? {}, S = o?.(s, N) ?? null;
|
|
105
|
+
return /* @__PURE__ */ c(p.Fragment, { children: [
|
|
106
|
+
/* @__PURE__ */ e(
|
|
107
|
+
"tr",
|
|
108
|
+
{
|
|
109
|
+
className: g(
|
|
110
|
+
j.table__row,
|
|
111
|
+
{ [j["table__row--animated"]]: w },
|
|
112
|
+
L
|
|
113
|
+
),
|
|
114
|
+
style: w ? { animationDelay: `${N * 20}ms` } : void 0,
|
|
115
|
+
...F,
|
|
116
|
+
children: t.map((z) => {
|
|
117
|
+
const Q = g({
|
|
118
|
+
[j["col-hide-tablet"]]: z.hideTablet,
|
|
119
|
+
[j["col-hide-mobile"]]: z.hideMobile
|
|
120
|
+
});
|
|
121
|
+
return /* @__PURE__ */ e("td", { className: Q || void 0, children: r(s, z, N) }, z.key);
|
|
122
|
+
})
|
|
123
|
+
}
|
|
124
|
+
),
|
|
125
|
+
S
|
|
126
|
+
] }, I);
|
|
127
|
+
}) })
|
|
128
|
+
] }) });
|
|
129
|
+
}
|
|
130
|
+
const we = p.forwardRef(Oe);
|
|
131
|
+
we.displayName = "BaseTable";
|
|
132
|
+
const qe = "_widgetCard_gx9fj_4", We = "_fadeIn_gx9fj_1", Ve = "_widgetCard__header_gx9fj_23", He = "_widgetCard__title_gx9fj_37", Ge = "_widgetCard__content_gx9fj_52", E = {
|
|
133
|
+
widgetCard: qe,
|
|
134
|
+
fadeIn: We,
|
|
135
|
+
"widgetCard--half": "_widgetCard--half_gx9fj_18",
|
|
136
|
+
widgetCard__header: Ve,
|
|
137
|
+
"widgetCard--full": "_widgetCard--full_gx9fj_33",
|
|
138
|
+
widgetCard__title: He,
|
|
139
|
+
widgetCard__content: Ge,
|
|
140
|
+
"widgetCard__content--scrollable": "_widgetCard__content--scrollable_gx9fj_56",
|
|
141
|
+
"widgetCard__content--padded": "_widgetCard__content--padded_gx9fj_76"
|
|
142
|
+
}, U = p.forwardRef(
|
|
143
|
+
({
|
|
144
|
+
title: t,
|
|
145
|
+
headerAction: a,
|
|
146
|
+
variant: n = "half",
|
|
147
|
+
scrollable: r = !1,
|
|
148
|
+
padded: i = !1,
|
|
149
|
+
as: u = "div",
|
|
150
|
+
children: l,
|
|
151
|
+
className: h,
|
|
152
|
+
..._
|
|
153
|
+
}, m) => {
|
|
154
|
+
const o = t != null || a != null;
|
|
155
|
+
return /* @__PURE__ */ c(
|
|
156
|
+
u,
|
|
157
|
+
{
|
|
158
|
+
ref: m,
|
|
159
|
+
className: g(
|
|
160
|
+
E.widgetCard,
|
|
161
|
+
E[`widgetCard--${n}`],
|
|
162
|
+
h
|
|
163
|
+
),
|
|
164
|
+
..._,
|
|
165
|
+
children: [
|
|
166
|
+
o && /* @__PURE__ */ c("header", { className: E.widgetCard__header, children: [
|
|
167
|
+
t != null && /* @__PURE__ */ e("h2", { className: E.widgetCard__title, children: t }),
|
|
168
|
+
a
|
|
169
|
+
] }),
|
|
170
|
+
/* @__PURE__ */ e(
|
|
171
|
+
"div",
|
|
172
|
+
{
|
|
173
|
+
className: g(
|
|
174
|
+
E.widgetCard__content,
|
|
175
|
+
{ [E["widgetCard__content--scrollable"]]: r },
|
|
176
|
+
{ [E["widgetCard__content--padded"]]: i }
|
|
177
|
+
),
|
|
178
|
+
children: l
|
|
179
|
+
}
|
|
180
|
+
)
|
|
181
|
+
]
|
|
182
|
+
}
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
);
|
|
186
|
+
U.displayName = "WidgetCard";
|
|
187
|
+
const Ke = "_dataCard_19cka_3", ue = {
|
|
188
|
+
dataCard: Ke,
|
|
189
|
+
"dataCard--clickable": "_dataCard--clickable_19cka_18"
|
|
190
|
+
}, Ue = p.forwardRef(
|
|
191
|
+
({ onClick: t, className: a, children: n, ...r }, i) => {
|
|
192
|
+
const u = t != null;
|
|
193
|
+
return /* @__PURE__ */ e(
|
|
194
|
+
"div",
|
|
195
|
+
{
|
|
196
|
+
ref: i,
|
|
197
|
+
className: g(
|
|
198
|
+
ue.dataCard,
|
|
199
|
+
{ [ue["dataCard--clickable"]]: u },
|
|
200
|
+
a
|
|
201
|
+
),
|
|
202
|
+
onClick: t,
|
|
203
|
+
tabIndex: u ? 0 : void 0,
|
|
204
|
+
role: u ? "button" : void 0,
|
|
205
|
+
onKeyDown: u ? (l) => {
|
|
206
|
+
(l.key === "Enter" || l.key === " ") && (l.preventDefault(), t?.(l));
|
|
207
|
+
} : void 0,
|
|
208
|
+
...r,
|
|
209
|
+
children: n
|
|
210
|
+
}
|
|
211
|
+
);
|
|
212
|
+
}
|
|
213
|
+
);
|
|
214
|
+
Ue.displayName = "DataCard";
|
|
215
|
+
const Qe = "_baseList_47qml_3", me = {
|
|
216
|
+
baseList: Qe,
|
|
217
|
+
"baseList--scrollable": "_baseList--scrollable_47qml_8"
|
|
218
|
+
}, ce = p.forwardRef(
|
|
219
|
+
({ scrollable: t = !1, className: a, children: n, ...r }, i) => /* @__PURE__ */ e(
|
|
220
|
+
"div",
|
|
221
|
+
{
|
|
222
|
+
ref: i,
|
|
223
|
+
role: "list",
|
|
224
|
+
className: g(
|
|
225
|
+
me.baseList,
|
|
226
|
+
{ [me["baseList--scrollable"]]: t },
|
|
227
|
+
a
|
|
228
|
+
),
|
|
229
|
+
...r,
|
|
230
|
+
children: n
|
|
231
|
+
}
|
|
232
|
+
)
|
|
233
|
+
);
|
|
234
|
+
ce.displayName = "BaseList";
|
|
235
|
+
const Je = "_listItem_1ssj2_3", Ze = "_listItem__leading_1ssj2_31", Xe = "_listItem__content_1ssj2_37", Ye = "_listItem__trailing_1ssj2_42", O = {
|
|
236
|
+
listItem: Je,
|
|
237
|
+
"listItem--clickable": "_listItem--clickable_1ssj2_21",
|
|
238
|
+
listItem__leading: Ze,
|
|
239
|
+
listItem__content: Xe,
|
|
240
|
+
listItem__trailing: Ye
|
|
241
|
+
}, Ne = p.forwardRef(
|
|
242
|
+
({ leading: t, trailing: a, onClick: n, as: r = "div", className: i, children: u, ...l }, h) => {
|
|
243
|
+
const _ = n != null, m = (o) => {
|
|
244
|
+
_ && (o.key === "Enter" || o.key === " ") && (o.preventDefault(), n?.());
|
|
245
|
+
};
|
|
246
|
+
return /* @__PURE__ */ c(
|
|
247
|
+
r,
|
|
248
|
+
{
|
|
249
|
+
ref: h,
|
|
250
|
+
role: "listitem",
|
|
251
|
+
tabIndex: 0,
|
|
252
|
+
className: g(
|
|
253
|
+
O.listItem,
|
|
254
|
+
{ [O["listItem--clickable"]]: _ },
|
|
255
|
+
i
|
|
256
|
+
),
|
|
257
|
+
onClick: _ ? n : void 0,
|
|
258
|
+
onKeyDown: m,
|
|
259
|
+
...l,
|
|
260
|
+
children: [
|
|
261
|
+
t != null && /* @__PURE__ */ e("div", { className: O.listItem__leading, children: t }),
|
|
262
|
+
/* @__PURE__ */ e("div", { className: O.listItem__content, children: u }),
|
|
263
|
+
a != null && /* @__PURE__ */ e("div", { className: O.listItem__trailing, children: a })
|
|
264
|
+
]
|
|
265
|
+
}
|
|
266
|
+
);
|
|
267
|
+
}
|
|
268
|
+
);
|
|
269
|
+
Ne.displayName = "ListItem";
|
|
270
|
+
const he = {
|
|
18
271
|
"status-badge": "_status-badge_c7rzu_3",
|
|
19
272
|
"status-badge--neu": "_status-badge--neu_c7rzu_26",
|
|
20
273
|
"status-badge--offen": "_status-badge--offen_c7rzu_31",
|
|
21
274
|
"status-badge--in-prufung": "_status-badge--in-prufung_c7rzu_36",
|
|
22
275
|
"status-badge--validierung": "_status-badge--validierung_c7rzu_41",
|
|
23
276
|
"status-badge--abgeschlossen": "_status-badge--abgeschlossen_c7rzu_46"
|
|
24
|
-
},
|
|
277
|
+
}, et = {
|
|
25
278
|
neu: "Neu",
|
|
26
279
|
offen: "Offen",
|
|
27
280
|
"in-prufung": "In Prüfung",
|
|
28
281
|
validierung: "Validierung",
|
|
29
282
|
abgeschlossen: "Abgeschlossen"
|
|
30
|
-
},
|
|
31
|
-
({ status:
|
|
32
|
-
const
|
|
33
|
-
...
|
|
34
|
-
"--custom-color":
|
|
35
|
-
"--custom-bg":
|
|
283
|
+
}, ke = p.forwardRef(
|
|
284
|
+
({ status: t, color: a, backgroundColor: n, className: r, style: i, ...u }, l) => {
|
|
285
|
+
const h = {
|
|
286
|
+
...i,
|
|
287
|
+
"--custom-color": a,
|
|
288
|
+
"--custom-bg": n
|
|
36
289
|
};
|
|
37
290
|
return /* @__PURE__ */ e(
|
|
38
291
|
"span",
|
|
39
292
|
{
|
|
40
|
-
ref:
|
|
41
|
-
className:
|
|
42
|
-
style:
|
|
43
|
-
...
|
|
44
|
-
children:
|
|
293
|
+
ref: l,
|
|
294
|
+
className: g(he["status-badge"], he[`status-badge--${t}`], r),
|
|
295
|
+
style: h,
|
|
296
|
+
...u,
|
|
297
|
+
children: et[t]
|
|
45
298
|
}
|
|
46
299
|
);
|
|
47
300
|
}
|
|
48
301
|
);
|
|
49
|
-
|
|
50
|
-
const
|
|
51
|
-
"favorite-btn": "_favorite-
|
|
52
|
-
"favorite-btn--active": "_favorite-btn--
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
302
|
+
ke.displayName = "StatusBadge";
|
|
303
|
+
const X = {
|
|
304
|
+
"favorite-btn": "_favorite-btn_1fvb2_3",
|
|
305
|
+
"favorite-btn--active": "_favorite-btn--active_1fvb2_23",
|
|
306
|
+
"favorite-btn--md": "_favorite-btn--md_1fvb2_28",
|
|
307
|
+
"favorite-btn--sm": "_favorite-btn--sm_1fvb2_39"
|
|
308
|
+
}, ye = p.forwardRef(
|
|
309
|
+
({ pressed: t, projectName: a, onToggle: n, size: r = "md", color: i, activeColor: u, className: l, style: h, onClick: _, ...m }, o) => {
|
|
310
|
+
const w = {
|
|
311
|
+
...h,
|
|
312
|
+
"--custom-color": i,
|
|
313
|
+
"--custom-active-color": u
|
|
314
|
+
}, x = t ? `Von Favoriten entfernen: ${a}` : `Zu Favoriten hinzufügen: ${a}`;
|
|
60
315
|
return /* @__PURE__ */ e(
|
|
61
316
|
"button",
|
|
62
317
|
{
|
|
63
|
-
ref:
|
|
318
|
+
ref: o,
|
|
64
319
|
type: "button",
|
|
65
|
-
className:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
320
|
+
className: g(
|
|
321
|
+
X["favorite-btn"],
|
|
322
|
+
X[`favorite-btn--${r}`],
|
|
323
|
+
{ [X["favorite-btn--active"]]: t },
|
|
324
|
+
l
|
|
69
325
|
),
|
|
70
|
-
style:
|
|
71
|
-
"aria-pressed":
|
|
72
|
-
"aria-label":
|
|
73
|
-
onClick: (
|
|
74
|
-
|
|
326
|
+
style: w,
|
|
327
|
+
"aria-pressed": t,
|
|
328
|
+
"aria-label": x,
|
|
329
|
+
onClick: (C) => {
|
|
330
|
+
n?.(!t), _?.(C);
|
|
75
331
|
},
|
|
76
332
|
...m,
|
|
77
333
|
children: /* @__PURE__ */ e(
|
|
@@ -90,8 +346,8 @@ const le = {
|
|
|
90
346
|
);
|
|
91
347
|
}
|
|
92
348
|
);
|
|
93
|
-
|
|
94
|
-
const
|
|
349
|
+
ye.displayName = "FavoriteButton";
|
|
350
|
+
const B = {
|
|
95
351
|
"status-legend__item": "_status-legend__item_1xv4z_3",
|
|
96
352
|
"status-legend__item--active": "_status-legend__item--active_1xv4z_22",
|
|
97
353
|
"status-legend__label-wrap": "_status-legend__label-wrap_1xv4z_27",
|
|
@@ -104,45 +360,45 @@ const D = {
|
|
|
104
360
|
"color-validierung": "_color-validierung_1xv4z_69",
|
|
105
361
|
"color-abgeschlossen": "_color-abgeschlossen_1xv4z_73",
|
|
106
362
|
"color-alle": "_color-alle_1xv4z_77"
|
|
107
|
-
},
|
|
108
|
-
({ status:
|
|
109
|
-
const
|
|
110
|
-
...
|
|
111
|
-
"--custom-color":
|
|
363
|
+
}, Ce = p.forwardRef(
|
|
364
|
+
({ status: t, label: a, count: n, active: r = !1, color: i, className: u, style: l, ...h }, _) => {
|
|
365
|
+
const m = {
|
|
366
|
+
...l,
|
|
367
|
+
"--custom-color": i
|
|
112
368
|
};
|
|
113
|
-
return /* @__PURE__ */
|
|
369
|
+
return /* @__PURE__ */ c(
|
|
114
370
|
"button",
|
|
115
371
|
{
|
|
116
|
-
ref:
|
|
372
|
+
ref: _,
|
|
117
373
|
type: "button",
|
|
118
374
|
role: "option",
|
|
119
|
-
"aria-selected":
|
|
120
|
-
className:
|
|
121
|
-
|
|
122
|
-
{ [
|
|
123
|
-
|
|
375
|
+
"aria-selected": r,
|
|
376
|
+
className: g(
|
|
377
|
+
B["status-legend__item"],
|
|
378
|
+
{ [B["status-legend__item--active"]]: r },
|
|
379
|
+
u
|
|
124
380
|
),
|
|
125
|
-
style:
|
|
126
|
-
...
|
|
381
|
+
style: m,
|
|
382
|
+
...h,
|
|
127
383
|
children: [
|
|
128
|
-
/* @__PURE__ */
|
|
384
|
+
/* @__PURE__ */ c("div", { className: B["status-legend__label-wrap"], children: [
|
|
129
385
|
/* @__PURE__ */ e(
|
|
130
386
|
"span",
|
|
131
387
|
{
|
|
132
|
-
className:
|
|
388
|
+
className: g(B["status-legend__color"], B[`color-${t}`]),
|
|
133
389
|
"aria-hidden": "true"
|
|
134
390
|
}
|
|
135
391
|
),
|
|
136
|
-
/* @__PURE__ */ e("span", { className:
|
|
392
|
+
/* @__PURE__ */ e("span", { className: B["status-legend__label"], children: a })
|
|
137
393
|
] }),
|
|
138
|
-
/* @__PURE__ */ e("span", { className:
|
|
394
|
+
/* @__PURE__ */ e("span", { className: B["status-legend__count"], children: n })
|
|
139
395
|
]
|
|
140
396
|
}
|
|
141
397
|
);
|
|
142
398
|
}
|
|
143
399
|
);
|
|
144
|
-
|
|
145
|
-
const
|
|
400
|
+
Ce.displayName = "StatusLegendItem";
|
|
401
|
+
const T = {
|
|
146
402
|
"status-overview__chart-container": "_status-overview__chart-container_6nwc9_3",
|
|
147
403
|
"status-chart-svg": "_status-chart-svg_6nwc9_13",
|
|
148
404
|
"status-chart__segment": "_status-chart__segment_6nwc9_23",
|
|
@@ -151,334 +407,330 @@ const P = {
|
|
|
151
407
|
"status-chart__hole": "_status-chart__hole_6nwc9_40",
|
|
152
408
|
"status-chart__total-value": "_status-chart__total-value_6nwc9_55",
|
|
153
409
|
"status-chart__total-label": "_status-chart__total-label_6nwc9_63"
|
|
154
|
-
},
|
|
155
|
-
({ data:
|
|
156
|
-
const [
|
|
157
|
-
return /* @__PURE__ */
|
|
410
|
+
}, xe = p.forwardRef(
|
|
411
|
+
({ data: t, totalLabel: a = "Gesamt", onSegmentClick: n, className: r, ...i }, u) => {
|
|
412
|
+
const [l, h] = A(null), _ = t.reduce((k, v) => k + v.value, 0), m = 240, o = m / 2, w = 100, x = 40, C = w - x / 2, f = C * 2 * Math.PI;
|
|
413
|
+
return /* @__PURE__ */ c(
|
|
158
414
|
"div",
|
|
159
415
|
{
|
|
160
|
-
ref:
|
|
161
|
-
className:
|
|
162
|
-
...
|
|
416
|
+
ref: u,
|
|
417
|
+
className: g(T["status-overview__chart-container"], r),
|
|
418
|
+
...i,
|
|
163
419
|
children: [
|
|
164
420
|
/* @__PURE__ */ e(
|
|
165
421
|
"svg",
|
|
166
422
|
{
|
|
167
|
-
viewBox: `0 0 ${
|
|
168
|
-
className:
|
|
423
|
+
viewBox: `0 0 ${m} ${m}`,
|
|
424
|
+
className: T["status-chart-svg"],
|
|
169
425
|
role: "img",
|
|
170
426
|
"aria-label": "Kreisdiagramm der Projektstatus-Verteilung",
|
|
171
427
|
overflow: "visible",
|
|
172
|
-
children:
|
|
428
|
+
children: _ === 0 ? /* @__PURE__ */ e(
|
|
173
429
|
"circle",
|
|
174
430
|
{
|
|
175
|
-
cx:
|
|
176
|
-
cy:
|
|
177
|
-
r:
|
|
431
|
+
cx: o,
|
|
432
|
+
cy: o,
|
|
433
|
+
r: C,
|
|
178
434
|
fill: "none",
|
|
179
435
|
stroke: "hsl(var(--border))",
|
|
180
436
|
strokeWidth: x
|
|
181
437
|
}
|
|
182
438
|
) : (() => {
|
|
183
|
-
let
|
|
184
|
-
return
|
|
185
|
-
if (
|
|
186
|
-
const
|
|
187
|
-
return
|
|
439
|
+
let k = 0;
|
|
440
|
+
return t.map((v) => {
|
|
441
|
+
if (v.value === 0) return null;
|
|
442
|
+
const y = v.value / _ * 100, b = y / 100 * f, s = k / 100 * f;
|
|
443
|
+
return k += y, /* @__PURE__ */ e(
|
|
188
444
|
"circle",
|
|
189
445
|
{
|
|
190
|
-
cx:
|
|
191
|
-
cy:
|
|
192
|
-
r:
|
|
446
|
+
cx: o,
|
|
447
|
+
cy: o,
|
|
448
|
+
r: C,
|
|
193
449
|
fill: "none",
|
|
194
|
-
stroke:
|
|
450
|
+
stroke: v.color,
|
|
195
451
|
strokeWidth: x,
|
|
196
|
-
strokeDasharray: `${
|
|
197
|
-
strokeDashoffset: -
|
|
198
|
-
transform: `rotate(-90 ${
|
|
199
|
-
className:
|
|
200
|
-
[
|
|
201
|
-
[
|
|
452
|
+
strokeDasharray: `${b} ${f}`,
|
|
453
|
+
strokeDashoffset: -s,
|
|
454
|
+
transform: `rotate(-90 ${o} ${o})`,
|
|
455
|
+
className: g(T["status-chart__segment"], {
|
|
456
|
+
[T["status-chart__segment--hovered"]]: l === v.status,
|
|
457
|
+
[T["status-chart__segment--dimmed"]]: l && l !== v.status
|
|
202
458
|
}),
|
|
203
|
-
onClick: () =>
|
|
204
|
-
onMouseEnter: () =>
|
|
205
|
-
onMouseLeave: () =>
|
|
206
|
-
style: { cursor:
|
|
207
|
-
children: /* @__PURE__ */ e("title", { children: `${
|
|
459
|
+
onClick: () => n?.(v.status),
|
|
460
|
+
onMouseEnter: () => h(v.status),
|
|
461
|
+
onMouseLeave: () => h(null),
|
|
462
|
+
style: { cursor: n ? "pointer" : "default" },
|
|
463
|
+
children: /* @__PURE__ */ e("title", { children: `${v.label}: ${v.value}` })
|
|
208
464
|
},
|
|
209
|
-
|
|
465
|
+
v.status
|
|
210
466
|
);
|
|
211
467
|
});
|
|
212
468
|
})()
|
|
213
469
|
}
|
|
214
470
|
),
|
|
215
|
-
/* @__PURE__ */
|
|
216
|
-
/* @__PURE__ */ e("span", { className:
|
|
217
|
-
/* @__PURE__ */ e("span", { className:
|
|
471
|
+
/* @__PURE__ */ c("div", { className: T["status-chart__hole"], children: [
|
|
472
|
+
/* @__PURE__ */ e("span", { className: T["status-chart__total-value"], children: _ }),
|
|
473
|
+
/* @__PURE__ */ e("span", { className: T["status-chart__total-label"], children: a })
|
|
218
474
|
] })
|
|
219
475
|
]
|
|
220
476
|
}
|
|
221
477
|
);
|
|
222
478
|
}
|
|
223
479
|
);
|
|
224
|
-
|
|
225
|
-
function
|
|
226
|
-
const
|
|
227
|
-
if (isNaN(
|
|
228
|
-
const
|
|
229
|
-
if (
|
|
230
|
-
if (
|
|
231
|
-
if (
|
|
232
|
-
const
|
|
233
|
-
if (
|
|
234
|
-
return
|
|
235
|
-
const
|
|
236
|
-
if (
|
|
237
|
-
return
|
|
238
|
-
const
|
|
239
|
-
return
|
|
480
|
+
xe.displayName = "StatusChart";
|
|
481
|
+
function ve(t) {
|
|
482
|
+
const a = new Date(t);
|
|
483
|
+
if (isNaN(a.getTime())) return "Ungültiges Datum";
|
|
484
|
+
const r = (/* @__PURE__ */ new Date()).getTime() - a.getTime(), i = Math.floor(r / (1e3 * 60 * 60 * 24));
|
|
485
|
+
if (i === 0) return "Heute";
|
|
486
|
+
if (i === 1) return "Gestern";
|
|
487
|
+
if (i < 7) return `vor ${i} Tagen`;
|
|
488
|
+
const u = Math.floor(i / 7);
|
|
489
|
+
if (u < 4)
|
|
490
|
+
return u === 1 ? "vor einer Woche" : `vor ${u} Wochen`;
|
|
491
|
+
const l = Math.floor(i / 30);
|
|
492
|
+
if (l < 12)
|
|
493
|
+
return l === 1 ? "vor einem Monat" : `vor ${l} Monaten`;
|
|
494
|
+
const h = Math.floor(i / 365);
|
|
495
|
+
return h === 1 ? "vor einem Jahr" : `vor ${h} Jahren`;
|
|
240
496
|
}
|
|
241
|
-
const
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
"
|
|
251
|
-
"
|
|
252
|
-
"
|
|
253
|
-
"
|
|
254
|
-
|
|
255
|
-
({ rows:
|
|
256
|
-
|
|
497
|
+
const tt = "_nameCell_1n6hv_4", at = "_favorite_1n6hv_10", st = "_nameWrapper_1n6hv_14", lt = "_name_1n6hv_4", nt = "_secondary_1n6hv_31", it = "_client_1n6hv_41", rt = "_dateMain_1n6hv_51", D = {
|
|
498
|
+
nameCell: tt,
|
|
499
|
+
favorite: at,
|
|
500
|
+
nameWrapper: st,
|
|
501
|
+
name: lt,
|
|
502
|
+
secondary: nt,
|
|
503
|
+
client: it,
|
|
504
|
+
dateMain: rt
|
|
505
|
+
}, ot = [
|
|
506
|
+
{ key: "name", label: "Projekt / Applikation" },
|
|
507
|
+
{ key: "client", label: "Kunde", width: "20%" },
|
|
508
|
+
{ key: "status", label: "Status", width: 150 },
|
|
509
|
+
{ key: "activity", label: "Aktivität", width: 160 }
|
|
510
|
+
], Ie = p.forwardRef(
|
|
511
|
+
({ rows: t, onToggleFavorite: a, className: n, ...r }, i) => /* @__PURE__ */ e(
|
|
512
|
+
we,
|
|
257
513
|
{
|
|
258
|
-
ref:
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
projectName: o.name,
|
|
281
|
-
onToggle: (d) => t?.(o.id, d),
|
|
282
|
-
className: S["project-table__favorite"]
|
|
283
|
-
}
|
|
284
|
-
),
|
|
285
|
-
/* @__PURE__ */ i("div", { className: S["project-table__name-wrapper"], title: `${o.name}
|
|
286
|
-
${o.app}`, children: [
|
|
287
|
-
/* @__PURE__ */ e("div", { className: S["project-table__name"], children: o.name }),
|
|
288
|
-
/* @__PURE__ */ e("div", { className: S["project-table__app"], children: o.app })
|
|
289
|
-
] })
|
|
290
|
-
] }) }),
|
|
291
|
-
/* @__PURE__ */ e("td", { title: o.client, children: /* @__PURE__ */ e("span", { className: S["project-table__client"], children: o.client }) }),
|
|
292
|
-
/* @__PURE__ */ e("td", { children: /* @__PURE__ */ e(ce, { status: o.status }) }),
|
|
293
|
-
/* @__PURE__ */ i("td", { title: `Geändert: ${se(o.updatedAt)}
|
|
294
|
-
Erstellt: ${o.createdAt}`, children: [
|
|
295
|
-
/* @__PURE__ */ e("div", { className: S["project-table__date-main"], children: se(o.updatedAt) }),
|
|
296
|
-
/* @__PURE__ */ i("div", { className: S["project-table__date-secondary"], children: [
|
|
297
|
-
"Erstellt: ",
|
|
298
|
-
o.createdAt
|
|
299
|
-
] })
|
|
514
|
+
ref: i,
|
|
515
|
+
columns: ot,
|
|
516
|
+
rows: t,
|
|
517
|
+
rowKey: (l) => l.id,
|
|
518
|
+
renderCell: (l, h) => {
|
|
519
|
+
switch (h.key) {
|
|
520
|
+
case "name":
|
|
521
|
+
return /* @__PURE__ */ c("div", { className: D.nameCell, children: [
|
|
522
|
+
/* @__PURE__ */ e(
|
|
523
|
+
ye,
|
|
524
|
+
{
|
|
525
|
+
pressed: l.favorite,
|
|
526
|
+
projectName: l.name,
|
|
527
|
+
size: "sm",
|
|
528
|
+
onToggle: (_) => a?.(l.id, _),
|
|
529
|
+
className: D.favorite
|
|
530
|
+
}
|
|
531
|
+
),
|
|
532
|
+
/* @__PURE__ */ c("div", { className: D.nameWrapper, title: `${l.name}
|
|
533
|
+
${l.app}`, children: [
|
|
534
|
+
/* @__PURE__ */ e("div", { className: D.name, children: l.name }),
|
|
535
|
+
/* @__PURE__ */ e("div", { className: D.secondary, children: l.app })
|
|
300
536
|
] })
|
|
301
|
-
]
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
537
|
+
] });
|
|
538
|
+
case "client":
|
|
539
|
+
return /* @__PURE__ */ e("span", { className: D.client, title: l.client, children: l.client });
|
|
540
|
+
case "status":
|
|
541
|
+
return /* @__PURE__ */ e(ke, { status: l.status });
|
|
542
|
+
case "activity":
|
|
543
|
+
return /* @__PURE__ */ c("div", { title: `Geändert: ${ve(l.updatedAt)}
|
|
544
|
+
Erstellt: ${l.createdAt}`, children: [
|
|
545
|
+
/* @__PURE__ */ e("div", { className: D.dateMain, children: ve(l.updatedAt) }),
|
|
546
|
+
/* @__PURE__ */ c("div", { className: D.secondary, children: [
|
|
547
|
+
"Erstellt: ",
|
|
548
|
+
l.createdAt
|
|
549
|
+
] })
|
|
550
|
+
] });
|
|
551
|
+
default:
|
|
552
|
+
return null;
|
|
553
|
+
}
|
|
554
|
+
},
|
|
555
|
+
rowDataAttributes: (l) => ({ "data-status": l.status }),
|
|
556
|
+
className: n,
|
|
557
|
+
...r
|
|
306
558
|
}
|
|
307
559
|
)
|
|
308
560
|
);
|
|
309
|
-
|
|
310
|
-
const
|
|
311
|
-
avatar:
|
|
561
|
+
Ie.displayName = "ProjectTable";
|
|
562
|
+
const ct = "_avatar_17ic7_3", ne = {
|
|
563
|
+
avatar: ct,
|
|
312
564
|
"avatar-group": "_avatar-group_17ic7_18",
|
|
313
565
|
"group-member": "_group-member_17ic7_23"
|
|
314
|
-
},
|
|
315
|
-
({ initials:
|
|
566
|
+
}, V = p.forwardRef(
|
|
567
|
+
({ initials: t, name: a, className: n, ...r }, i) => /* @__PURE__ */ e(
|
|
316
568
|
"div",
|
|
317
569
|
{
|
|
318
|
-
ref:
|
|
319
|
-
className:
|
|
320
|
-
title:
|
|
321
|
-
"aria-label":
|
|
322
|
-
...
|
|
323
|
-
children:
|
|
570
|
+
ref: i,
|
|
571
|
+
className: g(ne.avatar, n),
|
|
572
|
+
title: a,
|
|
573
|
+
"aria-label": a,
|
|
574
|
+
...r,
|
|
575
|
+
children: t
|
|
324
576
|
}
|
|
325
577
|
)
|
|
326
578
|
);
|
|
327
|
-
|
|
328
|
-
const
|
|
329
|
-
({ children:
|
|
579
|
+
V.displayName = "Avatar";
|
|
580
|
+
const de = p.forwardRef(
|
|
581
|
+
({ children: t, className: a, ...n }, r) => /* @__PURE__ */ e(
|
|
330
582
|
"div",
|
|
331
583
|
{
|
|
332
|
-
ref:
|
|
333
|
-
className:
|
|
334
|
-
...
|
|
335
|
-
children:
|
|
336
|
-
className:
|
|
337
|
-
}) :
|
|
584
|
+
ref: r,
|
|
585
|
+
className: g(ne["avatar-group"], a),
|
|
586
|
+
...n,
|
|
587
|
+
children: p.Children.map(t, (i) => p.isValidElement(i) ? p.cloneElement(i, {
|
|
588
|
+
className: g(i.props.className, ne["group-member"])
|
|
589
|
+
}) : i)
|
|
338
590
|
}
|
|
339
591
|
)
|
|
340
592
|
);
|
|
341
|
-
|
|
342
|
-
const
|
|
343
|
-
btn:
|
|
593
|
+
de.displayName = "AvatarGroup";
|
|
594
|
+
const dt = "_btn_7bh63_3", Y = {
|
|
595
|
+
btn: dt,
|
|
344
596
|
"btn--primary": "_btn--primary_7bh63_27",
|
|
345
597
|
"btn--outline": "_btn--outline_7bh63_39",
|
|
346
598
|
"btn--ghost": "_btn--ghost_7bh63_52",
|
|
347
599
|
"btn--sm": "_btn--sm_7bh63_63"
|
|
348
|
-
},
|
|
349
|
-
({ variant:
|
|
600
|
+
}, R = p.forwardRef(
|
|
601
|
+
({ variant: t, size: a = "md", className: n, children: r, ...i }, u) => /* @__PURE__ */ e(
|
|
350
602
|
"button",
|
|
351
603
|
{
|
|
352
|
-
ref:
|
|
353
|
-
className:
|
|
354
|
-
|
|
604
|
+
ref: u,
|
|
605
|
+
className: g(
|
|
606
|
+
Y.btn,
|
|
355
607
|
{
|
|
356
|
-
[
|
|
357
|
-
[
|
|
608
|
+
[Y[`btn--${t}`]]: t,
|
|
609
|
+
[Y[`btn--${a}`]]: a && a !== "md"
|
|
358
610
|
},
|
|
359
|
-
|
|
611
|
+
n
|
|
360
612
|
),
|
|
361
|
-
...
|
|
362
|
-
children:
|
|
613
|
+
...i,
|
|
614
|
+
children: r
|
|
363
615
|
}
|
|
364
616
|
)
|
|
365
617
|
);
|
|
366
|
-
|
|
367
|
-
const
|
|
368
|
-
badge:
|
|
618
|
+
R.displayName = "Button";
|
|
619
|
+
const _t = "_badge_1e35x_3", ee = {
|
|
620
|
+
badge: _t,
|
|
369
621
|
"badge--high": "_badge--high_1e35x_12",
|
|
370
622
|
"badge--medium": "_badge--medium_1e35x_18",
|
|
371
623
|
"badge--low": "_badge--low_1e35x_24",
|
|
372
624
|
"badge--size-small": "_badge--size-small_1e35x_30",
|
|
373
625
|
"badge--size-large": "_badge--size-large_1e35x_37"
|
|
374
|
-
},
|
|
626
|
+
}, ut = {
|
|
375
627
|
high: "!!",
|
|
376
628
|
medium: "!",
|
|
377
629
|
low: "-"
|
|
378
|
-
},
|
|
630
|
+
}, mt = {
|
|
379
631
|
high: "Hohe Priorität",
|
|
380
632
|
medium: "Mittlere Priorität",
|
|
381
633
|
low: "Niedrige Priorität"
|
|
382
|
-
},
|
|
383
|
-
({ level:
|
|
384
|
-
const
|
|
634
|
+
}, _e = p.forwardRef(
|
|
635
|
+
({ level: t, size: a = "small", className: n, "aria-label": r, ...i }, u) => {
|
|
636
|
+
const l = mt[t];
|
|
385
637
|
return /* @__PURE__ */ e(
|
|
386
638
|
"span",
|
|
387
639
|
{
|
|
388
|
-
ref:
|
|
389
|
-
className:
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
640
|
+
ref: u,
|
|
641
|
+
className: g(
|
|
642
|
+
ee.badge,
|
|
643
|
+
ee[`badge--${t}`],
|
|
644
|
+
ee[`badge--size-${a}`],
|
|
645
|
+
n
|
|
394
646
|
),
|
|
395
|
-
"aria-label":
|
|
396
|
-
...
|
|
397
|
-
children:
|
|
647
|
+
"aria-label": r || l,
|
|
648
|
+
...i,
|
|
649
|
+
children: ut[t]
|
|
398
650
|
}
|
|
399
651
|
);
|
|
400
652
|
}
|
|
401
653
|
);
|
|
402
|
-
|
|
403
|
-
const
|
|
404
|
-
badge:
|
|
405
|
-
},
|
|
406
|
-
({ className:
|
|
654
|
+
_e.displayName = "PriorityBadge";
|
|
655
|
+
const ht = "_badge_1j9lv_3", vt = {
|
|
656
|
+
badge: ht
|
|
657
|
+
}, ie = p.forwardRef(
|
|
658
|
+
({ className: t, children: a, ...n }, r) => /* @__PURE__ */ e(
|
|
407
659
|
"span",
|
|
408
660
|
{
|
|
409
|
-
ref:
|
|
410
|
-
className:
|
|
411
|
-
...
|
|
412
|
-
children:
|
|
661
|
+
ref: r,
|
|
662
|
+
className: g(vt.badge, t),
|
|
663
|
+
...n,
|
|
664
|
+
children: a
|
|
413
665
|
}
|
|
414
666
|
)
|
|
415
667
|
);
|
|
416
|
-
|
|
417
|
-
const
|
|
668
|
+
ie.displayName = "Badge";
|
|
669
|
+
const gt = "_icon_15zae_56", P = {
|
|
418
670
|
"status-dropdown": "_status-dropdown_15zae_3",
|
|
419
671
|
"status-trigger": "_status-trigger_15zae_9",
|
|
420
672
|
"status-menu": "_status-menu_15zae_14",
|
|
421
673
|
"is-open": "_is-open_15zae_31",
|
|
422
674
|
"status-menu-item": "_status-menu-item_15zae_35",
|
|
423
675
|
"is-active": "_is-active_15zae_52",
|
|
424
|
-
icon:
|
|
676
|
+
icon: gt,
|
|
425
677
|
"icon-sm": "_icon-sm_15zae_65"
|
|
426
|
-
},
|
|
427
|
-
({ value:
|
|
428
|
-
const [
|
|
429
|
-
typeof
|
|
430
|
-
},
|
|
431
|
-
|
|
432
|
-
const
|
|
433
|
-
|
|
678
|
+
}, Se = p.forwardRef(
|
|
679
|
+
({ value: t, onChange: a, options: n, className: r, "aria-label": i, ...u }, l) => {
|
|
680
|
+
const [h, _] = A(!1), m = Re(null), o = (f) => {
|
|
681
|
+
typeof l == "function" ? l(f) : l && (l.current = f), m.current = f;
|
|
682
|
+
}, w = n.find((f) => f.value === t) || n[0];
|
|
683
|
+
le(() => {
|
|
684
|
+
const f = (k) => {
|
|
685
|
+
m.current && !m.current.contains(k.target) && _(!1);
|
|
434
686
|
};
|
|
435
|
-
return document.addEventListener("mousedown",
|
|
687
|
+
return document.addEventListener("mousedown", f), () => document.removeEventListener("mousedown", f);
|
|
436
688
|
}, []);
|
|
437
|
-
const x = (
|
|
438
|
-
|
|
439
|
-
},
|
|
440
|
-
|
|
689
|
+
const x = (f) => {
|
|
690
|
+
f.stopPropagation(), _(!h);
|
|
691
|
+
}, C = (f, k) => {
|
|
692
|
+
f.stopPropagation(), a && a(k.value), _(!1);
|
|
441
693
|
};
|
|
442
|
-
return /* @__PURE__ */
|
|
694
|
+
return /* @__PURE__ */ c(
|
|
443
695
|
"div",
|
|
444
696
|
{
|
|
445
|
-
ref:
|
|
446
|
-
className:
|
|
447
|
-
...
|
|
697
|
+
ref: o,
|
|
698
|
+
className: g(P["status-dropdown"], r),
|
|
699
|
+
...u,
|
|
448
700
|
children: [
|
|
449
|
-
/* @__PURE__ */
|
|
450
|
-
|
|
701
|
+
/* @__PURE__ */ c(
|
|
702
|
+
R,
|
|
451
703
|
{
|
|
452
704
|
variant: "outline",
|
|
453
705
|
size: "sm",
|
|
454
|
-
className:
|
|
706
|
+
className: P["status-trigger"],
|
|
455
707
|
onClick: x,
|
|
456
708
|
"aria-haspopup": "listbox",
|
|
457
|
-
"aria-expanded":
|
|
458
|
-
"aria-label":
|
|
709
|
+
"aria-expanded": h,
|
|
710
|
+
"aria-label": i,
|
|
459
711
|
children: [
|
|
460
|
-
|
|
461
|
-
/* @__PURE__ */ e("svg", { className:
|
|
712
|
+
w?.label,
|
|
713
|
+
/* @__PURE__ */ e("svg", { className: g(P.icon, P["icon-sm"]), viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: /* @__PURE__ */ e("path", { d: "m6 9 6 6 6-6" }) })
|
|
462
714
|
]
|
|
463
715
|
}
|
|
464
716
|
),
|
|
465
717
|
/* @__PURE__ */ e(
|
|
466
718
|
"div",
|
|
467
719
|
{
|
|
468
|
-
className:
|
|
720
|
+
className: g(P["status-menu"], { [P["is-open"]]: h }),
|
|
469
721
|
role: "listbox",
|
|
470
|
-
children:
|
|
722
|
+
children: n.map((f) => /* @__PURE__ */ e(
|
|
471
723
|
"button",
|
|
472
724
|
{
|
|
473
|
-
className:
|
|
474
|
-
[
|
|
725
|
+
className: g(P["status-menu-item"], {
|
|
726
|
+
[P["is-active"]]: f.value === w?.value
|
|
475
727
|
}),
|
|
476
728
|
role: "option",
|
|
477
|
-
"aria-selected":
|
|
478
|
-
onClick: (
|
|
479
|
-
children:
|
|
729
|
+
"aria-selected": f.value === w?.value,
|
|
730
|
+
onClick: (k) => C(k, f),
|
|
731
|
+
children: f.label
|
|
480
732
|
},
|
|
481
|
-
|
|
733
|
+
f.value
|
|
482
734
|
))
|
|
483
735
|
}
|
|
484
736
|
)
|
|
@@ -487,70 +739,70 @@ const je = "_icon_15zae_56", L = {
|
|
|
487
739
|
);
|
|
488
740
|
}
|
|
489
741
|
);
|
|
490
|
-
|
|
491
|
-
const
|
|
492
|
-
checklist:
|
|
493
|
-
|
|
494
|
-
"is-done": "_is-
|
|
495
|
-
"checklist--readonly": "_checklist--
|
|
496
|
-
|
|
497
|
-
},
|
|
498
|
-
({ items:
|
|
499
|
-
const
|
|
500
|
-
|
|
501
|
-
},
|
|
502
|
-
|
|
742
|
+
Se.displayName = "StatusDropdown";
|
|
743
|
+
const bt = "_checklist_1iobh_3", ft = "_checkItem_1iobh_7", pt = "_formControl_1iobh_39", q = {
|
|
744
|
+
checklist: bt,
|
|
745
|
+
checkItem: ft,
|
|
746
|
+
"is-done": "_is-done_1iobh_26",
|
|
747
|
+
"checklist--readonly": "_checklist--readonly_1iobh_31",
|
|
748
|
+
formControl: pt
|
|
749
|
+
}, re = p.forwardRef(
|
|
750
|
+
({ items: t, onChange: a, editable: n = !1, className: r, ...i }, u) => {
|
|
751
|
+
const l = (_, m) => {
|
|
752
|
+
a && a(t.map((o) => o.id === _ ? { ...o, checked: m } : o));
|
|
753
|
+
}, h = (_, m) => {
|
|
754
|
+
a && a(t.map((o) => o.id === _ ? { ...o, text: m } : o));
|
|
503
755
|
};
|
|
504
756
|
return /* @__PURE__ */ e(
|
|
505
|
-
|
|
757
|
+
ce,
|
|
506
758
|
{
|
|
507
|
-
ref:
|
|
508
|
-
className:
|
|
509
|
-
...
|
|
510
|
-
children:
|
|
759
|
+
ref: u,
|
|
760
|
+
className: g(q.checklist, { [q["checklist--readonly"]]: !n }, r),
|
|
761
|
+
...i,
|
|
762
|
+
children: t.map((_) => /* @__PURE__ */ c("div", { role: "listitem", className: g(q.checkItem, { [q["is-done"]]: _.checked }), children: [
|
|
511
763
|
/* @__PURE__ */ e(
|
|
512
764
|
"input",
|
|
513
765
|
{
|
|
514
766
|
type: "checkbox",
|
|
515
|
-
id:
|
|
516
|
-
checked:
|
|
517
|
-
onChange: (
|
|
767
|
+
id: _.id,
|
|
768
|
+
checked: _.checked,
|
|
769
|
+
onChange: (m) => l(_.id, m.target.checked)
|
|
518
770
|
}
|
|
519
771
|
),
|
|
520
|
-
|
|
772
|
+
n ? /* @__PURE__ */ e(
|
|
521
773
|
"input",
|
|
522
774
|
{
|
|
523
775
|
type: "text",
|
|
524
|
-
className:
|
|
525
|
-
value:
|
|
526
|
-
onChange: (
|
|
776
|
+
className: q.formControl,
|
|
777
|
+
value: _.text,
|
|
778
|
+
onChange: (m) => h(_.id, m.target.value),
|
|
527
779
|
placeholder: "Was ist zu tun?",
|
|
528
780
|
"aria-label": "Aufgabenbeschreibung bearbeiten"
|
|
529
781
|
}
|
|
530
|
-
) : /* @__PURE__ */ e("label", { htmlFor:
|
|
531
|
-
] },
|
|
782
|
+
) : /* @__PURE__ */ e("label", { htmlFor: _.id, children: _.text })
|
|
783
|
+
] }, _.id))
|
|
532
784
|
}
|
|
533
785
|
);
|
|
534
786
|
}
|
|
535
787
|
);
|
|
536
|
-
|
|
537
|
-
const
|
|
538
|
-
searchInput:
|
|
539
|
-
icon:
|
|
540
|
-
field:
|
|
541
|
-
},
|
|
788
|
+
re.displayName = "Checklist";
|
|
789
|
+
const wt = "_searchInput_16e7c_3", Nt = "_icon_16e7c_20", kt = "_field_16e7c_27", te = {
|
|
790
|
+
searchInput: wt,
|
|
791
|
+
icon: Nt,
|
|
792
|
+
field: kt
|
|
793
|
+
}, yt = p.forwardRef(
|
|
542
794
|
({
|
|
543
|
-
value:
|
|
544
|
-
placeholder:
|
|
545
|
-
onChange:
|
|
546
|
-
"aria-label":
|
|
547
|
-
id:
|
|
548
|
-
className:
|
|
549
|
-
},
|
|
550
|
-
/* @__PURE__ */
|
|
795
|
+
value: t,
|
|
796
|
+
placeholder: a = "Suche...",
|
|
797
|
+
onChange: n,
|
|
798
|
+
"aria-label": r = "Daten durchsuchen",
|
|
799
|
+
id: i,
|
|
800
|
+
className: u
|
|
801
|
+
}, l) => /* @__PURE__ */ c("label", { className: g(te.searchInput, u), htmlFor: i, children: [
|
|
802
|
+
/* @__PURE__ */ c(
|
|
551
803
|
"svg",
|
|
552
804
|
{
|
|
553
|
-
className:
|
|
805
|
+
className: te.icon,
|
|
554
806
|
viewBox: "0 0 24 24",
|
|
555
807
|
fill: "none",
|
|
556
808
|
stroke: "currentColor",
|
|
@@ -567,46 +819,46 @@ const Ae = "_searchInput_16e7c_3", Ce = "_icon_16e7c_20", $e = "_field_16e7c_27"
|
|
|
567
819
|
/* @__PURE__ */ e(
|
|
568
820
|
"input",
|
|
569
821
|
{
|
|
570
|
-
ref:
|
|
571
|
-
className:
|
|
822
|
+
ref: l,
|
|
823
|
+
className: te.field,
|
|
572
824
|
type: "search",
|
|
573
|
-
id:
|
|
574
|
-
value:
|
|
575
|
-
placeholder:
|
|
576
|
-
"aria-label":
|
|
577
|
-
onChange: (
|
|
825
|
+
id: i,
|
|
826
|
+
value: t,
|
|
827
|
+
placeholder: a,
|
|
828
|
+
"aria-label": r,
|
|
829
|
+
onChange: (h) => n?.(h.target.value)
|
|
578
830
|
}
|
|
579
831
|
)
|
|
580
832
|
] })
|
|
581
833
|
);
|
|
582
|
-
|
|
583
|
-
const
|
|
584
|
-
btn:
|
|
585
|
-
chevron:
|
|
834
|
+
yt.displayName = "SearchInput";
|
|
835
|
+
const Ct = "_btn_6gx9b_3", xt = "_chevron_6gx9b_30", ae = {
|
|
836
|
+
btn: Ct,
|
|
837
|
+
chevron: xt,
|
|
586
838
|
"btn--open": "_btn--open_6gx9b_37"
|
|
587
|
-
},
|
|
839
|
+
}, It = p.forwardRef(
|
|
588
840
|
({
|
|
589
|
-
expanded:
|
|
590
|
-
count:
|
|
591
|
-
label:
|
|
592
|
-
onClick:
|
|
593
|
-
"aria-label":
|
|
594
|
-
className:
|
|
595
|
-
},
|
|
596
|
-
const
|
|
597
|
-
return /* @__PURE__ */
|
|
841
|
+
expanded: t = !1,
|
|
842
|
+
count: a,
|
|
843
|
+
label: n,
|
|
844
|
+
onClick: r,
|
|
845
|
+
"aria-label": i,
|
|
846
|
+
className: u
|
|
847
|
+
}, l) => {
|
|
848
|
+
const h = n ? `${a ?? ""} ${n}`.trim() : a != null ? String(a) : "";
|
|
849
|
+
return /* @__PURE__ */ c(
|
|
598
850
|
"button",
|
|
599
851
|
{
|
|
600
|
-
ref:
|
|
601
|
-
className:
|
|
602
|
-
onClick:
|
|
603
|
-
"aria-expanded":
|
|
604
|
-
"aria-label":
|
|
852
|
+
ref: l,
|
|
853
|
+
className: g(ae.btn, { [ae["btn--open"]]: t }, u),
|
|
854
|
+
onClick: r,
|
|
855
|
+
"aria-expanded": t,
|
|
856
|
+
"aria-label": i,
|
|
605
857
|
children: [
|
|
606
858
|
/* @__PURE__ */ e(
|
|
607
859
|
"svg",
|
|
608
860
|
{
|
|
609
|
-
className:
|
|
861
|
+
className: ae.chevron,
|
|
610
862
|
viewBox: "0 0 24 24",
|
|
611
863
|
fill: "none",
|
|
612
864
|
stroke: "currentColor",
|
|
@@ -617,134 +869,132 @@ const ze = "_btn_6gx9b_3", Pe = "_chevron_6gx9b_30", H = {
|
|
|
617
869
|
children: /* @__PURE__ */ e("polyline", { points: "6 9 12 15 18 9" })
|
|
618
870
|
}
|
|
619
871
|
),
|
|
620
|
-
|
|
872
|
+
h
|
|
621
873
|
]
|
|
622
874
|
}
|
|
623
875
|
);
|
|
624
876
|
}
|
|
625
877
|
);
|
|
626
|
-
|
|
627
|
-
const
|
|
628
|
-
circle:
|
|
629
|
-
svg:
|
|
630
|
-
track:
|
|
631
|
-
fill:
|
|
632
|
-
label:
|
|
633
|
-
},
|
|
634
|
-
function
|
|
635
|
-
return
|
|
878
|
+
It.displayName = "ExpandButton";
|
|
879
|
+
const St = "_circle_gvt69_3", jt = "_svg_gvt69_12", $t = "_track_gvt69_18", At = "_fill_gvt69_24", Lt = "_label_gvt69_31", W = {
|
|
880
|
+
circle: St,
|
|
881
|
+
svg: jt,
|
|
882
|
+
track: $t,
|
|
883
|
+
fill: At,
|
|
884
|
+
label: Lt
|
|
885
|
+
}, oe = 14, se = 2 * Math.PI * oe;
|
|
886
|
+
function zt(t) {
|
|
887
|
+
return t >= 75 ? "var(--color-success)" : t >= 50 ? "var(--color-warning)" : "var(--error)";
|
|
636
888
|
}
|
|
637
|
-
const
|
|
638
|
-
({ value:
|
|
639
|
-
const
|
|
640
|
-
return /* @__PURE__ */
|
|
641
|
-
/* @__PURE__ */
|
|
642
|
-
/* @__PURE__ */ e("circle", { className:
|
|
889
|
+
const Rt = p.forwardRef(
|
|
890
|
+
({ value: t, className: a }, n) => {
|
|
891
|
+
const r = Math.max(0, Math.min(100, t)), i = se - r / 100 * se;
|
|
892
|
+
return /* @__PURE__ */ c("div", { ref: n, className: g(W.circle, a), role: "meter", "aria-valuenow": r, "aria-valuemin": 0, "aria-valuemax": 100, "aria-label": `${r}%`, children: [
|
|
893
|
+
/* @__PURE__ */ c("svg", { className: W.svg, viewBox: "0 0 36 36", children: [
|
|
894
|
+
/* @__PURE__ */ e("circle", { className: W.track, cx: "18", cy: "18", r: oe }),
|
|
643
895
|
/* @__PURE__ */ e(
|
|
644
896
|
"circle",
|
|
645
897
|
{
|
|
646
|
-
className:
|
|
898
|
+
className: W.fill,
|
|
647
899
|
cx: "18",
|
|
648
900
|
cy: "18",
|
|
649
|
-
r:
|
|
650
|
-
stroke:
|
|
651
|
-
strokeDasharray:
|
|
652
|
-
strokeDashoffset:
|
|
901
|
+
r: oe,
|
|
902
|
+
stroke: zt(r),
|
|
903
|
+
strokeDasharray: se,
|
|
904
|
+
strokeDashoffset: i
|
|
653
905
|
}
|
|
654
906
|
)
|
|
655
907
|
] }),
|
|
656
|
-
/* @__PURE__ */
|
|
657
|
-
|
|
908
|
+
/* @__PURE__ */ c("span", { className: W.label, children: [
|
|
909
|
+
r,
|
|
658
910
|
"%"
|
|
659
911
|
] })
|
|
660
912
|
] });
|
|
661
913
|
}
|
|
662
914
|
);
|
|
663
|
-
|
|
664
|
-
const
|
|
665
|
-
bar:
|
|
666
|
-
track:
|
|
667
|
-
fill:
|
|
668
|
-
value:
|
|
669
|
-
},
|
|
670
|
-
({ value:
|
|
671
|
-
const
|
|
672
|
-
return /* @__PURE__ */
|
|
673
|
-
/* @__PURE__ */ e("div", { className:
|
|
674
|
-
/* @__PURE__ */
|
|
675
|
-
|
|
915
|
+
Rt.displayName = "ProgressCircle";
|
|
916
|
+
const Tt = "_bar_l0q8t_3", Dt = "_track_l0q8t_9", Pt = "_fill_l0q8t_17", Mt = "_value_l0q8t_23", H = {
|
|
917
|
+
bar: Tt,
|
|
918
|
+
track: Dt,
|
|
919
|
+
fill: Pt,
|
|
920
|
+
value: Mt
|
|
921
|
+
}, Et = p.forwardRef(
|
|
922
|
+
({ value: t, className: a }, n) => {
|
|
923
|
+
const r = typeof t == "number" && t <= 1 ? t * 100 : t, i = Math.round(r);
|
|
924
|
+
return /* @__PURE__ */ c("div", { ref: n, className: g(H.bar, a), role: "meter", "aria-valuenow": i, "aria-valuemin": 0, "aria-valuemax": 100, "aria-label": `${i}%`, children: [
|
|
925
|
+
/* @__PURE__ */ e("div", { className: H.track, children: /* @__PURE__ */ e("div", { className: H.fill, style: { width: `${r}%` } }) }),
|
|
926
|
+
/* @__PURE__ */ c("span", { className: H.value, children: [
|
|
927
|
+
i,
|
|
676
928
|
"%"
|
|
677
929
|
] })
|
|
678
930
|
] });
|
|
679
931
|
}
|
|
680
932
|
);
|
|
681
|
-
|
|
682
|
-
const
|
|
683
|
-
empty:
|
|
684
|
-
icon:
|
|
685
|
-
title:
|
|
686
|
-
text:
|
|
687
|
-
},
|
|
688
|
-
({ title:
|
|
689
|
-
|
|
690
|
-
/* @__PURE__ */ e("div", { className:
|
|
691
|
-
|
|
933
|
+
Et.displayName = "ScoreBar";
|
|
934
|
+
const Bt = "_empty_26icj_3", Ft = "_icon_26icj_12", Ot = "_title_26icj_19", qt = "_text_26icj_27", G = {
|
|
935
|
+
empty: Bt,
|
|
936
|
+
icon: Ft,
|
|
937
|
+
title: Ot,
|
|
938
|
+
text: qt
|
|
939
|
+
}, Wt = p.forwardRef(
|
|
940
|
+
({ title: t, text: a, icon: n, className: r }, i) => /* @__PURE__ */ c("div", { ref: i, className: g(G.empty, r), role: "status", children: [
|
|
941
|
+
n && /* @__PURE__ */ e("div", { className: G.icon, "aria-hidden": "true", children: n }),
|
|
942
|
+
/* @__PURE__ */ e("div", { className: G.title, children: t }),
|
|
943
|
+
a && /* @__PURE__ */ e("div", { className: G.text, children: a })
|
|
692
944
|
] })
|
|
693
945
|
);
|
|
694
|
-
|
|
695
|
-
const
|
|
696
|
-
toggle:
|
|
697
|
-
btn:
|
|
946
|
+
Wt.displayName = "EmptyState";
|
|
947
|
+
const Vt = "_toggle_176y2_3", Ht = "_btn_176y2_11", Gt = "_icon_176y2_43", K = {
|
|
948
|
+
toggle: Vt,
|
|
949
|
+
btn: Ht,
|
|
698
950
|
"btn--active": "_btn--active_176y2_37",
|
|
699
|
-
icon:
|
|
700
|
-
},
|
|
951
|
+
icon: Gt
|
|
952
|
+
}, Kt = p.forwardRef(
|
|
701
953
|
({
|
|
702
|
-
options:
|
|
703
|
-
value:
|
|
704
|
-
onChange:
|
|
705
|
-
"aria-label":
|
|
706
|
-
role:
|
|
707
|
-
className:
|
|
708
|
-
},
|
|
709
|
-
const
|
|
954
|
+
options: t,
|
|
955
|
+
value: a,
|
|
956
|
+
onChange: n,
|
|
957
|
+
"aria-label": r,
|
|
958
|
+
role: i = "tablist",
|
|
959
|
+
className: u
|
|
960
|
+
}, l) => {
|
|
961
|
+
const h = i === "tablist" ? "tab" : "radio", _ = i === "tablist" ? "aria-selected" : "aria-checked";
|
|
710
962
|
return /* @__PURE__ */ e(
|
|
711
963
|
"div",
|
|
712
964
|
{
|
|
713
|
-
ref:
|
|
714
|
-
className:
|
|
715
|
-
role:
|
|
716
|
-
"aria-label":
|
|
717
|
-
children:
|
|
718
|
-
const
|
|
719
|
-
return /* @__PURE__ */
|
|
965
|
+
ref: l,
|
|
966
|
+
className: g(K.toggle, u),
|
|
967
|
+
role: i,
|
|
968
|
+
"aria-label": r,
|
|
969
|
+
children: t.map((m) => {
|
|
970
|
+
const o = m.value === a;
|
|
971
|
+
return /* @__PURE__ */ c(
|
|
720
972
|
"button",
|
|
721
973
|
{
|
|
722
|
-
className:
|
|
723
|
-
role:
|
|
724
|
-
[
|
|
725
|
-
onClick: () =>
|
|
974
|
+
className: g(K.btn, { [K["btn--active"]]: o }),
|
|
975
|
+
role: h,
|
|
976
|
+
[_]: o,
|
|
977
|
+
onClick: () => n?.(m.value),
|
|
726
978
|
children: [
|
|
727
|
-
|
|
728
|
-
|
|
979
|
+
m.icon && /* @__PURE__ */ e("span", { className: K.icon, "aria-hidden": "true", children: m.icon }),
|
|
980
|
+
m.label
|
|
729
981
|
]
|
|
730
982
|
},
|
|
731
|
-
|
|
983
|
+
m.value
|
|
732
984
|
);
|
|
733
985
|
})
|
|
734
986
|
}
|
|
735
987
|
);
|
|
736
988
|
}
|
|
737
989
|
);
|
|
738
|
-
|
|
739
|
-
const
|
|
740
|
-
dashboard:
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
"project-filters__search": "_project-filters__search_1mbco_54"
|
|
747
|
-
}, ta = [
|
|
990
|
+
Kt.displayName = "SegmentedControl";
|
|
991
|
+
const Ut = "_dashboard_wq6z7_4", Qt = "_sectionTitle_wq6z7_18", Jt = "_statusLegend_wq6z7_27", Zt = "_projectFilters_wq6z7_34", Xt = "_projectFilters__search_wq6z7_48", M = {
|
|
992
|
+
dashboard: Ut,
|
|
993
|
+
sectionTitle: Qt,
|
|
994
|
+
statusLegend: Jt,
|
|
995
|
+
projectFilters: Zt,
|
|
996
|
+
projectFilters__search: Xt
|
|
997
|
+
}, Yt = [
|
|
748
998
|
{ id: "1", name: "E-Commerce Relaunch", client: "Müller GmbH", app: "Shopify CMS", status: "neu", favorite: !1, createdAt: "12.02.2026", updatedAt: (/* @__PURE__ */ new Date()).toISOString() },
|
|
749
999
|
{ id: "2", name: "CRM Integration MVP", client: "TechCorp Inc.", app: "Salesforce API", status: "offen", favorite: !0, createdAt: "15.01.2026", updatedAt: new Date(Date.now() - 2880 * 60 * 1e3).toISOString() },
|
|
750
1000
|
{ id: "3", name: "Data Analytics Dashboard", client: "DataViz AG", app: "React / Supabase", status: "in-prufung", favorite: !1, createdAt: "20.02.2026", updatedAt: new Date(Date.now() - 10080 * 60 * 1e3).toISOString() },
|
|
@@ -771,117 +1021,122 @@ const aa = "_dashboard_1mbco_4", A = {
|
|
|
771
1021
|
createdAt: "05.01.2026",
|
|
772
1022
|
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
773
1023
|
}
|
|
774
|
-
],
|
|
1024
|
+
], ea = [
|
|
775
1025
|
{ status: "alle", label: "Alle" },
|
|
776
1026
|
{ status: "neu", label: "Neu" },
|
|
777
1027
|
{ status: "offen", label: "Offen" },
|
|
778
1028
|
{ status: "in-prufung", label: "In Prüfung" },
|
|
779
1029
|
{ status: "validierung", label: "Validierung" },
|
|
780
1030
|
{ status: "abgeschlossen", label: "Abgeschlossen" }
|
|
781
|
-
],
|
|
1031
|
+
], ta = {
|
|
782
1032
|
neu: "Neu",
|
|
783
1033
|
offen: "Offen",
|
|
784
1034
|
"in-prufung": "In Prüfung",
|
|
785
1035
|
validierung: "Validierung",
|
|
786
1036
|
abgeschlossen: "Abgeschlossen"
|
|
787
|
-
},
|
|
788
|
-
({ initialRows:
|
|
789
|
-
const [
|
|
790
|
-
const
|
|
791
|
-
alle:
|
|
1037
|
+
}, aa = p.forwardRef(
|
|
1038
|
+
({ initialRows: t = Yt, className: a, ...n }, r) => {
|
|
1039
|
+
const [i, u] = A(t), [l, h] = A("alle"), [_, m] = A(""), o = Z(() => {
|
|
1040
|
+
const v = {
|
|
1041
|
+
alle: i.length,
|
|
792
1042
|
neu: 0,
|
|
793
1043
|
offen: 0,
|
|
794
1044
|
"in-prufung": 0,
|
|
795
1045
|
validierung: 0,
|
|
796
1046
|
abgeschlossen: 0
|
|
797
1047
|
};
|
|
798
|
-
return
|
|
799
|
-
|
|
800
|
-
}),
|
|
801
|
-
}, [
|
|
802
|
-
let
|
|
803
|
-
if (
|
|
804
|
-
const
|
|
805
|
-
|
|
806
|
-
(
|
|
1048
|
+
return i.forEach((y) => {
|
|
1049
|
+
v[y.status]++;
|
|
1050
|
+
}), v;
|
|
1051
|
+
}, [i]), w = Z(() => {
|
|
1052
|
+
let v = i;
|
|
1053
|
+
if (l !== "alle" && (v = v.filter((y) => y.status === l)), _.trim() !== "") {
|
|
1054
|
+
const y = _.toLowerCase().trim();
|
|
1055
|
+
v = v.filter(
|
|
1056
|
+
(b) => b.name.toLowerCase().includes(y) || b.client.toLowerCase().includes(y) || b.app.toLowerCase().includes(y)
|
|
807
1057
|
);
|
|
808
1058
|
}
|
|
809
|
-
return
|
|
810
|
-
}, [
|
|
811
|
-
|
|
812
|
-
},
|
|
813
|
-
{ status: "neu", label: "Neu", value:
|
|
814
|
-
{ status: "offen", label: "Offen", value:
|
|
815
|
-
{ status: "in-prufung", label: "In Prüfung", value:
|
|
816
|
-
{ status: "validierung", label: "Validierung", value:
|
|
817
|
-
{ status: "abgeschlossen", label: "Abgeschlossen", value:
|
|
818
|
-
], [
|
|
819
|
-
|
|
1059
|
+
return l === "alle" && (v = [...v].sort((y, b) => Number(b.favorite) - Number(y.favorite))), v;
|
|
1060
|
+
}, [i, l, _]), x = l === "alle" ? "Alle Projekte" : `Projekte: ${ta[l]}`, C = (v, y) => {
|
|
1061
|
+
u((b) => b.map((s) => s.id === v ? { ...s, favorite: y } : s));
|
|
1062
|
+
}, f = Z(() => [
|
|
1063
|
+
{ status: "neu", label: "Neu", value: o.neu, color: "hsl(var(--status-neu))" },
|
|
1064
|
+
{ status: "offen", label: "Offen", value: o.offen, color: "hsl(var(--status-offen))" },
|
|
1065
|
+
{ status: "in-prufung", label: "In Prüfung", value: o["in-prufung"], color: "hsl(var(--status-in-prufung))" },
|
|
1066
|
+
{ status: "validierung", label: "Validierung", value: o.validierung, color: "hsl(var(--status-validierung))" },
|
|
1067
|
+
{ status: "abgeschlossen", label: "Abgeschlossen", value: o.abgeschlossen, color: "hsl(var(--status-abgeschlossen))" }
|
|
1068
|
+
], [o]), k = (v) => {
|
|
1069
|
+
h(v);
|
|
820
1070
|
};
|
|
821
|
-
return /* @__PURE__ */
|
|
1071
|
+
return /* @__PURE__ */ c(
|
|
822
1072
|
"main",
|
|
823
1073
|
{
|
|
824
|
-
ref:
|
|
825
|
-
className:
|
|
826
|
-
...
|
|
1074
|
+
ref: r,
|
|
1075
|
+
className: g(M.dashboard, a),
|
|
1076
|
+
...n,
|
|
827
1077
|
children: [
|
|
828
|
-
/* @__PURE__ */
|
|
829
|
-
|
|
1078
|
+
/* @__PURE__ */ c(
|
|
1079
|
+
U,
|
|
830
1080
|
{
|
|
831
|
-
|
|
1081
|
+
as: "section",
|
|
1082
|
+
variant: "full",
|
|
1083
|
+
padded: !0,
|
|
832
1084
|
"aria-label": "Projektstatus Übersicht",
|
|
1085
|
+
className: M.statusOverview,
|
|
833
1086
|
children: [
|
|
834
|
-
/* @__PURE__ */ e("
|
|
1087
|
+
/* @__PURE__ */ e("h1", { className: M.sectionTitle, children: "Projekte" }),
|
|
835
1088
|
/* @__PURE__ */ e(
|
|
836
|
-
|
|
1089
|
+
xe,
|
|
837
1090
|
{
|
|
838
|
-
data:
|
|
839
|
-
onSegmentClick:
|
|
1091
|
+
data: f,
|
|
1092
|
+
onSegmentClick: k
|
|
840
1093
|
}
|
|
841
1094
|
),
|
|
842
1095
|
/* @__PURE__ */ e(
|
|
843
1096
|
"div",
|
|
844
1097
|
{
|
|
845
|
-
className:
|
|
1098
|
+
className: M.statusLegend,
|
|
846
1099
|
role: "listbox",
|
|
847
1100
|
"aria-label": "Nach Status filtern",
|
|
848
|
-
children:
|
|
849
|
-
|
|
1101
|
+
children: ea.map(({ status: v, label: y }) => /* @__PURE__ */ e(
|
|
1102
|
+
Ce,
|
|
850
1103
|
{
|
|
851
|
-
status:
|
|
852
|
-
label:
|
|
853
|
-
count:
|
|
854
|
-
active:
|
|
855
|
-
onClick: () =>
|
|
1104
|
+
status: v,
|
|
1105
|
+
label: y,
|
|
1106
|
+
count: o[v],
|
|
1107
|
+
active: l === v,
|
|
1108
|
+
onClick: () => h(v)
|
|
856
1109
|
},
|
|
857
|
-
|
|
1110
|
+
v
|
|
858
1111
|
))
|
|
859
1112
|
}
|
|
860
1113
|
)
|
|
861
1114
|
]
|
|
862
1115
|
}
|
|
863
1116
|
),
|
|
864
|
-
/* @__PURE__ */
|
|
865
|
-
|
|
1117
|
+
/* @__PURE__ */ c(
|
|
1118
|
+
U,
|
|
866
1119
|
{
|
|
867
|
-
|
|
1120
|
+
as: "section",
|
|
1121
|
+
variant: "full",
|
|
868
1122
|
"aria-label": "Projektliste",
|
|
1123
|
+
className: M.projectList,
|
|
869
1124
|
children: [
|
|
870
|
-
/* @__PURE__ */
|
|
871
|
-
/* @__PURE__ */ e("h2", { className:
|
|
1125
|
+
/* @__PURE__ */ c("div", { className: M.projectFilters, children: [
|
|
1126
|
+
/* @__PURE__ */ e("h2", { className: M.sectionTitle, children: x }),
|
|
872
1127
|
/* @__PURE__ */ e(
|
|
873
1128
|
"input",
|
|
874
1129
|
{
|
|
875
1130
|
type: "search",
|
|
876
|
-
className:
|
|
1131
|
+
className: M.projectFilters__search,
|
|
877
1132
|
"aria-label": "Projekte durchsuchen",
|
|
878
1133
|
placeholder: "Suchen...",
|
|
879
|
-
value:
|
|
880
|
-
onChange: (
|
|
1134
|
+
value: _,
|
|
1135
|
+
onChange: (v) => m(v.target.value)
|
|
881
1136
|
}
|
|
882
1137
|
)
|
|
883
1138
|
] }),
|
|
884
|
-
/* @__PURE__ */ e(
|
|
1139
|
+
/* @__PURE__ */ e(Ie, { rows: w, onToggleFavorite: C })
|
|
885
1140
|
]
|
|
886
1141
|
}
|
|
887
1142
|
)
|
|
@@ -890,61 +1145,56 @@ const aa = "_dashboard_1mbco_4", A = {
|
|
|
890
1145
|
);
|
|
891
1146
|
}
|
|
892
1147
|
);
|
|
893
|
-
|
|
894
|
-
const ra = "
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
"icon-sm": "_icon-
|
|
903
|
-
|
|
904
|
-
"deadline-urgent": "_deadline-
|
|
905
|
-
"deadline-normal": "_deadline-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
}, ia = [
|
|
1148
|
+
aa.displayName = "DashboardPage";
|
|
1149
|
+
const sa = "_taskItem_77jzk_4", la = "_taskItem__content_77jzk_14", na = "_taskItem__titleGroup_77jzk_21", ia = "_taskItem__title_77jzk_21", ra = "_taskItem__meta_77jzk_41", oa = "_metaUser_77jzk_52", ca = "_metaProject_77jzk_58", da = "_taskItem__deadline_77jzk_76", _a = "_taskItem__actions_77jzk_95", $ = {
|
|
1150
|
+
taskItem: sa,
|
|
1151
|
+
taskItem__content: la,
|
|
1152
|
+
taskItem__titleGroup: na,
|
|
1153
|
+
taskItem__title: ia,
|
|
1154
|
+
taskItem__meta: ra,
|
|
1155
|
+
metaUser: oa,
|
|
1156
|
+
metaProject: ca,
|
|
1157
|
+
"icon-sm": "_icon-sm_77jzk_71",
|
|
1158
|
+
taskItem__deadline: da,
|
|
1159
|
+
"deadline-urgent": "_deadline-urgent_77jzk_85",
|
|
1160
|
+
"deadline-normal": "_deadline-normal_77jzk_90",
|
|
1161
|
+
taskItem__actions: _a
|
|
1162
|
+
}, ua = [
|
|
909
1163
|
{ value: "Offen", label: "Offen" },
|
|
910
1164
|
{ value: "In Arbeit", label: "In Arbeit" },
|
|
911
1165
|
{ value: "Erledigt", label: "Erledigt" }
|
|
912
|
-
],
|
|
913
|
-
({ title:
|
|
914
|
-
const
|
|
915
|
-
|
|
916
|
-
}, w = (_) => {
|
|
917
|
-
_.stopPropagation();
|
|
1166
|
+
], je = p.forwardRef(
|
|
1167
|
+
({ title: t, project: a, projectLabel: n, status: r, deadline: i, deadlineType: u = "normal", priority: l, assignees: h, description: _, onClick: m, onStatusChange: o, className: w, ...x }, C) => {
|
|
1168
|
+
const f = (k) => {
|
|
1169
|
+
k.stopPropagation();
|
|
918
1170
|
};
|
|
919
|
-
return /* @__PURE__ */
|
|
920
|
-
|
|
1171
|
+
return /* @__PURE__ */ c(
|
|
1172
|
+
Ne,
|
|
921
1173
|
{
|
|
922
|
-
ref:
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
onClick: h,
|
|
927
|
-
onKeyDown: p,
|
|
1174
|
+
ref: C,
|
|
1175
|
+
as: "article",
|
|
1176
|
+
onClick: m,
|
|
1177
|
+
className: g($.taskItem, w),
|
|
928
1178
|
...x,
|
|
929
1179
|
children: [
|
|
930
|
-
/* @__PURE__ */
|
|
931
|
-
/* @__PURE__ */ e("div", { className:
|
|
932
|
-
/* @__PURE__ */
|
|
933
|
-
|
|
934
|
-
/* @__PURE__ */
|
|
935
|
-
/* @__PURE__ */ e("svg", { className:
|
|
936
|
-
|
|
1180
|
+
/* @__PURE__ */ c("div", { className: $.taskItem__content, children: [
|
|
1181
|
+
/* @__PURE__ */ e("div", { className: $.taskItem__titleGroup, children: /* @__PURE__ */ e("h3", { className: $.taskItem__title, children: t }) }),
|
|
1182
|
+
/* @__PURE__ */ c("div", { className: $.taskItem__meta, children: [
|
|
1183
|
+
h.length > 0 && /* @__PURE__ */ e("div", { className: $.metaUser, children: /* @__PURE__ */ e(de, { children: h.map((k, v) => /* @__PURE__ */ e(V, { initials: k.initials, name: k.name }, v)) }) }),
|
|
1184
|
+
/* @__PURE__ */ c("div", { className: $.metaProject, "aria-label": `Projekt: ${n || a}`, children: [
|
|
1185
|
+
/* @__PURE__ */ e("svg", { className: $["icon-sm"], viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { d: "M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" }) }),
|
|
1186
|
+
n || a
|
|
937
1187
|
] }),
|
|
938
|
-
|
|
1188
|
+
l && l !== "low" && /* @__PURE__ */ e(_e, { level: l, size: "small" })
|
|
939
1189
|
] })
|
|
940
1190
|
] }),
|
|
941
|
-
/* @__PURE__ */ e("div", { className:
|
|
942
|
-
/* @__PURE__ */ e("div", { className:
|
|
943
|
-
|
|
1191
|
+
/* @__PURE__ */ e("div", { className: g($.taskItem__deadline, $[`deadline-${u}`]), children: i }),
|
|
1192
|
+
/* @__PURE__ */ e("div", { className: $.taskItem__actions, onClick: f, children: /* @__PURE__ */ e(
|
|
1193
|
+
Se,
|
|
944
1194
|
{
|
|
945
|
-
options:
|
|
946
|
-
value:
|
|
947
|
-
onChange:
|
|
1195
|
+
options: ua,
|
|
1196
|
+
value: r,
|
|
1197
|
+
onChange: o
|
|
948
1198
|
}
|
|
949
1199
|
) })
|
|
950
1200
|
]
|
|
@@ -952,8 +1202,8 @@ const ra = "_icon_15khb_83", C = {
|
|
|
952
1202
|
);
|
|
953
1203
|
}
|
|
954
1204
|
);
|
|
955
|
-
|
|
956
|
-
const
|
|
1205
|
+
je.displayName = "TaskItem";
|
|
1206
|
+
const ma = "_textarea_m18cx_191", ha = "_icon_m18cx_197", d = {
|
|
957
1207
|
"modal-overlay": "_modal-overlay_m18cx_4",
|
|
958
1208
|
"is-active": "_is-active_m18cx_19",
|
|
959
1209
|
"modal-content": "_modal-content_m18cx_25",
|
|
@@ -972,147 +1222,147 @@ const ca = "_textarea_m18cx_191", oa = "_icon_m18cx_197", c = {
|
|
|
972
1222
|
"form-row": "_form-row_m18cx_154",
|
|
973
1223
|
"form-label": "_form-label_m18cx_160",
|
|
974
1224
|
"form-control": "_form-control_m18cx_170",
|
|
975
|
-
textarea:
|
|
976
|
-
icon:
|
|
1225
|
+
textarea: ma,
|
|
1226
|
+
icon: ha,
|
|
977
1227
|
"icon-pencil": "_icon-pencil_m18cx_207"
|
|
978
|
-
},
|
|
1228
|
+
}, ge = [
|
|
979
1229
|
{ value: "Q1", label: "Q1 Roadmap" },
|
|
980
1230
|
{ value: "FR", label: "Frontend Relaunch" },
|
|
981
1231
|
{ value: "UR", label: "User Research" }
|
|
982
|
-
],
|
|
1232
|
+
], be = [
|
|
983
1233
|
{ initials: "FV", name: "Fabian Venmann" },
|
|
984
1234
|
{ initials: "LV", name: "Luca Vitiello" },
|
|
985
1235
|
{ initials: "AS", name: "Anna Schmidt" }
|
|
986
|
-
],
|
|
987
|
-
({ isOpen:
|
|
988
|
-
const [
|
|
989
|
-
if (
|
|
990
|
-
|
|
991
|
-
}, [
|
|
992
|
-
const
|
|
993
|
-
|
|
1236
|
+
], $e = p.forwardRef(
|
|
1237
|
+
({ isOpen: t, onClose: a, task: n, onSave: r, initialMode: i = "view", className: u, ...l }, h) => {
|
|
1238
|
+
const [_, m] = A(i), [o, w] = A(null);
|
|
1239
|
+
if (le(() => {
|
|
1240
|
+
t && n && (w({ ...n, checklist: [...n.checklist] }), m(i));
|
|
1241
|
+
}, [t, n, i]), le(() => {
|
|
1242
|
+
const s = (N) => {
|
|
1243
|
+
N.key === "Escape" && t && a();
|
|
994
1244
|
};
|
|
995
|
-
return document.addEventListener("keydown",
|
|
996
|
-
}, [
|
|
1245
|
+
return document.addEventListener("keydown", s), () => document.removeEventListener("keydown", s);
|
|
1246
|
+
}, [t, a]), !t || !n || !o) return null;
|
|
997
1247
|
const x = () => {
|
|
998
|
-
|
|
999
|
-
},
|
|
1000
|
-
|
|
1001
|
-
},
|
|
1002
|
-
|
|
1003
|
-
},
|
|
1004
|
-
const
|
|
1005
|
-
|
|
1006
|
-
...
|
|
1007
|
-
project:
|
|
1008
|
-
projectLabel:
|
|
1248
|
+
r && r(o), m("view");
|
|
1249
|
+
}, C = () => {
|
|
1250
|
+
a();
|
|
1251
|
+
}, f = (s) => {
|
|
1252
|
+
w({ ...o, checklist: s });
|
|
1253
|
+
}, k = (s) => {
|
|
1254
|
+
const N = ge.find((I) => I.value === s.target.value);
|
|
1255
|
+
w({
|
|
1256
|
+
...o,
|
|
1257
|
+
project: s.target.value,
|
|
1258
|
+
projectLabel: N?.label || s.target.value
|
|
1009
1259
|
});
|
|
1010
|
-
},
|
|
1011
|
-
const
|
|
1012
|
-
|
|
1013
|
-
},
|
|
1014
|
-
const
|
|
1260
|
+
}, v = (s) => {
|
|
1261
|
+
const N = be.find((I) => I.initials.toLowerCase() === s.target.value);
|
|
1262
|
+
N && w({ ...o, assignees: [N] });
|
|
1263
|
+
}, y = () => {
|
|
1264
|
+
const s = {
|
|
1015
1265
|
id: `check-${Date.now()}`,
|
|
1016
1266
|
text: "",
|
|
1017
1267
|
checked: !1
|
|
1018
1268
|
};
|
|
1019
|
-
|
|
1020
|
-
...
|
|
1021
|
-
checklist: [...
|
|
1269
|
+
w({
|
|
1270
|
+
...o,
|
|
1271
|
+
checklist: [...o.checklist, s]
|
|
1022
1272
|
});
|
|
1023
|
-
},
|
|
1024
|
-
|
|
1273
|
+
}, b = (s) => {
|
|
1274
|
+
s.target === s.currentTarget && C();
|
|
1025
1275
|
};
|
|
1026
1276
|
return /* @__PURE__ */ e(
|
|
1027
1277
|
"div",
|
|
1028
1278
|
{
|
|
1029
|
-
ref:
|
|
1030
|
-
className:
|
|
1031
|
-
onClick:
|
|
1279
|
+
ref: h,
|
|
1280
|
+
className: g(d["modal-overlay"], { [d["is-active"]]: t }, u),
|
|
1281
|
+
onClick: b,
|
|
1032
1282
|
role: "dialog",
|
|
1033
1283
|
"aria-modal": "true",
|
|
1034
1284
|
"aria-labelledby": "modalTitle",
|
|
1035
|
-
...
|
|
1036
|
-
children: /* @__PURE__ */
|
|
1037
|
-
/* @__PURE__ */
|
|
1038
|
-
/* @__PURE__ */ e("h2", { className:
|
|
1039
|
-
/* @__PURE__ */ e(
|
|
1285
|
+
...l,
|
|
1286
|
+
children: /* @__PURE__ */ c("div", { className: d["modal-content"], "data-mode": _, children: [
|
|
1287
|
+
/* @__PURE__ */ c("header", { className: d["modal-header"], children: [
|
|
1288
|
+
/* @__PURE__ */ e("h2", { className: d["modal-header-title"], id: "modalTitle", children: _ === "edit" ? "Aufgabe bearbeiten" : "Aufgaben-Details" }),
|
|
1289
|
+
/* @__PURE__ */ e(R, { variant: "ghost", onClick: C, "aria-label": "Schließen", children: /* @__PURE__ */ e("svg", { className: d.icon, viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { d: "M18 6 6 18M6 6l12 12" }) }) })
|
|
1040
1290
|
] }),
|
|
1041
|
-
|
|
1042
|
-
/* @__PURE__ */
|
|
1043
|
-
/* @__PURE__ */ e("span", { className:
|
|
1044
|
-
/* @__PURE__ */ e("h3", { className:
|
|
1291
|
+
_ === "view" ? /* @__PURE__ */ c("div", { className: d["modal-body"], children: [
|
|
1292
|
+
/* @__PURE__ */ c("div", { className: d["view-group"], children: [
|
|
1293
|
+
/* @__PURE__ */ e("span", { className: d["view-label"], children: "Titel" }),
|
|
1294
|
+
/* @__PURE__ */ e("h3", { className: d["view-task-title"], children: o.title })
|
|
1045
1295
|
] }),
|
|
1046
|
-
/* @__PURE__ */
|
|
1047
|
-
/* @__PURE__ */
|
|
1048
|
-
/* @__PURE__ */ e("span", { className:
|
|
1049
|
-
|
|
1296
|
+
/* @__PURE__ */ c("div", { className: d["view-badge-row"], children: [
|
|
1297
|
+
/* @__PURE__ */ c("div", { className: d["view-group"], children: [
|
|
1298
|
+
/* @__PURE__ */ e("span", { className: d["view-label"], children: "Verantwortlich" }),
|
|
1299
|
+
o.assignees.length > 0 ? /* @__PURE__ */ e(de, { children: o.assignees.map((s, N) => /* @__PURE__ */ e(V, { initials: s.initials, name: s.name }, N)) }) : /* @__PURE__ */ e(V, { initials: "?", name: "Nicht zugewiesen" })
|
|
1050
1300
|
] }),
|
|
1051
|
-
/* @__PURE__ */
|
|
1052
|
-
/* @__PURE__ */ e("span", { className:
|
|
1053
|
-
/* @__PURE__ */
|
|
1054
|
-
/* @__PURE__ */ e("svg", { className:
|
|
1055
|
-
|
|
1301
|
+
/* @__PURE__ */ c("div", { className: d["view-group"], children: [
|
|
1302
|
+
/* @__PURE__ */ e("span", { className: d["view-label"], children: "Projekt" }),
|
|
1303
|
+
/* @__PURE__ */ c(ie, { children: [
|
|
1304
|
+
/* @__PURE__ */ e("svg", { className: d["icon-sm"], viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { d: "M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" }) }),
|
|
1305
|
+
o.projectLabel || o.project
|
|
1056
1306
|
] })
|
|
1057
1307
|
] }),
|
|
1058
|
-
/* @__PURE__ */
|
|
1059
|
-
/* @__PURE__ */ e("span", { className:
|
|
1060
|
-
|
|
1308
|
+
/* @__PURE__ */ c("div", { className: d["view-group"], children: [
|
|
1309
|
+
/* @__PURE__ */ e("span", { className: d["view-label"], children: "Priorität" }),
|
|
1310
|
+
o.priority ? /* @__PURE__ */ e(_e, { level: o.priority, size: "large" }) : /* @__PURE__ */ e("div", { className: d["text-muted"], children: "Keine" })
|
|
1061
1311
|
] }),
|
|
1062
|
-
/* @__PURE__ */
|
|
1063
|
-
/* @__PURE__ */ e("span", { className:
|
|
1064
|
-
/* @__PURE__ */ e(
|
|
1312
|
+
/* @__PURE__ */ c("div", { className: d["view-group"], children: [
|
|
1313
|
+
/* @__PURE__ */ e("span", { className: d["view-label"], children: "Status" }),
|
|
1314
|
+
/* @__PURE__ */ e(ie, { children: o.status })
|
|
1065
1315
|
] }),
|
|
1066
|
-
/* @__PURE__ */
|
|
1067
|
-
/* @__PURE__ */ e("span", { className:
|
|
1068
|
-
/* @__PURE__ */ e("div", { className:
|
|
1316
|
+
/* @__PURE__ */ c("div", { className: d["view-group"], children: [
|
|
1317
|
+
/* @__PURE__ */ e("span", { className: d["view-label"], children: "Fälligkeit" }),
|
|
1318
|
+
/* @__PURE__ */ e("div", { className: d["view-value-strong"], children: o.deadline })
|
|
1069
1319
|
] })
|
|
1070
1320
|
] }),
|
|
1071
|
-
/* @__PURE__ */
|
|
1072
|
-
/* @__PURE__ */ e("span", { className:
|
|
1073
|
-
/* @__PURE__ */ e("p", { className:
|
|
1321
|
+
/* @__PURE__ */ c("div", { className: d["view-group"], children: [
|
|
1322
|
+
/* @__PURE__ */ e("span", { className: d["view-label"], children: "Beschreibung" }),
|
|
1323
|
+
/* @__PURE__ */ e("p", { className: d["view-description"], children: o.description || /* @__PURE__ */ e("span", { className: d["text-muted"], children: "Keine Beschreibung vorhanden." }) })
|
|
1074
1324
|
] }),
|
|
1075
|
-
/* @__PURE__ */
|
|
1076
|
-
/* @__PURE__ */ e("span", { className:
|
|
1077
|
-
/* @__PURE__ */ e(
|
|
1325
|
+
/* @__PURE__ */ c("div", { className: d["view-group"], children: [
|
|
1326
|
+
/* @__PURE__ */ e("span", { className: d["view-label"], children: "To-Do Checkliste" }),
|
|
1327
|
+
/* @__PURE__ */ e(re, { items: o.checklist, onChange: f, editable: !1 })
|
|
1078
1328
|
] })
|
|
1079
|
-
] }) : /* @__PURE__ */
|
|
1080
|
-
/* @__PURE__ */
|
|
1081
|
-
/* @__PURE__ */ e("label", { className:
|
|
1329
|
+
] }) : /* @__PURE__ */ c("div", { className: d["modal-body"], children: [
|
|
1330
|
+
/* @__PURE__ */ c("div", { className: d["form-group"], children: [
|
|
1331
|
+
/* @__PURE__ */ e("label", { className: d["form-label"], htmlFor: "taskTitle", children: "Titel" }),
|
|
1082
1332
|
/* @__PURE__ */ e(
|
|
1083
1333
|
"input",
|
|
1084
1334
|
{
|
|
1085
1335
|
type: "text",
|
|
1086
1336
|
id: "taskTitle",
|
|
1087
|
-
className:
|
|
1088
|
-
value:
|
|
1089
|
-
onChange: (
|
|
1337
|
+
className: d["form-control"],
|
|
1338
|
+
value: o.title,
|
|
1339
|
+
onChange: (s) => w({ ...o, title: s.target.value })
|
|
1090
1340
|
}
|
|
1091
1341
|
)
|
|
1092
1342
|
] }),
|
|
1093
|
-
/* @__PURE__ */
|
|
1094
|
-
/* @__PURE__ */
|
|
1095
|
-
/* @__PURE__ */ e("label", { className:
|
|
1343
|
+
/* @__PURE__ */ c("div", { className: d["form-row"], children: [
|
|
1344
|
+
/* @__PURE__ */ c("div", { className: d["form-group"], children: [
|
|
1345
|
+
/* @__PURE__ */ e("label", { className: d["form-label"], htmlFor: "taskProject", children: "Projekt" }),
|
|
1096
1346
|
/* @__PURE__ */ e(
|
|
1097
1347
|
"select",
|
|
1098
1348
|
{
|
|
1099
1349
|
id: "taskProject",
|
|
1100
|
-
className:
|
|
1101
|
-
value:
|
|
1102
|
-
onChange:
|
|
1103
|
-
children:
|
|
1350
|
+
className: d["form-control"],
|
|
1351
|
+
value: o.project,
|
|
1352
|
+
onChange: k,
|
|
1353
|
+
children: ge.map((s) => /* @__PURE__ */ e("option", { value: s.value, children: s.label }, s.value))
|
|
1104
1354
|
}
|
|
1105
1355
|
)
|
|
1106
1356
|
] }),
|
|
1107
|
-
/* @__PURE__ */
|
|
1108
|
-
/* @__PURE__ */ e("label", { className:
|
|
1109
|
-
/* @__PURE__ */
|
|
1357
|
+
/* @__PURE__ */ c("div", { className: d["form-group"], children: [
|
|
1358
|
+
/* @__PURE__ */ e("label", { className: d["form-label"], htmlFor: "taskStatus", children: "Status" }),
|
|
1359
|
+
/* @__PURE__ */ c(
|
|
1110
1360
|
"select",
|
|
1111
1361
|
{
|
|
1112
1362
|
id: "taskStatus",
|
|
1113
|
-
className:
|
|
1114
|
-
value:
|
|
1115
|
-
onChange: (
|
|
1363
|
+
className: d["form-control"],
|
|
1364
|
+
value: o.status,
|
|
1365
|
+
onChange: (s) => w({ ...o, status: s.target.value }),
|
|
1116
1366
|
children: [
|
|
1117
1367
|
/* @__PURE__ */ e("option", { value: "Offen", children: "Offen" }),
|
|
1118
1368
|
/* @__PURE__ */ e("option", { value: "In Arbeit", children: "In Arbeit" }),
|
|
@@ -1122,29 +1372,29 @@ const ca = "_textarea_m18cx_191", oa = "_icon_m18cx_197", c = {
|
|
|
1122
1372
|
)
|
|
1123
1373
|
] })
|
|
1124
1374
|
] }),
|
|
1125
|
-
/* @__PURE__ */
|
|
1126
|
-
/* @__PURE__ */
|
|
1127
|
-
/* @__PURE__ */ e("label", { className:
|
|
1375
|
+
/* @__PURE__ */ c("div", { className: d["form-row"], children: [
|
|
1376
|
+
/* @__PURE__ */ c("div", { className: d["form-group"], children: [
|
|
1377
|
+
/* @__PURE__ */ e("label", { className: d["form-label"], htmlFor: "taskDate", children: "Fälligkeitsdatum" }),
|
|
1128
1378
|
/* @__PURE__ */ e(
|
|
1129
1379
|
"input",
|
|
1130
1380
|
{
|
|
1131
1381
|
type: "text",
|
|
1132
1382
|
id: "taskDate",
|
|
1133
|
-
className:
|
|
1134
|
-
value:
|
|
1135
|
-
onChange: (
|
|
1383
|
+
className: d["form-control"],
|
|
1384
|
+
value: o.deadline,
|
|
1385
|
+
onChange: (s) => w({ ...o, deadline: s.target.value })
|
|
1136
1386
|
}
|
|
1137
1387
|
)
|
|
1138
1388
|
] }),
|
|
1139
|
-
/* @__PURE__ */
|
|
1140
|
-
/* @__PURE__ */ e("label", { className:
|
|
1141
|
-
/* @__PURE__ */
|
|
1389
|
+
/* @__PURE__ */ c("div", { className: d["form-group"], children: [
|
|
1390
|
+
/* @__PURE__ */ e("label", { className: d["form-label"], htmlFor: "taskPriority", children: "Priorität" }),
|
|
1391
|
+
/* @__PURE__ */ c(
|
|
1142
1392
|
"select",
|
|
1143
1393
|
{
|
|
1144
1394
|
id: "taskPriority",
|
|
1145
|
-
className:
|
|
1146
|
-
value:
|
|
1147
|
-
onChange: (
|
|
1395
|
+
className: d["form-control"],
|
|
1396
|
+
value: o.priority || "",
|
|
1397
|
+
onChange: (s) => w({ ...o, priority: s.target.value || void 0 }),
|
|
1148
1398
|
children: [
|
|
1149
1399
|
/* @__PURE__ */ e("option", { value: "", children: "Keine" }),
|
|
1150
1400
|
/* @__PURE__ */ e("option", { value: "high", children: "Hoch (!!)" }),
|
|
@@ -1155,79 +1405,75 @@ const ca = "_textarea_m18cx_191", oa = "_icon_m18cx_197", c = {
|
|
|
1155
1405
|
)
|
|
1156
1406
|
] })
|
|
1157
1407
|
] }),
|
|
1158
|
-
/* @__PURE__ */
|
|
1159
|
-
/* @__PURE__ */ e("label", { className:
|
|
1160
|
-
/* @__PURE__ */
|
|
1161
|
-
/* @__PURE__ */ e(
|
|
1408
|
+
/* @__PURE__ */ c("div", { className: d["form-group"], children: [
|
|
1409
|
+
/* @__PURE__ */ e("label", { className: d["form-label"], htmlFor: "taskAssignee", children: "Verantwortlich" }),
|
|
1410
|
+
/* @__PURE__ */ c("div", { style: { display: "flex", alignItems: "center", gap: "0.75rem" }, children: [
|
|
1411
|
+
/* @__PURE__ */ e(V, { initials: o.assignees[0]?.initials || "?" }),
|
|
1162
1412
|
/* @__PURE__ */ e(
|
|
1163
1413
|
"select",
|
|
1164
1414
|
{
|
|
1165
1415
|
id: "taskAssignee",
|
|
1166
|
-
className:
|
|
1416
|
+
className: d["form-control"],
|
|
1167
1417
|
style: { flex: 1 },
|
|
1168
|
-
value:
|
|
1169
|
-
onChange:
|
|
1170
|
-
children:
|
|
1418
|
+
value: o.assignees[0]?.initials.toLowerCase() || "",
|
|
1419
|
+
onChange: v,
|
|
1420
|
+
children: be.map((s) => /* @__PURE__ */ e("option", { value: s.initials.toLowerCase(), children: s.name }, s.initials))
|
|
1171
1421
|
}
|
|
1172
1422
|
)
|
|
1173
1423
|
] })
|
|
1174
1424
|
] }),
|
|
1175
|
-
/* @__PURE__ */
|
|
1176
|
-
/* @__PURE__ */ e("label", { className:
|
|
1425
|
+
/* @__PURE__ */ c("div", { className: d["form-group"], children: [
|
|
1426
|
+
/* @__PURE__ */ e("label", { className: d["form-label"], htmlFor: "taskDescription", children: "Beschreibung" }),
|
|
1177
1427
|
/* @__PURE__ */ e(
|
|
1178
1428
|
"textarea",
|
|
1179
1429
|
{
|
|
1180
1430
|
id: "taskDescription",
|
|
1181
|
-
className:
|
|
1431
|
+
className: g(d["form-control"], d.textarea),
|
|
1182
1432
|
placeholder: "Weitere Details zur Aufgabe...",
|
|
1183
|
-
value:
|
|
1184
|
-
onChange: (
|
|
1433
|
+
value: o.description || "",
|
|
1434
|
+
onChange: (s) => w({ ...o, description: s.target.value })
|
|
1185
1435
|
}
|
|
1186
1436
|
)
|
|
1187
1437
|
] }),
|
|
1188
|
-
/* @__PURE__ */
|
|
1189
|
-
/* @__PURE__ */ e("label", { className:
|
|
1190
|
-
/* @__PURE__ */ e(
|
|
1438
|
+
/* @__PURE__ */ c("div", { className: d["form-group"], children: [
|
|
1439
|
+
/* @__PURE__ */ e("label", { className: d["form-label"], children: "To-Do Checkliste" }),
|
|
1440
|
+
/* @__PURE__ */ e(re, { items: o.checklist, onChange: f, editable: !0 }),
|
|
1191
1441
|
/* @__PURE__ */ e(
|
|
1192
|
-
|
|
1442
|
+
R,
|
|
1193
1443
|
{
|
|
1194
1444
|
variant: "ghost",
|
|
1195
|
-
onClick:
|
|
1445
|
+
onClick: y,
|
|
1196
1446
|
style: { alignSelf: "flex-start", marginTop: "0.25rem" },
|
|
1197
1447
|
children: "+ Neues Element"
|
|
1198
1448
|
}
|
|
1199
1449
|
)
|
|
1200
1450
|
] })
|
|
1201
1451
|
] }),
|
|
1202
|
-
|
|
1203
|
-
/* @__PURE__ */ e(
|
|
1204
|
-
/* @__PURE__ */
|
|
1205
|
-
/* @__PURE__ */ e("svg", { className:
|
|
1452
|
+
_ === "view" ? /* @__PURE__ */ c("footer", { className: d["modal-footer"], children: [
|
|
1453
|
+
/* @__PURE__ */ e(R, { variant: "outline", onClick: C, children: "Schließen" }),
|
|
1454
|
+
/* @__PURE__ */ c(R, { variant: "primary", onClick: () => m("edit"), children: [
|
|
1455
|
+
/* @__PURE__ */ e("svg", { className: d["icon-pencil"], viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { d: "M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z" }) }),
|
|
1206
1456
|
"Bearbeiten"
|
|
1207
1457
|
] })
|
|
1208
|
-
] }) : /* @__PURE__ */
|
|
1209
|
-
/* @__PURE__ */ e(
|
|
1210
|
-
/* @__PURE__ */ e(
|
|
1458
|
+
] }) : /* @__PURE__ */ c("footer", { className: d["modal-footer"], children: [
|
|
1459
|
+
/* @__PURE__ */ e(R, { variant: "outline", onClick: () => m("view"), children: "Abbrechen" }),
|
|
1460
|
+
/* @__PURE__ */ e(R, { variant: "primary", onClick: x, children: "Speichern" })
|
|
1211
1461
|
] })
|
|
1212
1462
|
] })
|
|
1213
1463
|
}
|
|
1214
1464
|
);
|
|
1215
1465
|
}
|
|
1216
1466
|
);
|
|
1217
|
-
|
|
1218
|
-
const
|
|
1219
|
-
|
|
1220
|
-
"
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
},
|
|
1226
|
-
|
|
1227
|
-
const [d, g] = $(a), [m, h] = $(!1), [r, f] = $(null), [x, y] = $("view"), p = (v) => {
|
|
1228
|
-
f(v), y("view"), h(!0);
|
|
1229
|
-
}, w = () => {
|
|
1230
|
-
const v = {
|
|
1467
|
+
$e.displayName = "TaskDetailModal";
|
|
1468
|
+
const va = "_icon_1rthp_4", fe = {
|
|
1469
|
+
icon: va,
|
|
1470
|
+
"icon-sm": "_icon-sm_1rthp_14"
|
|
1471
|
+
}, ga = p.forwardRef(
|
|
1472
|
+
({ tasks: t, onTaskUpdate: a, onTaskAdd: n, className: r, ...i }, u) => {
|
|
1473
|
+
const [l, h] = A(t), [_, m] = A(!1), [o, w] = A(null), [x, C] = A("view"), f = (b) => {
|
|
1474
|
+
w(b), C("view"), m(!0);
|
|
1475
|
+
}, k = () => {
|
|
1476
|
+
const b = {
|
|
1231
1477
|
id: `new-${Date.now()}`,
|
|
1232
1478
|
title: "Neue Aufgabe",
|
|
1233
1479
|
project: "Q1",
|
|
@@ -1239,63 +1485,64 @@ const da = "_icon_gqjal_64", R = {
|
|
|
1239
1485
|
description: "",
|
|
1240
1486
|
checklist: []
|
|
1241
1487
|
};
|
|
1242
|
-
|
|
1243
|
-
},
|
|
1244
|
-
if (
|
|
1245
|
-
const
|
|
1246
|
-
|
|
1488
|
+
w(b), C("edit"), m(!0);
|
|
1489
|
+
}, v = (b) => {
|
|
1490
|
+
if (l.some((N) => N.id === b.id)) {
|
|
1491
|
+
const N = l.map((I) => I.id === b.id ? b : I);
|
|
1492
|
+
h(N), a && a(b);
|
|
1247
1493
|
} else
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
},
|
|
1251
|
-
const
|
|
1252
|
-
if (I.id ===
|
|
1253
|
-
const
|
|
1254
|
-
return
|
|
1494
|
+
h([...l, b]), n && n(b);
|
|
1495
|
+
w(b);
|
|
1496
|
+
}, y = (b, s) => {
|
|
1497
|
+
const N = l.map((I) => {
|
|
1498
|
+
if (I.id === b) {
|
|
1499
|
+
const L = { ...I, status: s };
|
|
1500
|
+
return a && a(L), L;
|
|
1255
1501
|
}
|
|
1256
1502
|
return I;
|
|
1257
1503
|
});
|
|
1258
|
-
|
|
1504
|
+
h(N);
|
|
1259
1505
|
};
|
|
1260
|
-
return /* @__PURE__ */
|
|
1261
|
-
|
|
1506
|
+
return /* @__PURE__ */ c(
|
|
1507
|
+
U,
|
|
1262
1508
|
{
|
|
1263
|
-
ref:
|
|
1264
|
-
|
|
1265
|
-
|
|
1509
|
+
ref: u,
|
|
1510
|
+
as: "main",
|
|
1511
|
+
title: "Aufgaben",
|
|
1512
|
+
variant: "half",
|
|
1513
|
+
scrollable: !0,
|
|
1514
|
+
headerAction: /* @__PURE__ */ c(R, { variant: "primary", onClick: k, "aria-label": "Neue Aufgabe erstellen", children: [
|
|
1515
|
+
/* @__PURE__ */ e("svg", { className: g(fe.icon, fe["icon-sm"]), viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { d: "M12 5v14M5 12h14" }) }),
|
|
1516
|
+
"Neu"
|
|
1517
|
+
] }),
|
|
1518
|
+
className: r,
|
|
1519
|
+
...i,
|
|
1266
1520
|
children: [
|
|
1267
|
-
/* @__PURE__ */
|
|
1268
|
-
|
|
1269
|
-
/* @__PURE__ */ i(z, { variant: "primary", onClick: w, "aria-label": "Neue Aufgabe erstellen", children: [
|
|
1270
|
-
/* @__PURE__ */ e("svg", { className: b(R.icon, R["icon-sm"]), viewBox: "0 0 24 24", children: /* @__PURE__ */ e("path", { d: "M12 5v14M5 12h14" }) }),
|
|
1271
|
-
"Neu"
|
|
1272
|
-
] })
|
|
1273
|
-
] }),
|
|
1274
|
-
/* @__PURE__ */ e("div", { className: R["task-list"], role: "list", "aria-label": "Aufgabenliste", children: d.map((v) => /* @__PURE__ */ e(
|
|
1275
|
-
he,
|
|
1521
|
+
/* @__PURE__ */ e(ce, { "aria-label": "Aufgabenliste", children: l.map((b) => /* @__PURE__ */ e(
|
|
1522
|
+
je,
|
|
1276
1523
|
{
|
|
1277
|
-
title:
|
|
1278
|
-
project:
|
|
1279
|
-
projectLabel:
|
|
1280
|
-
status:
|
|
1281
|
-
deadline:
|
|
1282
|
-
deadlineType:
|
|
1283
|
-
priority:
|
|
1284
|
-
assignees:
|
|
1285
|
-
description:
|
|
1286
|
-
onClick: () =>
|
|
1287
|
-
onStatusChange: (
|
|
1524
|
+
title: b.title,
|
|
1525
|
+
project: b.project,
|
|
1526
|
+
projectLabel: b.projectLabel,
|
|
1527
|
+
status: b.status,
|
|
1528
|
+
deadline: b.deadline,
|
|
1529
|
+
deadlineType: b.deadlineType,
|
|
1530
|
+
priority: b.priority,
|
|
1531
|
+
assignees: b.assignees,
|
|
1532
|
+
description: b.description,
|
|
1533
|
+
onClick: () => f(b),
|
|
1534
|
+
onStatusChange: (s) => y(b.id, s)
|
|
1288
1535
|
},
|
|
1289
|
-
|
|
1536
|
+
b.id
|
|
1290
1537
|
)) }),
|
|
1291
1538
|
/* @__PURE__ */ e(
|
|
1292
|
-
|
|
1539
|
+
$e,
|
|
1293
1540
|
{
|
|
1294
|
-
isOpen:
|
|
1295
|
-
onClose: () =>
|
|
1296
|
-
task:
|
|
1541
|
+
isOpen: _,
|
|
1542
|
+
onClose: () => m(!1),
|
|
1543
|
+
task: o,
|
|
1297
1544
|
initialMode: x,
|
|
1298
|
-
onSave:
|
|
1545
|
+
onSave: v
|
|
1299
1546
|
}
|
|
1300
1547
|
)
|
|
1301
1548
|
]
|
|
@@ -1303,28 +1550,33 @@ const da = "_icon_gqjal_64", R = {
|
|
|
1303
1550
|
);
|
|
1304
1551
|
}
|
|
1305
1552
|
);
|
|
1306
|
-
|
|
1553
|
+
ga.displayName = "TaskWidget";
|
|
1307
1554
|
export {
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1555
|
+
V as Avatar,
|
|
1556
|
+
de as AvatarGroup,
|
|
1557
|
+
ie as Badge,
|
|
1558
|
+
ce as BaseList,
|
|
1559
|
+
we as BaseTable,
|
|
1560
|
+
R as Button,
|
|
1561
|
+
re as Checklist,
|
|
1562
|
+
aa as DashboardPage,
|
|
1563
|
+
Ue as DataCard,
|
|
1564
|
+
Wt as EmptyState,
|
|
1565
|
+
It as ExpandButton,
|
|
1566
|
+
ye as FavoriteButton,
|
|
1567
|
+
Ne as ListItem,
|
|
1568
|
+
_e as PriorityBadge,
|
|
1569
|
+
Rt as ProgressCircle,
|
|
1570
|
+
Ie as ProjectTable,
|
|
1571
|
+
Et as ScoreBar,
|
|
1572
|
+
yt as SearchInput,
|
|
1573
|
+
Kt as SegmentedControl,
|
|
1574
|
+
ke as StatusBadge,
|
|
1575
|
+
xe as StatusChart,
|
|
1576
|
+
Se as StatusDropdown,
|
|
1577
|
+
Ce as StatusLegendItem,
|
|
1578
|
+
$e as TaskDetailModal,
|
|
1579
|
+
je as TaskItem,
|
|
1580
|
+
ga as TaskWidget,
|
|
1581
|
+
U as WidgetCard
|
|
1330
1582
|
};
|