themelia-react-ui 2.0.5 → 3.0.0
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/CHANGELOG.md +326 -0
- package/MIGRATION.md +858 -0
- package/README.md +35 -24
- package/dist/{accordion-B9MHG0cT.js → accordion-DNVqwEIC.js} +37 -37
- package/dist/accordion-DNVqwEIC.js.map +1 -0
- package/dist/action-menu-D5343RwT.js +286 -0
- package/dist/action-menu-D5343RwT.js.map +1 -0
- package/dist/ai-artifact-otrz9ZwS.js +1214 -0
- package/dist/ai-artifact-otrz9ZwS.js.map +1 -0
- package/dist/anchored-positioning-1U_eBFNx.js +9 -0
- package/dist/anchored-positioning-1U_eBFNx.js.map +1 -0
- package/dist/app-shell-CPN30Nb1.js +372 -0
- package/dist/app-shell-CPN30Nb1.js.map +1 -0
- package/dist/{attachment-Dg_69lPS.js → attachment-D2-fpfmv.js} +15 -15
- package/dist/{attachment-Dg_69lPS.js.map → attachment-D2-fpfmv.js.map} +1 -1
- package/dist/{auth-DTkkshS8.js → auth-g_oUTDDC.js} +236 -243
- package/dist/auth-g_oUTDDC.js.map +1 -0
- package/dist/{avatar-CeZaFmNH.js → avatar-Ca3Ihrq4.js} +4 -4
- package/dist/{avatar-CeZaFmNH.js.map → avatar-Ca3Ihrq4.js.map} +1 -1
- package/dist/{badge-xIiV_E7f.js → badge-oGiXblW7.js} +8 -9
- package/dist/badge-oGiXblW7.js.map +1 -0
- package/dist/base/accordion.js +1 -1
- package/dist/base/action-menu.js +1 -1
- package/dist/base/attachment.js +1 -1
- package/dist/base/avatar.js +1 -1
- package/dist/base/badge.js +1 -1
- package/dist/base/batch-action-bar.js +1 -1
- package/dist/base/buttons.js +2 -2
- package/dist/base/cards.js +3 -3
- package/dist/base/carousel.js +11 -11
- package/dist/base/carousel.js.map +1 -1
- package/dist/base/cascader.js +1 -1
- package/dist/base/chart.js +1 -1
- package/dist/base/choice-inputs.js +2 -2
- package/dist/base/code-block.js +1 -1
- package/dist/base/combobox.js +1 -1
- package/dist/base/command.js +1 -1
- package/dist/base/copyable.js +1 -1
- package/dist/base/date-pickers.js +2 -2
- package/dist/base/display.js +7 -7
- package/dist/base/feedback.js +4 -4
- package/dist/base/forms-numeric.js +2 -2
- package/dist/base/forms.js +2 -2
- package/dist/base/inline-edit.js +13 -13
- package/dist/base/inline-edit.js.map +1 -1
- package/dist/base/item.js +1 -1
- package/dist/base/media-gallery.js +203 -2
- package/dist/base/media-gallery.js.map +1 -0
- package/dist/base/metadata-list.js +1 -1
- package/dist/base/navigation.js +7 -7
- package/dist/base/popover-menu.js +1 -1
- package/dist/base/popover.js +1 -1
- package/dist/base/qr-code.js +32 -22
- package/dist/base/qr-code.js.map +1 -1
- package/dist/base/repeaters.js +208 -198
- package/dist/base/repeaters.js.map +1 -1
- package/dist/base/sidebar.js +2 -2
- package/dist/base/signature-pad.js +14 -14
- package/dist/base/signature-pad.js.map +1 -1
- package/dist/base/skeleton.js +1 -1
- package/dist/base/spinner.js +8 -14
- package/dist/base/spinner.js.map +1 -1
- package/dist/base/structure.js +1 -1
- package/dist/base/table.js +1 -1
- package/dist/base/text-inputs.js +3 -3
- package/dist/base/toaster.js +2 -2
- package/dist/base/tree.js +2 -2
- package/dist/base/upload-queue.js +303 -2
- package/dist/base/upload-queue.js.map +1 -0
- package/dist/base/upload.js +3 -4
- package/dist/base/value-inputs.js +1 -1
- package/dist/{batch-action-bar-Cb8cuvyy.js → batch-action-bar-D6MZQNnC.js} +10 -10
- package/dist/{batch-action-bar-Cb8cuvyy.js.map → batch-action-bar-D6MZQNnC.js.map} +1 -1
- package/dist/blocks/admin.js +242 -228
- package/dist/blocks/admin.js.map +1 -1
- package/dist/blocks/ai.js +398 -354
- package/dist/blocks/ai.js.map +1 -1
- package/dist/blocks/analytics/charts.js +1022 -0
- package/dist/blocks/analytics/charts.js.map +1 -0
- package/dist/blocks/analytics/usage-card.js +1 -1
- package/dist/blocks/analytics.js +173 -1392
- package/dist/blocks/analytics.js.map +1 -1
- package/dist/blocks/collaboration.js +1 -1
- package/dist/blocks/commerce/receipt.js +1 -1
- package/dist/blocks/commerce.js +1533 -1399
- package/dist/blocks/commerce.js.map +1 -1
- package/dist/blocks/data-display.js +2 -3
- package/dist/blocks/onboarding.js +91 -82
- package/dist/blocks/onboarding.js.map +1 -1
- package/dist/blocks/planning.js +25 -25
- package/dist/blocks/planning.js.map +1 -1
- package/dist/blocks/timelines.js +2 -2
- package/dist/breadcrumbs-CQ9JSlez.js +136 -0
- package/dist/breadcrumbs-CQ9JSlez.js.map +1 -0
- package/dist/{button-S2Cubiiz.js → button-rd6FiHfQ.js} +12 -8
- package/dist/button-rd6FiHfQ.js.map +1 -0
- package/dist/{buttons-BedGfygC.js → buttons-pZVgPTZn.js} +230 -246
- package/dist/buttons-pZVgPTZn.js.map +1 -0
- package/dist/{cards-rNX1M4Xn.js → cards-CgWyqvgZ.js} +25 -22
- package/dist/{cards-rNX1M4Xn.js.map → cards-CgWyqvgZ.js.map} +1 -1
- package/dist/cascader-Cf05pwaq.js +444 -0
- package/dist/cascader-Cf05pwaq.js.map +1 -0
- package/dist/{chart-Darg_0Kv.js → chart-CygRCyIZ.js} +5 -5
- package/dist/{chart-Darg_0Kv.js.map → chart-CygRCyIZ.js.map} +1 -1
- package/dist/{checkbox-fflqmODR.js → checkbox-Dy5_XBMZ.js} +4 -4
- package/dist/{checkbox-fflqmODR.js.map → checkbox-Dy5_XBMZ.js.map} +1 -1
- package/dist/{choice-inputs-zUgBZfE4.js → choice-inputs-oJEsrb5Y.js} +195 -184
- package/dist/choice-inputs-oJEsrb5Y.js.map +1 -0
- package/dist/{code-block-BzmM9Eig.js → code-block-BrLD7mCi.js} +44 -60
- package/dist/code-block-BrLD7mCi.js.map +1 -0
- package/dist/collapsible-CRCCg_bO.js +80 -0
- package/dist/collapsible-CRCCg_bO.js.map +1 -0
- package/dist/{collection-content-gDh1v6O4.js → collection-content-D7SoDlYd.js} +3 -3
- package/dist/{collection-content-gDh1v6O4.js.map → collection-content-D7SoDlYd.js.map} +1 -1
- package/dist/combobox-Dl6f6kHz.js +362 -0
- package/dist/combobox-Dl6f6kHz.js.map +1 -0
- package/dist/combobox-DrDXtSSt.js +929 -0
- package/dist/combobox-DrDXtSSt.js.map +1 -0
- package/dist/command-CjZ2VzKC.js +432 -0
- package/dist/command-CjZ2VzKC.js.map +1 -0
- package/dist/comments-C2MZyRmh.js +1214 -0
- package/dist/comments-C2MZyRmh.js.map +1 -0
- package/dist/components/base/accordion/accordion.d.ts +11 -3
- package/dist/components/base/action-menu/action-menu.d.ts +11 -3
- package/dist/components/base/buttons/button.d.ts +2 -2
- package/dist/components/base/buttons/index.d.ts +1 -1
- package/dist/components/base/buttons/loader-button.d.ts +6 -15
- package/dist/components/base/cards/index.d.ts +1 -1
- package/dist/components/base/cards/partials/card-body-context.d.ts +6 -0
- package/dist/components/base/cards/smart-card.d.ts +0 -2
- package/dist/components/base/cards/smart-card.types.d.ts +12 -10
- package/dist/components/base/cascader/cascader.d.ts +8 -2
- package/dist/components/base/cascader/cascader.types.d.ts +24 -2
- package/dist/components/base/cascader/index.d.ts +1 -1
- package/dist/components/base/choice-inputs/choice-types.d.ts +4 -0
- package/dist/components/base/choice-inputs/pill-radio-group.d.ts +7 -6
- package/dist/components/base/choice-inputs/switch.d.ts +1 -1
- package/dist/components/base/code-block/use-code-copy.d.ts +2 -6
- package/dist/components/base/combobox/combobox-field.d.ts +2 -2
- package/dist/components/base/command/command.d.ts +1 -1
- package/dist/components/base/date-pickers/date-picker-internals.d.ts +3 -1
- package/dist/components/base/date-pickers/datepicker.types.d.ts +11 -7
- package/dist/components/base/date-pickers/time-picker.d.ts +17 -3
- package/dist/components/base/display/dialog.d.ts +3 -9
- package/dist/components/base/display/index.d.ts +2 -3
- package/dist/components/base/display/separator.d.ts +1 -1
- package/dist/components/base/feedback/alert.d.ts +2 -1
- package/dist/components/base/feedback/empty.d.ts +10 -2
- package/dist/components/base/feedback/state-display.d.ts +5 -1
- package/dist/components/base/feedback/state-display.strings.d.ts +9 -0
- package/dist/components/base/forms/form-field.d.ts +7 -2
- package/dist/components/base/forms/workflow.d.ts +2 -2
- package/dist/components/base/forms-numeric/coordinates-input.d.ts +4 -1
- package/dist/components/base/forms-numeric/decimal-input.d.ts +2 -2
- package/dist/components/base/forms-numeric/dimensions-input.d.ts +13 -18
- package/dist/components/base/forms-numeric/index.d.ts +3 -3
- package/dist/components/base/forms-numeric/numeric-composite-field.d.ts +12 -0
- package/dist/components/base/forms-numeric/weight-input.d.ts +6 -1
- package/dist/components/base/item/item.types.d.ts +6 -2
- package/dist/components/base/metadata-list/index.d.ts +1 -3
- package/dist/components/base/metadata-list/metadata-list.d.ts +4 -1
- package/dist/components/base/navigation/index.d.ts +2 -2
- package/dist/components/base/navigation/language-switcher.d.ts +17 -8
- package/dist/components/base/navigation/navigation-tabs.d.ts +8 -1
- package/dist/components/base/navigation/page-header/index.d.ts +1 -1
- package/dist/components/base/navigation/page-header/page-header.d.ts +13 -17
- package/dist/components/base/navigation/pagination.d.ts +5 -5
- package/dist/components/base/popover/popover.recipes.d.ts +0 -1
- package/dist/components/base/qr-code/qr-code.d.ts +4 -0
- package/dist/components/base/repeaters/index.d.ts +1 -1
- package/dist/components/base/repeaters/key-value-editor.d.ts +6 -1
- package/dist/components/base/sheet/sheet.d.ts +6 -15
- package/dist/components/base/sidebar/index.d.ts +1 -6
- package/dist/components/base/sidebar/sidebar.d.ts +40 -10
- package/dist/components/base/skeleton/skeleton.d.ts +1 -1
- package/dist/components/base/structure/structure.types.d.ts +11 -2
- package/dist/components/base/text-inputs/index.d.ts +1 -1
- package/dist/components/base/tree/index.d.ts +1 -0
- package/dist/components/base/tree/tree.d.ts +2 -2
- package/dist/components/base/tree/tree.types.d.ts +7 -1
- package/dist/components/base/upload/avatar-upload.d.ts +2 -1
- package/dist/components/base/upload/file-upload.validation.d.ts +37 -1
- package/dist/components/base/upload/image-upload.d.ts +4 -1
- package/dist/components/base/upload/index.d.ts +3 -9
- package/dist/components/base/value-inputs/date-time-input.d.ts +4 -0
- package/dist/components/base/value-inputs/slider.d.ts +5 -2
- package/dist/components/blocks/admin/action-surfaces/index.d.ts +17 -4
- package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +9 -3
- package/dist/components/blocks/admin/index.d.ts +1 -1
- package/dist/components/blocks/ai/ai-artifact/ai-artifact.d.ts +1 -1
- package/dist/components/blocks/ai/ai-artifact/types.d.ts +9 -4
- package/dist/components/blocks/ai/ai-chain-of-thought/ai-chain-of-thought.d.ts +1 -1
- package/dist/components/blocks/ai/ai-chain-of-thought/types.d.ts +11 -1
- package/dist/components/blocks/ai/ai-citation/ai-citation.d.ts +1 -1
- package/dist/components/blocks/ai/ai-citation/types.d.ts +8 -0
- package/dist/components/blocks/ai/ai-confirmation/ai-confirmation.d.ts +1 -1
- package/dist/components/blocks/ai/ai-confirmation/types.d.ts +21 -5
- package/dist/components/blocks/ai/ai-feedback/types.d.ts +7 -2
- package/dist/components/blocks/ai/ai-inline-citation/types.d.ts +9 -3
- package/dist/components/blocks/ai/ai-package-info/ai-package-info.d.ts +1 -1
- package/dist/components/blocks/ai/ai-package-info/types.d.ts +6 -0
- package/dist/components/blocks/ai/ai-reasoning/types.d.ts +2 -0
- package/dist/components/blocks/ai/ai-sources/ai-sources.d.ts +1 -1
- package/dist/components/blocks/ai/ai-sources/types.d.ts +10 -2
- package/dist/components/blocks/ai/ai-task/ai-task.d.ts +1 -1
- package/dist/components/blocks/ai/ai-task/types.d.ts +10 -1
- package/dist/components/blocks/ai/ai-tool-call/ai-tool-call.d.ts +1 -1
- package/dist/components/blocks/ai/ai-tool-call/types.d.ts +8 -0
- package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
- package/dist/components/blocks/analytics/activity-heatmap/types.d.ts +1 -1
- package/dist/components/blocks/analytics/analytics.strings.d.ts +2 -0
- package/dist/components/blocks/analytics/atoms/metric-trend-chip.d.ts +11 -1
- package/dist/components/blocks/analytics/chart-card/chart-card.d.ts +7 -5
- package/dist/components/blocks/analytics/charts/index.d.ts +27 -0
- package/dist/components/blocks/analytics/index.d.ts +17 -24
- package/dist/components/blocks/analytics/metric/metric.d.ts +7 -3
- package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +2 -0
- package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +4 -5
- package/dist/components/blocks/analytics/types.d.ts +13 -4
- package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
- package/dist/components/blocks/commerce/address-card/address-card.d.ts +1 -1
- package/dist/components/blocks/commerce/address-card/types.d.ts +5 -16
- package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +2 -2
- package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +6 -4
- package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +0 -2
- package/dist/components/blocks/commerce/cart-summary/index.d.ts +2 -2
- package/dist/components/blocks/commerce/cart-summary/types.d.ts +9 -11
- package/dist/components/blocks/commerce/coupon-input/coupon-input.d.ts +1 -1
- package/dist/components/blocks/commerce/coupon-input/types.d.ts +7 -3
- package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +0 -2
- package/dist/components/blocks/commerce/discount-stack/index.d.ts +2 -2
- package/dist/components/blocks/commerce/discount-stack/types.d.ts +4 -6
- package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
- package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +2 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-balance.d.ts +18 -0
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-compact.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-copy-button.d.ts +0 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-dark.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-full.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-illustrated.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-minimal.d.ts +1 -1
- package/dist/components/blocks/commerce/giftcard-card/types.d.ts +16 -5
- package/dist/components/blocks/commerce/index.d.ts +8 -8
- package/dist/components/blocks/commerce/inventory-level/inventory-level.strings.d.ts +2 -0
- package/dist/components/blocks/commerce/inventory-level/types.d.ts +1 -1
- package/dist/components/blocks/commerce/inventory-section/types.d.ts +0 -5
- package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +6 -3
- package/dist/components/blocks/commerce/loyalty-points/loyalty-points.d.ts +1 -1
- package/dist/components/blocks/commerce/loyalty-points/types.d.ts +11 -5
- package/dist/components/blocks/commerce/order-status/order-status.d.ts +1 -1
- package/dist/components/blocks/commerce/order-status/types.d.ts +12 -8
- package/dist/components/blocks/commerce/order-timeline/order-timeline.d.ts +1 -1
- package/dist/components/blocks/commerce/order-timeline/types.d.ts +3 -1
- package/dist/components/blocks/commerce/payment-method/index.d.ts +2 -2
- package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +0 -8
- package/dist/components/blocks/commerce/payment-method/types.d.ts +0 -2
- package/dist/components/blocks/commerce/receipt/index.d.ts +1 -1
- package/dist/components/blocks/commerce/receipt/receipt-items.d.ts +1 -1
- package/dist/components/blocks/commerce/receipt/types.d.ts +10 -0
- package/dist/components/blocks/commerce/refund-status/index.d.ts +2 -2
- package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +0 -2
- package/dist/components/blocks/commerce/refund-status/types.d.ts +0 -2
- package/dist/components/blocks/commerce/seo-listing/types.d.ts +7 -0
- package/dist/components/blocks/commerce/shared/code-entry.d.ts +39 -0
- package/dist/components/blocks/commerce/shared/order-status.d.ts +1 -1
- package/dist/components/blocks/commerce/subscription-summary/subscription-summary.d.ts +1 -1
- package/dist/components/blocks/commerce/subscription-summary/types.d.ts +10 -1
- package/dist/components/blocks/commerce/upcoming-booking/index.d.ts +2 -1
- package/dist/components/blocks/commerce/upcoming-booking/types.d.ts +8 -0
- package/dist/components/blocks/commerce/upcoming-booking/upcoming-booking.d.ts +2 -2
- package/dist/components/blocks/commerce/vendor-profile/types.d.ts +4 -5
- package/dist/components/blocks/commerce/voucher-entry/types.d.ts +6 -3
- package/dist/components/blocks/commerce/voucher-entry/voucher-entry.d.ts +1 -1
- package/dist/components/blocks/content-block-hooks.d.ts +22 -0
- package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +5 -1
- package/dist/components/blocks/data-display/dense-info-card/helpers.d.ts +3 -1
- package/dist/components/blocks/data-display/dense-info-card/index.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-classification.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-dashboard.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-financial.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-project.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-score.d.ts +1 -1
- package/dist/components/blocks/data-display/dense-info-card/types.d.ts +12 -5
- package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +10 -3
- package/dist/components/blocks/data-display/index.d.ts +0 -1
- package/dist/components/blocks/data-display/relationship-card-frame.d.ts +1 -1
- package/dist/components/blocks/onboarding/checklist/checklist.types.d.ts +5 -3
- package/dist/components/blocks/planning/task-card.types.d.ts +7 -3
- package/dist/components/blocks/timelines/changelog/types.d.ts +2 -2
- package/dist/components/blocks/timelines/index.d.ts +2 -2
- package/dist/components/blocks/timelines/milestones/types.d.ts +2 -2
- package/dist/components/blocks/timelines/shared/timeline.d.ts +6 -0
- package/dist/components/blocks/timelines/steps-card/index.d.ts +2 -1
- package/dist/components/blocks/timelines/steps-card/steps-card.d.ts +2 -2
- package/dist/components/blocks/timelines/steps-card/types.d.ts +13 -1
- package/dist/components/features/activities/activities.strings.d.ts +5 -3
- package/dist/components/features/activities/activities.types.d.ts +46 -22
- package/dist/components/features/activities/hooks/use-activity-feed.d.ts +6 -0
- package/dist/components/features/activities/hooks/use-activity-resources.d.ts +2 -1
- package/dist/components/features/activities/index.d.ts +1 -1
- package/dist/components/features/activities/partials/activity-headline.d.ts +5 -0
- package/dist/components/features/activities/partials/activity-row.d.ts +12 -13
- package/dist/components/features/activities/partials/row-layers.d.ts +7 -0
- package/dist/components/features/activities/relative-time.d.ts +18 -0
- package/dist/components/features/ai-chat/ai-chat.d.ts +6 -2
- package/dist/components/features/ai-chat/ai-chat.strings.d.ts +41 -2
- package/dist/components/features/ai-chat/ai-chat.types.d.ts +6 -0
- package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +1 -1
- package/dist/components/features/ai-chat/partials/ai-chat-attachments-strip.d.ts +5 -1
- package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts +2 -2
- package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts +3 -1
- package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts +6 -1
- package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +1 -1
- package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +20 -4
- package/dist/components/features/appointment-calendar/index.d.ts +1 -1
- package/dist/components/features/appointment-calendar/partials/appointment-agenda.d.ts +18 -10
- package/dist/components/features/async-preview/async-preview.d.ts +2 -2
- package/dist/components/features/async-preview/async-preview.types.d.ts +30 -1
- package/dist/components/features/async-preview/preview-trigger-cell.d.ts +7 -2
- package/dist/components/features/combobox/async-resource-combobox.d.ts +2 -2
- package/dist/components/features/combobox/combobox.d.ts +12 -3
- package/dist/components/features/combobox/components/error-message.d.ts +3 -1
- package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +4 -3
- package/dist/components/features/combobox/hooks/use-combobox-state.d.ts +1 -0
- package/dist/components/features/combobox/hooks/use-load-more.d.ts +1 -0
- package/dist/components/features/combobox/index.d.ts +1 -1
- package/dist/components/features/combobox/types.d.ts +68 -37
- package/dist/components/features/comments/comments.strings.d.ts +6 -5
- package/dist/components/features/comments/comments.types.d.ts +40 -26
- package/dist/components/features/comments/hooks/use-attachment-upload.d.ts +5 -1
- package/dist/components/features/comments/hooks/use-comments.d.ts +8 -1
- package/dist/components/features/data-view/data-view.strings.d.ts +9 -2
- package/dist/components/features/data-view/data-view.types.d.ts +15 -2
- package/dist/components/features/email-composer/email-html.d.ts +5 -0
- package/dist/components/features/email-composer/http.d.ts +2 -0
- package/dist/components/features/email-composer/strings.d.ts +17 -2
- package/dist/components/features/email-composer/types.d.ts +19 -2
- package/dist/components/features/email-composer/use-composer.d.ts +2 -78
- package/dist/components/features/event-calendar/event-calendar-day-cell.d.ts +1 -1
- package/dist/components/features/event-calendar/event-calendar-event-badge.d.ts +1 -1
- package/dist/components/features/event-calendar/event-calendar-header.d.ts +1 -1
- package/dist/components/features/event-calendar/event-calendar-legend.d.ts +2 -2
- package/dist/components/features/event-calendar/event-calendar.d.ts +1 -1
- package/dist/components/features/event-calendar/event-calendar.types.d.ts +126 -21
- package/dist/components/features/filters/facets/date-facet.d.ts +4 -2
- package/dist/components/features/filters/facets/range-facet.d.ts +24 -7
- package/dist/components/features/filters/filter-context.d.ts +9 -0
- package/dist/components/features/filters/filters.strings.d.ts +36 -3
- package/dist/components/features/filters/filters.types.d.ts +75 -8
- package/dist/components/features/filters/hooks/use-filter-draft.d.ts +1 -0
- package/dist/components/features/filters/index.d.ts +2 -2
- package/dist/components/features/filters/operator-options.d.ts +25 -2
- package/dist/components/features/filters/partials/active-filter-item.d.ts +0 -13
- package/dist/components/features/filters/partials/async-options-status.d.ts +32 -0
- package/dist/components/features/filters/partials/date-filter-content.d.ts +3 -2
- package/dist/components/features/filters/partials/filter-draft-footer.d.ts +11 -0
- package/dist/components/features/filters/partials/filter-operator-select.d.ts +4 -2
- package/dist/components/features/filters/partials/filter-pill.d.ts +5 -1
- package/dist/components/features/filters/partials/filter-popover-content.d.ts +4 -2
- package/dist/components/features/filters/partials/filter-tabs.d.ts +2 -1
- package/dist/components/features/filters/partials/range-filter-content.d.ts +12 -0
- package/dist/components/features/filters/partials/regular-filter-content.d.ts +1 -1
- package/dist/components/features/filters/utils/filter-utils.d.ts +34 -5
- package/dist/components/features/global-search/global-search-dialog.d.ts +7 -1
- package/dist/components/features/global-search/global-search.d.ts +7 -1
- package/dist/components/features/global-search/global-search.strings.d.ts +19 -3
- package/dist/components/features/global-search/global-search.types.d.ts +30 -6
- package/dist/components/features/global-search/index.d.ts +1 -1
- package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +6 -1
- package/dist/components/features/global-search/partials/global-search-input.d.ts +2 -0
- package/dist/components/features/kanban/index.d.ts +2 -2
- package/dist/components/features/kanban/kanban-context.d.ts +4 -0
- package/dist/components/features/kanban/kanban-keyboard.d.ts +7 -2
- package/dist/components/features/kanban/kanban.d.ts +10 -1
- package/dist/components/features/kanban/kanban.strings.d.ts +11 -2
- package/dist/components/features/kanban/kanban.types.d.ts +26 -0
- package/dist/components/features/map/map.d.ts +4 -0
- package/dist/components/features/map/place-autocomplete.d.ts +10 -1
- package/dist/components/features/media-library/hooks/use-media-library.d.ts +3 -1
- package/dist/components/features/media-library/media-library.d.ts +1 -1
- package/dist/components/features/media-library/media-library.strings.d.ts +39 -3
- package/dist/components/features/media-library/media-library.types.d.ts +82 -9
- package/dist/components/features/media-library/partials/media-library-partials.d.ts +3 -3
- package/dist/components/features/mentions/hooks/use-mentions-search.d.ts +7 -0
- package/dist/components/features/mentions/hooks/use-mentions.d.ts +16 -1
- package/dist/components/features/mentions/index.d.ts +1 -1
- package/dist/components/features/mentions/mentions.strings.d.ts +10 -2
- package/dist/components/features/mentions/partials/mention-chip.d.ts +1 -0
- package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +12 -1
- package/dist/components/features/mentions/partials/mention-picker.d.ts +8 -1
- package/dist/components/features/mentions/partials/mention-search-error.d.ts +6 -0
- package/dist/components/features/mentions/utils/index.d.ts +0 -1
- package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
- package/dist/components/features/overlays/dialog.d.ts +1 -1
- package/dist/components/features/overlays/drawer.d.ts +1 -1
- package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +2 -2
- package/dist/components/features/overlays/index.d.ts +2 -2
- package/dist/components/features/overlays/overlays.strings.d.ts +2 -1
- package/dist/components/features/overlays/overlays.types.d.ts +27 -10
- package/dist/components/features/products/components/index.d.ts +0 -10
- package/dist/components/features/products/components/product-contract-overview.d.ts +1 -1
- package/dist/components/features/products/components/product-details-card.d.ts +1 -1
- package/dist/components/features/products/components/product-operations-card.d.ts +1 -1
- package/dist/components/features/products/components/product-option-action-menu.d.ts +1 -1
- package/dist/components/features/products/components/product-options-summary.d.ts +1 -1
- package/dist/components/features/products/components/product-policies-card.d.ts +1 -1
- package/dist/components/features/products/components/product-quote-preview-card.d.ts +1 -1
- package/dist/components/features/products/components/product-readiness-card.d.ts +1 -1
- package/dist/components/features/products/components/product-structure-card.d.ts +1 -1
- package/dist/components/features/products/components/product-variant-action-menu.d.ts +1 -1
- package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
- package/dist/components/features/products/components/product-variants-table.d.ts +1 -1
- package/dist/components/features/products/partials/product-surface.d.ts +15 -0
- package/dist/components/features/products/products.strings.d.ts +8 -0
- package/dist/components/features/products/products.types.d.ts +26 -8
- package/dist/components/features/questionnaire/questionnaire.types.d.ts +7 -2
- package/dist/components/features/resource/index.d.ts +2 -3
- package/dist/components/features/resource/resource.d.ts +2 -10
- package/dist/components/features/resource/resource.types.d.ts +7 -147
- package/dist/components/features/resource-assignment/partials/assignment-surface.d.ts +15 -0
- package/dist/components/features/resource-assignment/resource-assignment.strings.d.ts +6 -1
- package/dist/components/features/resource-assignment/resource-assignment.types.d.ts +6 -0
- package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +1 -1
- package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +5 -7
- package/dist/components/features/rich-text-editor/partials/editor-field-aria.d.ts +14 -0
- package/dist/components/features/rich-text-editor/partials/html-helpers.d.ts +2 -3
- package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +6 -2
- package/dist/components/features/rich-text-editor/partials/index.d.ts +2 -3
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-tiptap.d.ts +0 -1
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +5 -4
- package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +1 -1
- package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +30 -4
- package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +10 -1
- package/dist/components/features/schema-form/partials/schema-form-field.d.ts +3 -1
- package/dist/components/features/schema-form/schema-form.d.ts +1 -1
- package/dist/components/features/schema-form/schema-form.types.d.ts +13 -5
- package/dist/components/features/schema-form/schema-form.utils.d.ts +1 -1
- package/dist/components/features/suggestions/suggestions.strings.d.ts +14 -0
- package/dist/components/features/suggestions/suggestions.types.d.ts +13 -5
- package/dist/components/features/table/data-table.d.ts +1 -1
- package/dist/components/features/table/filter-bar.d.ts +1 -1
- package/dist/components/features/table/index.d.ts +1 -0
- package/dist/components/features/table/pagination.d.ts +1 -1
- package/dist/components/features/table/partials/cell-value.d.ts +1 -1
- package/dist/components/features/table/table-body.d.ts +1 -1
- package/dist/components/features/table/table-header.d.ts +1 -1
- package/dist/components/features/table/table-helpers.d.ts +37 -12
- package/dist/components/features/table/table-region.recipes.d.ts +11 -0
- package/dist/components/features/table/table-toolbar.d.ts +1 -1
- package/dist/components/features/table/table.strings.d.ts +4 -0
- package/dist/components/features/table/table.types.d.ts +91 -49
- package/dist/components/features/theme-tweaker/theme-provider-settings.d.ts +4 -0
- package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.ts +10 -7
- package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.ts +17 -0
- package/dist/components/layout/app-shell/app-shell.types.d.ts +46 -49
- package/dist/components/layout/app-shell/index.d.ts +2 -2
- package/dist/components/layout/app-shell/shell-regions.d.ts +9 -0
- package/dist/components/layout/app-shell/shell-skip-link.d.ts +9 -0
- package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +1 -1
- package/dist/components/layout/app-shell/stacked-layout.d.ts +1 -1
- package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
- package/dist/components/layout/auth/auth-shell.d.ts +1 -1
- package/dist/components/layout/auth/auth.types.d.ts +0 -5
- package/dist/components/layout/containers/inline-gutter-context.d.ts +7 -0
- package/dist/components/layout/containers/main-landmark-context.d.ts +6 -0
- package/dist/components/layout/header/header.types.d.ts +19 -8
- package/dist/components/layout/header/partials/header-global-search-trigger.d.ts +1 -1
- package/dist/components/layout/header/partials/header-notifications.d.ts +1 -1
- package/dist/components/layout/header/partials/header-search.d.ts +1 -1
- package/dist/components/layout/hooks/use-command-shortcut.d.ts +10 -1
- package/dist/components/layout/layout.types.d.ts +6 -4
- package/dist/components/layout/navigation/breadcrumb-progress/breadcrumb-progress.d.ts +1 -1
- package/dist/components/layout/navigation/breadcrumb-progress/types.d.ts +9 -0
- package/dist/components/layout/navigation/section-nav/section-nav.d.ts +8 -1
- package/dist/components/layout/navigation/side-nav.d.ts +3 -2
- package/dist/components/layout/normalize-layout-path.d.ts +1 -0
- package/dist/components/layout/page/index.d.ts +2 -3
- package/dist/components/layout/page/page.strings.d.ts +12 -0
- package/dist/components/layout/page/page.types.d.ts +7 -110
- package/dist/components/layout/page/partials/page-header.d.ts +1 -1
- package/dist/components/layout/settings/index.d.ts +1 -1
- package/dist/components/layout/settings/settings.d.ts +4 -6
- package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-navigation-footer.d.ts +1 -1
- package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +1 -1
- package/dist/components/layout/sidebar/index.d.ts +1 -1
- package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +17 -7
- package/dist/components/layout/sidebar/sidebar.context.d.ts +1 -0
- package/dist/components/layout/sidebar/sidebar.types.d.ts +12 -12
- package/dist/components/layout/sidebar/sidebar.utils.d.ts +4 -0
- package/dist/components/layout/workspace/workspace.strings.d.ts +2 -2
- package/dist/components/layout/workspace/workspace.types.d.ts +13 -7
- package/dist/components/primitives/date.d.ts +22 -3
- package/dist/components/primitives/file-size.d.ts +8 -2
- package/dist/components/primitives/index.d.ts +1 -1
- package/dist/components/primitives/initials.d.ts +3 -1
- package/dist/components/primitives/link.d.ts +11 -3
- package/dist/components/primitives/money.d.ts +2 -2
- package/dist/components/primitives/number.d.ts +3 -2
- package/dist/components/typography/heading.d.ts +9 -3
- package/dist/components/typography/index.d.ts +1 -1
- package/dist/components/typography/rich-text/rich-text-tree.d.ts +7 -5
- package/dist/components/typography/text-link.d.ts +10 -3
- package/dist/components/ui/badge.d.ts +2 -4
- package/dist/components/ui/breadcrumb.d.ts +2 -3
- package/dist/components/ui/button.d.ts +8 -2
- package/dist/components/ui/collapsible.d.ts +1 -4
- package/dist/components/ui/command.d.ts +20 -18
- package/dist/components/ui/dialog.d.ts +3 -9
- package/dist/components/ui/empty.d.ts +2 -2
- package/dist/components/ui/input-group.d.ts +3 -3
- package/dist/components/ui/item.d.ts +3 -3
- package/dist/components/ui/popover.d.ts +3 -7
- package/dist/components/ui/sheet.d.ts +4 -12
- package/dist/components/ui/sidebar-state.d.ts +6 -1
- package/dist/components/ui/sidebar.d.ts +7 -4
- package/dist/components/ui/tabs.d.ts +2 -2
- package/dist/components/ui/toggle-group.d.ts +3 -3
- package/dist/components/ui/toggle.d.ts +2 -2
- package/dist/components/ui/tooltip.d.ts +1 -3
- package/dist/{containers-CIxwbZt5.js → containers-BdfLTP4w.js} +37 -32
- package/dist/containers-BdfLTP4w.js.map +1 -0
- package/dist/content-block-hooks-Z3iKjqd1.js +17 -0
- package/dist/content-block-hooks-Z3iKjqd1.js.map +1 -0
- package/dist/{copyable-DIznBqiT.js → copyable-Bmr14W0d.js} +6 -6
- package/dist/{copyable-DIznBqiT.js.map → copyable-Bmr14W0d.js.map} +1 -1
- package/dist/{data-display-BdgCAw8T.js → data-display-CWe9SOYh.js} +264 -250
- package/dist/data-display-CWe9SOYh.js.map +1 -0
- package/dist/date-3qsCE1ID.js +209 -0
- package/dist/date-3qsCE1ID.js.map +1 -0
- package/dist/date-picker-D1keJQIG.js +1617 -0
- package/dist/date-picker-D1keJQIG.js.map +1 -0
- package/dist/date-pickers-D8aJoeHc.js +185 -0
- package/dist/date-pickers-D8aJoeHc.js.map +1 -0
- package/dist/disclosure-panel-B0HFNZ9x.js.map +1 -1
- package/dist/{display-KsZLw9Ov.js → display-VlmP1I0i.js} +23 -46
- package/dist/display-VlmP1I0i.js.map +1 -0
- package/dist/{dropdown-menu-CLs8Lihj.js → dropdown-menu-B8hjvbkS.js} +9 -9
- package/dist/{dropdown-menu-CLs8Lihj.js.map → dropdown-menu-B8hjvbkS.js.map} +1 -1
- package/dist/dropzone-CHBNK3de.js +116 -0
- package/dist/dropzone-CHBNK3de.js.map +1 -0
- package/dist/features/activities.js +767 -700
- package/dist/features/activities.js.map +1 -1
- package/dist/features/ai-chat.js +280 -235
- package/dist/features/ai-chat.js.map +1 -1
- package/dist/features/appointment-calendar.js +430 -334
- package/dist/features/appointment-calendar.js.map +1 -1
- package/dist/features/async-preview.js +351 -265
- package/dist/features/async-preview.js.map +1 -1
- package/dist/features/combobox.js +2 -2
- package/dist/features/comments.js +1 -1
- package/dist/features/data-view.js +212 -151
- package/dist/features/data-view.js.map +1 -1
- package/dist/features/email-composer/engine.js +1 -1
- package/dist/features/email-composer.js +347 -313
- package/dist/features/email-composer.js.map +1 -1
- package/dist/features/event-calendar.js +501 -348
- package/dist/features/event-calendar.js.map +1 -1
- package/dist/features/filters.js +2 -2
- package/dist/features/global-search.js +250 -210
- package/dist/features/global-search.js.map +1 -1
- package/dist/features/kanban.js +280 -210
- package/dist/features/kanban.js.map +1 -1
- package/dist/features/map/style.css +15 -0
- package/dist/features/map.js +435 -404
- package/dist/features/map.js.map +1 -1
- package/dist/features/media-library.js +1745 -1195
- package/dist/features/media-library.js.map +1 -1
- package/dist/features/mentions.js +2 -2
- package/dist/features/overlays.js +2 -2
- package/dist/features/products.js +1862 -1759
- package/dist/features/products.js.map +1 -1
- package/dist/features/questionnaire.js +188 -168
- package/dist/features/questionnaire.js.map +1 -1
- package/dist/features/resource-assignment.js +223 -191
- package/dist/features/resource-assignment.js.map +1 -1
- package/dist/features/resource.js +55 -217
- package/dist/features/resource.js.map +1 -1
- package/dist/features/rich-text-editor.js +28 -19
- package/dist/features/rich-text-editor.js.map +1 -1
- package/dist/features/schema-form.js +380 -287
- package/dist/features/schema-form.js.map +1 -1
- package/dist/features/suggestions.js +90 -74
- package/dist/features/suggestions.js.map +1 -1
- package/dist/features/table.js +2 -2
- package/dist/features/theme-tweaker.js +718 -627
- package/dist/features/theme-tweaker.js.map +1 -1
- package/dist/feedback-DmqmXKLn.js +254 -0
- package/dist/feedback-DmqmXKLn.js.map +1 -0
- package/dist/{field-affordance-recipes-DWcNcOjh.js → field-affordance-recipes-DfbMadot.js} +13 -9
- package/dist/field-affordance-recipes-DfbMadot.js.map +1 -0
- package/dist/field-control-attributes-B6i335wr.js +18 -0
- package/dist/field-control-attributes-B6i335wr.js.map +1 -0
- package/dist/field-state-recipes-EtCxpEy3.js +18 -0
- package/dist/field-state-recipes-EtCxpEy3.js.map +1 -0
- package/dist/filters-BviMRMLS.js +2692 -0
- package/dist/filters-BviMRMLS.js.map +1 -0
- package/dist/{focus-recipes-B653VaLq.js → focus-recipes-DSkiUvUp.js} +3 -3
- package/dist/focus-recipes-DSkiUvUp.js.map +1 -0
- package/dist/form-field-BdfCwSoQ.js +74 -0
- package/dist/form-field-BdfCwSoQ.js.map +1 -0
- package/dist/{form-sizing-Bs2qFUeE.js → form-sizing-DE_dZw32.js} +3 -3
- package/dist/{form-sizing-Bs2qFUeE.js.map → form-sizing-DE_dZw32.js.map} +1 -1
- package/dist/{forms-C0RGnJTe.js → forms-B8DzJnBN.js} +35 -35
- package/dist/forms-B8DzJnBN.js.map +1 -0
- package/dist/forms-numeric-DOBswjKj.js +992 -0
- package/dist/forms-numeric-DOBswjKj.js.map +1 -0
- package/dist/{header-DMMxG__r.js → header-Cq3G0ZRP.js} +163 -158
- package/dist/header-Cq3G0ZRP.js.map +1 -0
- package/dist/hooks/use-files.d.ts +2 -0
- package/dist/{hooks-DB6CJ4MR.js → hooks-DHfeSMAO.js} +34 -14
- package/dist/hooks-DHfeSMAO.js.map +1 -0
- package/dist/{http-D_6rOnzU.js → http-Cu-GPpss.js} +61 -35
- package/dist/http-Cu-GPpss.js.map +1 -0
- package/dist/{icon-badge-DZF-YjQp.js → icon-badge-B0Kq7wom.js} +3 -3
- package/dist/{icon-badge-DZF-YjQp.js.map → icon-badge-B0Kq7wom.js.map} +1 -1
- package/dist/index.js +6 -6
- package/dist/inline-gutter-context-CSqmrMFZ.js +11 -0
- package/dist/inline-gutter-context-CSqmrMFZ.js.map +1 -0
- package/dist/{input-DMBwAZmr.js → input-2YrgTUrz.js} +3 -3
- package/dist/{input-DMBwAZmr.js.map → input-2YrgTUrz.js.map} +1 -1
- package/dist/{input-CvyDQlY7.js → input-DfJyrjoR.js} +7 -7
- package/dist/{input-CvyDQlY7.js.map → input-DfJyrjoR.js.map} +1 -1
- package/dist/{interaction-recipes-XR9ZpVYL.js → interaction-recipes-DmuS1ase.js} +2 -2
- package/dist/{interaction-recipes-XR9ZpVYL.js.map → interaction-recipes-DmuS1ase.js.map} +1 -1
- package/dist/item-GJ9mvCcg.js +279 -0
- package/dist/item-GJ9mvCcg.js.map +1 -0
- package/dist/layout/app-shell.js +1 -1
- package/dist/layout/auth.js +1 -1
- package/dist/layout/containers.js +1 -1
- package/dist/layout/header.js +1 -1
- package/dist/layout/hooks.js +1 -1
- package/dist/layout/navigation.js +1 -1
- package/dist/layout/page.js +2 -2
- package/dist/layout/settings.js +2 -2
- package/dist/layout/sidebar.js +3 -3
- package/dist/layout/workspace.js +1 -1
- package/dist/layout.js +12 -12
- package/dist/layout.types-DbtnyAtd.js +33 -0
- package/dist/layout.types-DbtnyAtd.js.map +1 -0
- package/dist/lib/anchored-positioning.d.ts +11 -0
- package/dist/lib/field-affordance-recipes.d.ts +10 -0
- package/dist/lib/field-control-attributes.d.ts +11 -0
- package/dist/lib/field-state-recipes.d.ts +8 -0
- package/dist/lib/focus-recipes.d.ts +7 -0
- package/dist/lib/format.d.ts +26 -0
- package/dist/lib/money-format.d.ts +6 -0
- package/dist/lib/motion-recipes.d.ts +6 -0
- package/dist/lib/surface-recipes.d.ts +33 -3
- package/dist/lib/theme-scope.d.ts +17 -1
- package/dist/lib/token-merge.generated.d.ts +19 -25
- package/dist/lib/ui-provider/index.d.ts +1 -1
- package/dist/lib/ui-provider/types.d.ts +5 -0
- package/dist/lib/use-controllable-state.d.ts +16 -0
- package/dist/lib/use-copy-feedback.d.ts +15 -0
- package/dist/lib/utils.js +1 -1
- package/dist/lib/variant-props.d.ts +9 -0
- package/dist/main-landmark-context-BAsyqp2I.js +11 -0
- package/dist/main-landmark-context-BAsyqp2I.js.map +1 -0
- package/dist/mentions-zz0ewNIq.js +670 -0
- package/dist/mentions-zz0ewNIq.js.map +1 -0
- package/dist/message-BiiVrRrm.js +138 -0
- package/dist/message-BiiVrRrm.js.map +1 -0
- package/dist/{metadata-list-C3MkU-Om.js → metadata-list-G85roWjS.js} +13 -12
- package/dist/metadata-list-G85roWjS.js.map +1 -0
- package/dist/{motion-recipes-DitYv6P2.js → motion-recipes-CUc_aHuG.js} +7 -4
- package/dist/motion-recipes-CUc_aHuG.js.map +1 -0
- package/dist/navigation-C0Be5C3i.js +304 -0
- package/dist/navigation-C0Be5C3i.js.map +1 -0
- package/dist/navigation-CmqaQR_G.js +257 -0
- package/dist/navigation-CmqaQR_G.js.map +1 -0
- package/dist/normalize-layout-path-BmEgg6fu.js +14 -0
- package/dist/normalize-layout-path-BmEgg6fu.js.map +1 -0
- package/dist/number-NFWKIoiK.js +340 -0
- package/dist/number-NFWKIoiK.js.map +1 -0
- package/dist/{overflow-tab-bar-IVFVQFV6.js → overflow-tab-bar-DV7HE_3t.js} +8 -8
- package/dist/{overflow-tab-bar-IVFVQFV6.js.map → overflow-tab-bar-DV7HE_3t.js.map} +1 -1
- package/dist/{overlays-BSgCtM2v.js → overlays-D-gAIfPF.js} +369 -364
- package/dist/overlays-D-gAIfPF.js.map +1 -0
- package/dist/page-D4pQhgSq.js +216 -0
- package/dist/page-D4pQhgSq.js.map +1 -0
- package/dist/{page-header-commands-7P3sfE9u.js → page-header-commands-elelNOfd.js} +29 -29
- package/dist/{page-header-commands-7P3sfE9u.js.map → page-header-commands-elelNOfd.js.map} +1 -1
- package/dist/{pagination-CgCjElfu.js → pagination-BuSWw1US.js} +22 -23
- package/dist/pagination-BuSWw1US.js.map +1 -0
- package/dist/popover-BpMxbqEK.js +205 -0
- package/dist/popover-BpMxbqEK.js.map +1 -0
- package/dist/{popover-menu-DlnQ2zlR.js → popover-menu-CO-_iiuz.js} +7 -7
- package/dist/{popover-menu-DlnQ2zlR.js.map → popover-menu-CO-_iiuz.js.map} +1 -1
- package/dist/{popover.recipes-DdiEp0rd.js → popover.recipes-BqkdvlZn.js} +3 -4
- package/dist/{popover.recipes-DdiEp0rd.js.map → popover.recipes-BqkdvlZn.js.map} +1 -1
- package/dist/{portal-recipes-BpsV_iRw.js → portal-recipes-BPeS4rGB.js} +2 -2
- package/dist/{portal-recipes-BpsV_iRw.js.map → portal-recipes-BPeS4rGB.js.map} +1 -1
- package/dist/primitives-BlC1lXBr.js +447 -0
- package/dist/primitives-BlC1lXBr.js.map +1 -0
- package/dist/primitives.js +4 -4
- package/dist/{progress-BJhQP9WX.js → progress-RARK8AjB.js} +5 -5
- package/dist/{progress-BJhQP9WX.js.map → progress-RARK8AjB.js.map} +1 -1
- package/dist/receipt-CUf2Vegp.js +114 -0
- package/dist/receipt-CUf2Vegp.js.map +1 -0
- package/dist/rich-text-Cypm9__d.js +44 -0
- package/dist/rich-text-Cypm9__d.js.map +1 -0
- package/dist/rich-text-editor-Z6cQepsA.js +919 -0
- package/dist/rich-text-editor-Z6cQepsA.js.map +1 -0
- package/dist/rich-text-editor-toolbar-DYbRJARB.js +100 -0
- package/dist/rich-text-editor-toolbar-DYbRJARB.js.map +1 -0
- package/dist/rich-text-tree-DdKHIJx4.js +154 -0
- package/dist/rich-text-tree-DdKHIJx4.js.map +1 -0
- package/dist/{scroll-area-B0dB2cBi.js → scroll-area-B9HKbji0.js} +3 -3
- package/dist/{scroll-area-B0dB2cBi.js.map → scroll-area-B9HKbji0.js.map} +1 -1
- package/dist/{separator-Ct_WSWTJ.js → separator-DaDe26sf.js} +3 -3
- package/dist/separator-DaDe26sf.js.map +1 -0
- package/dist/{separator-Bb17I4pu.js → separator-KGsNXt2J.js} +2 -2
- package/dist/{separator-Bb17I4pu.js.map → separator-KGsNXt2J.js.map} +1 -1
- package/dist/services/actions/action-adapters.d.ts +5 -2
- package/dist/services/actions/index.d.ts +1 -1
- package/dist/services/actions.js +2 -2
- package/dist/services/actions.js.map +1 -1
- package/dist/settings-D5j_RJvT.js +160 -0
- package/dist/settings-D5j_RJvT.js.map +1 -0
- package/dist/sheet-B6j_BE9O.js +241 -0
- package/dist/sheet-B6j_BE9O.js.map +1 -0
- package/dist/{sidebar-f9gRWXIR.js → sidebar-C-iQ_TJP.js} +379 -350
- package/dist/sidebar-C-iQ_TJP.js.map +1 -0
- package/dist/sidebar-D5VO2W8S.js +715 -0
- package/dist/sidebar-D5VO2W8S.js.map +1 -0
- package/dist/{skeleton-BapcJd9C.js → skeleton-Cab_KgVo.js} +13 -13
- package/dist/skeleton-Cab_KgVo.js.map +1 -0
- package/dist/{smart-card-CW0hjetE.js → smart-card-C59z6KFO.js} +217 -210
- package/dist/smart-card-C59z6KFO.js.map +1 -0
- package/dist/{structure-DuxKl954.js → structure-DElaQwwN.js} +2 -2
- package/dist/{structure-DuxKl954.js.map → structure-DElaQwwN.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/{surface-recipes-BKRVW8Os.js → surface-recipes-DV6rrOFq.js} +11 -3
- package/dist/surface-recipes-DV6rrOFq.js.map +1 -0
- package/dist/table-CSRUgpdK.js +180 -0
- package/dist/table-CSRUgpdK.js.map +1 -0
- package/dist/table-DdXDBsR_.js +1657 -0
- package/dist/table-DdXDBsR_.js.map +1 -0
- package/dist/tabs-WnHfV2pM.js +192 -0
- package/dist/tabs-WnHfV2pM.js.map +1 -0
- package/dist/{text-inputs-B1culiSK.js → text-inputs-ljyBYaCd.js} +112 -112
- package/dist/text-inputs-ljyBYaCd.js.map +1 -0
- package/dist/theme.css +21 -5
- package/dist/timelines-mOmS9Eh3.js +479 -0
- package/dist/timelines-mOmS9Eh3.js.map +1 -0
- package/dist/tooltip-yjX-Uv-p.js +112 -0
- package/dist/tooltip-yjX-Uv-p.js.map +1 -0
- package/dist/{tree-CzUJHnFs.js → tree-YpkxUG2Z.js} +80 -72
- package/dist/tree-YpkxUG2Z.js.map +1 -0
- package/dist/typography/rich-text.js +1 -1
- package/dist/{typography-BQnine1k.js → typography-C0dELqYV.js} +46 -40
- package/dist/typography-C0dELqYV.js.map +1 -0
- package/dist/typography.js +1 -1
- package/dist/{ui-provider-C-74NVLc.js → ui-provider-Bu1S-o96.js} +4 -3
- package/dist/ui-provider-Bu1S-o96.js.map +1 -0
- package/dist/ui-provider.js +2 -2
- package/dist/upload-DMuMYJFT.js +875 -0
- package/dist/upload-DMuMYJFT.js.map +1 -0
- package/dist/{usage-card-BeSLY0i0.js → usage-card-DDPki5P1.js} +57 -54
- package/dist/usage-card-DDPki5P1.js.map +1 -0
- package/dist/use-controllable-state-BlP8SyBI.js +13 -0
- package/dist/use-controllable-state-BlP8SyBI.js.map +1 -0
- package/dist/use-copy-feedback-CzcaqlLf.js +28 -0
- package/dist/use-copy-feedback-CzcaqlLf.js.map +1 -0
- package/dist/use-metric-format-options-Dk4rC1NO.js +251 -0
- package/dist/use-metric-format-options-Dk4rC1NO.js.map +1 -0
- package/dist/{utils-B6kKb8jB.js → utils-BVbAG2J6.js} +128 -112
- package/dist/utils-BVbAG2J6.js.map +1 -0
- package/dist/value-inputs-h5MwjGCo.js +982 -0
- package/dist/value-inputs-h5MwjGCo.js.map +1 -0
- package/dist/value-typography-D15uwfj-.js +154 -0
- package/dist/value-typography-D15uwfj-.js.map +1 -0
- package/dist/workspace-DIryPqBt.js +400 -0
- package/dist/workspace-DIryPqBt.js.map +1 -0
- package/docs/consumer-skill/SKILL.md +7 -0
- package/docs/consumer-skill/agents/themelia-ui-designer.md +11 -2
- package/docs/consumer-skill/examples/analytics.tsx +1 -1
- package/docs/consumer-skill/examples/app-layout.tsx +3 -3
- package/docs/consumer-skill/examples/commerce-lines.tsx +7 -5
- package/docs/consumer-skill/examples/detail.tsx +3 -2
- package/docs/consumer-skill/examples/edit.tsx +3 -3
- package/docs/consumer-skill/examples/email-composer.tsx +1 -1
- package/docs/consumer-skill/examples/index-table.tsx +2 -2
- package/docs/consumer-skill/examples/scoped-directory.tsx +7 -6
- package/docs/consumer-skill/references/agents-md.md +27 -23
- package/docs/consumer-skill/references/analytics.md +33 -4
- package/docs/consumer-skill/references/building-views.md +213 -0
- package/docs/consumer-skill/references/catalogue.md +617 -0
- package/docs/consumer-skill/references/component-contracts.json +25852 -32067
- package/docs/consumer-skill/references/composition.md +42 -21
- package/docs/consumer-skill/references/design-contract.md +1 -0
- package/docs/consumer-skill/references/discovery.md +8 -5
- package/docs/consumer-skill/references/installation.md +59 -10
- package/docs/consumer-skill/references/integration.md +28 -5
- package/docs/consumer-skill/references/product-composition.md +2 -2
- package/docs/consumer-skill/references/public-api.json +726 -641
- package/docs/consumer-skill/references/review.md +57 -15
- package/docs/consumer-skill/references/rhf-workflows.md +72 -0
- package/docs/consumer-skill/references/screen-archetypes.md +2 -2
- package/docs/consumer-skill/references/theming.md +8 -3
- package/docs/consumer-skill/references/tokens.json +4 -4
- package/docs/consumer-skill/references/workflows.md +7 -7
- package/docs/consumer-skill/scripts/composition-policy.mjs +178 -44
- package/docs/consumer-skill/scripts/composition.mjs +4 -1
- package/docs/consumer-skill/scripts/discovery.mjs +3 -1
- package/docs/consumer-skill/scripts/setup-skills.mjs +74 -10
- package/docs/consumer-skills/themelia-components/SKILL.md +8 -4
- package/docs/consumer-skills/themelia-composition/SKILL.md +7 -3
- package/docs/consumer-skills/themelia-design/SKILL.md +7 -1
- package/docs/consumer-skills/themelia-tokenization/SKILL.md +1 -1
- package/package.json +12 -13
- package/templates/README.md +3 -2
- package/templates/admin-shell-template.tsx +50 -11
- package/templates/analytics-operations-template.tsx +20 -24
- package/templates/customers-template.tsx +30 -25
- package/templates/index.ts +2 -8
- package/templates/orders-template.tsx +28 -24
- package/templates/products-template.tsx +14 -4
- package/templates/user-permissions-template.tsx +11 -14
- package/dist/accordion-B9MHG0cT.js.map +0 -1
- package/dist/action-menu-Dr8K-ghE.js +0 -284
- package/dist/action-menu-Dr8K-ghE.js.map +0 -1
- package/dist/ai-artifact-C58tQcBy.js +0 -1185
- package/dist/ai-artifact-C58tQcBy.js.map +0 -1
- package/dist/anchored-positioning-DPnKTvNs.js +0 -6
- package/dist/anchored-positioning-DPnKTvNs.js.map +0 -1
- package/dist/app-shell-B_IuNWOo.js +0 -321
- package/dist/app-shell-B_IuNWOo.js.map +0 -1
- package/dist/auth-DTkkshS8.js.map +0 -1
- package/dist/badge-xIiV_E7f.js.map +0 -1
- package/dist/base/sheet.js +0 -3
- package/dist/breadcrumbs-J-K2kl4c.js +0 -129
- package/dist/breadcrumbs-J-K2kl4c.js.map +0 -1
- package/dist/button-S2Cubiiz.js.map +0 -1
- package/dist/buttons-BedGfygC.js.map +0 -1
- package/dist/cascader-B1MiqkBq.js +0 -439
- package/dist/cascader-B1MiqkBq.js.map +0 -1
- package/dist/choice-inputs-zUgBZfE4.js.map +0 -1
- package/dist/code-block-BzmM9Eig.js.map +0 -1
- package/dist/collapsible-BkAI_XD4.js +0 -81
- package/dist/collapsible-BkAI_XD4.js.map +0 -1
- package/dist/combobox-BEx0vJgF.js +0 -362
- package/dist/combobox-BEx0vJgF.js.map +0 -1
- package/dist/combobox-BwzoXFSG.js +0 -884
- package/dist/combobox-BwzoXFSG.js.map +0 -1
- package/dist/command-CrlPIL6m.js +0 -425
- package/dist/command-CrlPIL6m.js.map +0 -1
- package/dist/comments-Dmpp0YIc.js +0 -1169
- package/dist/comments-Dmpp0YIc.js.map +0 -1
- package/dist/components/base/buttons/tooltip-button.d.ts +0 -7
- package/dist/components/base/display/content-block.d.ts +0 -75
- package/dist/components/base/display/content-block.strings.d.ts +0 -5
- package/dist/components/base/sheet/index.d.ts +0 -29
- package/dist/components/blocks/ai/use-copy-feedback.d.ts +0 -6
- package/dist/components/blocks/data-display/metadata/index.d.ts +0 -30
- package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +0 -16
- package/dist/components/features/resource/resource.strings.d.ts +0 -12
- package/dist/components/features/rich-text-editor/partials/rich-text-editor-fallback.d.ts +0 -8
- package/dist/components/features/sync/index.d.ts +0 -26
- package/dist/components/features/sync/sync-range-dialog-form.d.ts +0 -5
- package/dist/components/features/sync/sync.strings.d.ts +0 -18
- package/dist/components/features/sync/sync.types.d.ts +0 -44
- package/dist/components/layout/page/partials/page-actions.d.ts +0 -3
- package/dist/components/ui/slot.d.ts +0 -6
- package/dist/containers-CIxwbZt5.js.map +0 -1
- package/dist/data-display-BdgCAw8T.js.map +0 -1
- package/dist/date-Cq8ioE4o.js +0 -144
- package/dist/date-Cq8ioE4o.js.map +0 -1
- package/dist/date-picker-RlIzKom_.js +0 -1551
- package/dist/date-picker-RlIzKom_.js.map +0 -1
- package/dist/date-pickers-DY-CpXS1.js +0 -179
- package/dist/date-pickers-DY-CpXS1.js.map +0 -1
- package/dist/display-KsZLw9Ov.js.map +0 -1
- package/dist/features/sync.js +0 -142
- package/dist/features/sync.js.map +0 -1
- package/dist/feedback-Dm4izqFn.js +0 -240
- package/dist/feedback-Dm4izqFn.js.map +0 -1
- package/dist/field-affordance-recipes-DWcNcOjh.js.map +0 -1
- package/dist/field-state-recipes-BVA2CWHo.js +0 -12
- package/dist/field-state-recipes-BVA2CWHo.js.map +0 -1
- package/dist/filters-DzgSJpMK.js +0 -2257
- package/dist/filters-DzgSJpMK.js.map +0 -1
- package/dist/focus-recipes-B653VaLq.js.map +0 -1
- package/dist/form-field-BriWAXyg.js +0 -63
- package/dist/form-field-BriWAXyg.js.map +0 -1
- package/dist/forms-C0RGnJTe.js.map +0 -1
- package/dist/forms-numeric-DIhghX1Q.js +0 -910
- package/dist/forms-numeric-DIhghX1Q.js.map +0 -1
- package/dist/header-DMMxG__r.js.map +0 -1
- package/dist/hooks-DB6CJ4MR.js.map +0 -1
- package/dist/http-D_6rOnzU.js.map +0 -1
- package/dist/item-DjCcM18E.js +0 -277
- package/dist/item-DjCcM18E.js.map +0 -1
- package/dist/layout.types-Cn7aUzJp.js +0 -20
- package/dist/layout.types-Cn7aUzJp.js.map +0 -1
- package/dist/media-gallery-C-vChPmE.js +0 -203
- package/dist/media-gallery-C-vChPmE.js.map +0 -1
- package/dist/mentions-0_4nWuI-.js +0 -570
- package/dist/mentions-0_4nWuI-.js.map +0 -1
- package/dist/message-g8p7eVtN.js +0 -128
- package/dist/message-g8p7eVtN.js.map +0 -1
- package/dist/metadata-list-C3MkU-Om.js.map +0 -1
- package/dist/motion-recipes-DitYv6P2.js.map +0 -1
- package/dist/navigation-C90-oQFq.js +0 -255
- package/dist/navigation-C90-oQFq.js.map +0 -1
- package/dist/navigation-DaRjthVk.js +0 -288
- package/dist/navigation-DaRjthVk.js.map +0 -1
- package/dist/number-CRU3kGuk.js +0 -354
- package/dist/number-CRU3kGuk.js.map +0 -1
- package/dist/overlays-BSgCtM2v.js.map +0 -1
- package/dist/page-DUUKDAjo.js +0 -331
- package/dist/page-DUUKDAjo.js.map +0 -1
- package/dist/pagination-CgCjElfu.js.map +0 -1
- package/dist/popover-B85RenIl.js +0 -201
- package/dist/popover-B85RenIl.js.map +0 -1
- package/dist/primitives-ByWgGUgt.js +0 -380
- package/dist/primitives-ByWgGUgt.js.map +0 -1
- package/dist/receipt-tOc7B3hw.js +0 -116
- package/dist/receipt-tOc7B3hw.js.map +0 -1
- package/dist/rich-text-Dth5E882.js +0 -78
- package/dist/rich-text-Dth5E882.js.map +0 -1
- package/dist/rich-text-editor-C1fOjBTd.js +0 -1195
- package/dist/rich-text-editor-C1fOjBTd.js.map +0 -1
- package/dist/rich-text-editor-toolbar-laT3tpBT.js +0 -98
- package/dist/rich-text-editor-toolbar-laT3tpBT.js.map +0 -1
- package/dist/sanitize-html-DsQmI48u.js +0 -92
- package/dist/sanitize-html-DsQmI48u.js.map +0 -1
- package/dist/separator-Ct_WSWTJ.js.map +0 -1
- package/dist/settings-Bar5wiSo.js +0 -167
- package/dist/settings-Bar5wiSo.js.map +0 -1
- package/dist/sheet-BGPERY55.js +0 -250
- package/dist/sheet-BGPERY55.js.map +0 -1
- package/dist/sidebar-D-JYMMbY.js +0 -686
- package/dist/sidebar-D-JYMMbY.js.map +0 -1
- package/dist/sidebar-f9gRWXIR.js.map +0 -1
- package/dist/skeleton-BapcJd9C.js.map +0 -1
- package/dist/slot-CLF9kLrS.js +0 -16
- package/dist/slot-CLF9kLrS.js.map +0 -1
- package/dist/smart-card-CW0hjetE.js.map +0 -1
- package/dist/surface-recipes-BKRVW8Os.js.map +0 -1
- package/dist/table-B4TE7iOV.js +0 -175
- package/dist/table-B4TE7iOV.js.map +0 -1
- package/dist/table-CFOWY9pQ.js +0 -1536
- package/dist/table-CFOWY9pQ.js.map +0 -1
- package/dist/tabs-e7ko9S2o.js +0 -191
- package/dist/tabs-e7ko9S2o.js.map +0 -1
- package/dist/text-inputs-B1culiSK.js.map +0 -1
- package/dist/timelines-D3Sl9ueq.js +0 -458
- package/dist/timelines-D3Sl9ueq.js.map +0 -1
- package/dist/tooltip-8wz5S_Zr.js +0 -113
- package/dist/tooltip-8wz5S_Zr.js.map +0 -1
- package/dist/tree-CzUJHnFs.js.map +0 -1
- package/dist/typography-BQnine1k.js.map +0 -1
- package/dist/ui-provider-C-74NVLc.js.map +0 -1
- package/dist/upload-BOW6U2tI.js +0 -855
- package/dist/upload-BOW6U2tI.js.map +0 -1
- package/dist/upload-queue-qUXn1ykN.js +0 -409
- package/dist/upload-queue-qUXn1ykN.js.map +0 -1
- package/dist/usage-card-BeSLY0i0.js.map +0 -1
- package/dist/utils-B6kKb8jB.js.map +0 -1
- package/dist/value-inputs-skdVB2zh.js +0 -980
- package/dist/value-inputs-skdVB2zh.js.map +0 -1
- package/dist/value-typography-uAmWUAL1.js +0 -116
- package/dist/value-typography-uAmWUAL1.js.map +0 -1
- package/dist/workspace-DHeHv0qw.js +0 -411
- package/dist/workspace-DHeHv0qw.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-view.js","names":["_Fragment","NumberValue","Text","Grid","Stack","SecondaryValue","Number$1","TabsTrigger","TabsList","Tabs","PopoverMenu","FilterOperatorEnum","getDefaultOperatorForType","FilterType","useFilters","FilterLayout","FilterProvider","Fragment$1","defaultDataViewPaginationStrings","defaultDataViewFilterTabsLabel","getPathValue","path","current","part","row","stringifyFilterValue","value","collectSearchText","depth","entry","normalizeCandidateValues","stringified","toComparableNumber","next","toComparableDate","dateFormat","formattedDate","parse","isValid","nativeDate","matchesComparableOperator","toComparable","filterConfig","candidateNumbers","candidateValues","filterNumbers","filterValues","operator","candidate","fallbackFilterConfig","key","rowMatchesFilter","filter","haystack","resolvedFilterConfig","getFilterValue","applyDataViewFilters","activeFilters","data","filtersByKey","filters","useDataView","onErrorRef","useRef","filtering","lastReportedResultRef","filterRows","hasFiltering","result","useMemo","error","useEffect","useFilterTabState","nonSearchFilters","searchFilters","activeTab","tab","tabs","active","preset","sortedPreset","sortedActive","index","applyTab","presetFilters","DataViewFilterTabSelect","item","Check","Button","label","ChevronsUpDown","DataViewShell","emptyState","cn","className","header","toolbar","contentClassName","emptySlot","children","footer","DataViewToolbar","leading","search","views","actions","DataViewTableFrame","toolbarClassName","footerClassName","DataViewRoot","resolvedFilterTabs","filterTabsDisplay","layoutTabs","showAuxiliaryToolbar","slots","hasIntegratedTopbar","tableNode","DataTable","table","rows","DataView","DataViewPagination","stringsProp","strings","useStrings","hasPrevious","page","hasNext","pageCount","pageLabel","canChangePage","onPageChange","disabled","total","SavedViewTabs","onValueChange","view"],"sources":["../../src/components/features/data-view/data-view.strings.ts","../../src/components/features/data-view/data-view-filtering.ts","../../src/components/features/data-view/hooks/use-data-view.ts","../../src/components/features/data-view/data-view.tsx"],"sourcesContent":["export interface DataViewPaginationStrings {\n\t/** Current page, 1-based. */\n\tpage: string;\n\tprevious: string;\n\tnext: string;\n}\n\nexport const defaultDataViewPaginationStrings: DataViewPaginationStrings = {\n\tpage: 'Page',\n\tprevious: 'Previous',\n\tnext: 'Next',\n};\n\n/** Default for the directly overrideable `filterTabsLabel` control label. */\nexport const defaultDataViewFilterTabsLabel = 'View';\n","import { isValid, parse } from 'date-fns';\n\nimport {\n\tFilterOperatorEnum,\n\tFilterType,\n\ttype ActiveFilter,\n\ttype FilterConfig,\n} from '../filters';\n\nimport type { DataViewFilterValueGetter } from './data-view.types';\n\nfunction getPathValue(row: unknown, path: string): unknown {\n\tif (!path.includes('.')) {\n\t\treturn row && typeof row === 'object'\n\t\t\t? (row as Record<string, unknown>)[path]\n\t\t\t: undefined;\n\t}\n\n\treturn path.split('.').reduce<unknown>((current, part) => {\n\t\tif (!current || typeof current !== 'object') return undefined;\n\t\treturn (current as Record<string, unknown>)[part];\n\t}, row);\n}\n\nfunction stringifyFilterValue(value: unknown): string {\n\tif (value === null || value === undefined) return '';\n\tif (value instanceof Date) return value.toISOString();\n\tif (typeof value === 'string') return value;\n\tif (typeof value === 'number' || typeof value === 'boolean') return String(value);\n\treturn '';\n}\n\nfunction collectSearchText(value: unknown, depth = 0): string {\n\tif (value === null || value === undefined || depth > 2) return '';\n\tif (value instanceof Date) return value.toISOString();\n\tif (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n\t\treturn String(value);\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn value.map((entry) => collectSearchText(entry, depth + 1)).join(' ');\n\t}\n\tif (typeof value === 'object') {\n\t\treturn Object.values(value as Record<string, unknown>)\n\t\t\t.map((entry) => collectSearchText(entry, depth + 1))\n\t\t\t.join(' ');\n\t}\n\treturn '';\n}\n\nfunction normalizeCandidateValues(value: unknown): string[] {\n\tif (Array.isArray(value)) {\n\t\treturn value.map(stringifyFilterValue).filter(Boolean).map((entry) => entry.toLowerCase());\n\t}\n\n\tconst stringified = stringifyFilterValue(value);\n\treturn stringified ? [stringified.toLowerCase()] : [];\n}\n\nfunction toComparableNumber(value: string): number | undefined {\n\tconst next = Number(value);\n\treturn Number.isFinite(next) ? next : undefined;\n}\n\nfunction toComparableDate(value: string, dateFormat?: string): number | undefined {\n\tif (dateFormat) {\n\t\tconst formattedDate = parse(value, dateFormat, new Date(0));\n\t\tif (isValid(formattedDate)) return formattedDate.getTime();\n\t}\n\n\tconst nativeDate = new Date(value);\n\treturn isValid(nativeDate) ? nativeDate.getTime() : undefined;\n}\n\nfunction matchesComparableOperator(\n\tcandidateValues: string[],\n\tfilterValues: string[],\n\toperator: ActiveFilter['operator'],\n\tfilterConfig?: FilterConfig,\n) {\n\tconst toComparable = filterConfig?.type === FilterType.DATE\n\t\t? (value: string) => toComparableDate(value, filterConfig.dateFormat?.param ?? 'yyyy-MM-dd')\n\t\t: toComparableNumber;\n\tconst candidateNumbers = candidateValues\n\t\t.map(toComparable)\n\t\t.filter((value): value is number => value !== undefined);\n\tconst filterNumbers = filterValues\n\t\t.map(toComparable)\n\t\t.filter((value): value is number => value !== undefined);\n\n\tif (candidateNumbers.length === 0 || filterNumbers.length === 0) return false;\n\n\tswitch (operator) {\n\t\tcase FilterOperatorEnum.GT:\n\t\tcase FilterOperatorEnum.AFTER:\n\t\t\treturn candidateNumbers.some((candidate) => candidate > filterNumbers[0]);\n\t\tcase FilterOperatorEnum.GTE:\n\t\t\treturn candidateNumbers.some((candidate) => candidate >= filterNumbers[0]);\n\t\tcase FilterOperatorEnum.LT:\n\t\tcase FilterOperatorEnum.BEFORE:\n\t\t\treturn candidateNumbers.some((candidate) => candidate < filterNumbers[0]);\n\t\tcase FilterOperatorEnum.LTE:\n\t\t\treturn candidateNumbers.some((candidate) => candidate <= filterNumbers[0]);\n\t\tcase FilterOperatorEnum.BETWEEN:\n\t\t\tif (filterNumbers.length < 2) return false;\n\t\t\treturn candidateNumbers.some((candidate) => candidate >= filterNumbers[0] && candidate <= filterNumbers[1]);\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\nfunction fallbackFilterConfig(key: string): FilterConfig {\n\treturn {\n\t\tkey,\n\t\tlabel: key,\n\t\ttype: FilterType.SEARCH,\n\t\ticon: null,\n\t\tdisplayConfig: {},\n\t};\n}\n\nfunction rowMatchesFilter<TData extends object>(\n\trow: TData,\n\tfilter: ActiveFilter,\n\tfilterConfig: FilterConfig | undefined,\n\tgetFilterValue?: DataViewFilterValueGetter<TData>,\n) {\n\tconst filterValues = filter.value.map((value) => value.trim().toLowerCase()).filter(Boolean);\n\tif (filterValues.length === 0) return true;\n\n\tif (filterConfig?.type === FilterType.SEARCH) {\n\t\tconst haystack = collectSearchText(row).toLowerCase();\n\t\tif (\n\t\t\tfilter.operator === FilterOperatorEnum.NOT ||\n\t\t\tfilter.operator === FilterOperatorEnum.NOT_IN\n\t\t) {\n\t\t\treturn filterValues.every((value) => !haystack.includes(value));\n\t\t}\n\t\treturn filterValues.every((value) => haystack.includes(value));\n\t}\n\n\tconst resolvedFilterConfig = filterConfig ?? fallbackFilterConfig(filter.key);\n\tconst rawValue = getFilterValue?.(row, resolvedFilterConfig) ?? getPathValue(row, filter.key);\n\tconst candidateValues = normalizeCandidateValues(rawValue);\n\tif (candidateValues.length === 0) return false;\n\n\tswitch (filter.operator) {\n\t\tcase FilterOperatorEnum.CONTAINS:\n\t\t\treturn filterValues.every((value) =>\n\t\t\t\tcandidateValues.some((candidate) => candidate.includes(value)),\n\t\t\t);\n\t\tcase FilterOperatorEnum.HAS:\n\t\t\treturn filterValues.every((value) => candidateValues.includes(value));\n\t\tcase FilterOperatorEnum.NOT_IN:\n\t\t\treturn filterValues.every((value) =>\n\t\t\t\tcandidateValues.every((candidate) => candidate !== value),\n\t\t\t);\n\t\tcase FilterOperatorEnum.NOT:\n\t\t\tif (\n\t\t\t\tfilterConfig?.type === FilterType.SELECT ||\n\t\t\t\tfilterConfig?.type === FilterType.MULTI_SELECT ||\n\t\t\t\tfilterConfig?.type === FilterType.ASYNC_SELECT\n\t\t\t) {\n\t\t\t\treturn filterValues.every((value) =>\n\t\t\t\t\tcandidateValues.every((candidate) => candidate !== value),\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn filterValues.every((value) =>\n\t\t\t\tcandidateValues.every((candidate) => !candidate.includes(value)),\n\t\t\t);\n\t\tcase FilterOperatorEnum.IN:\n\t\tcase FilterOperatorEnum.EQUALS:\n\t\tcase FilterOperatorEnum.HAS_ANY:\n\t\t\treturn filterValues.some((value) => candidateValues.includes(value));\n\t\tcase FilterOperatorEnum.HAS_ALL:\n\t\t\treturn filterValues.every((value) => candidateValues.includes(value));\n\t\tcase FilterOperatorEnum.GT:\n\t\tcase FilterOperatorEnum.GTE:\n\t\tcase FilterOperatorEnum.LT:\n\t\tcase FilterOperatorEnum.LTE:\n\t\tcase FilterOperatorEnum.BEFORE:\n\t\tcase FilterOperatorEnum.AFTER:\n\t\tcase FilterOperatorEnum.BETWEEN:\n\t\t\treturn matchesComparableOperator(\n\t\t\t\tcandidateValues,\n\t\t\t\tfilterValues,\n\t\t\t\tfilter.operator,\n\t\t\t\tfilterConfig,\n\t\t\t);\n\t\tdefault:\n\t\t\treturn filterValues.some((value) => candidateValues.includes(value));\n\t}\n}\n\nexport function applyDataViewFilters<TData extends object>(\n\tdata: readonly TData[],\n\tactiveFilters: readonly ActiveFilter[],\n\tfilters: readonly FilterConfig[],\n\tgetFilterValue?: DataViewFilterValueGetter<TData>,\n): readonly TData[] {\n\tif (activeFilters.length === 0) return data;\n\n\tconst filtersByKey = new Map(filters.map((filter) => [filter.key, filter]));\n\treturn data.filter((row) =>\n\t\tactiveFilters.every((filter) =>\n\t\t\trowMatchesFilter(row, filter, filtersByKey.get(filter.key), getFilterValue),\n\t\t),\n\t);\n}\n","import { useEffect, useMemo, useRef } from 'react';\n\nimport { applyDataViewFilters } from '../data-view-filtering';\nimport type {\n\tUseDataViewOptions,\n\tUseDataViewResult,\n} from '../data-view.types';\n\nexport function useDataView<TData extends object>({\n\tdata,\n\tfiltering,\n}: UseDataViewOptions<TData>): UseDataViewResult<TData> {\n\tconst onErrorRef = useRef(filtering?.onError);\n\tonErrorRef.current = filtering?.onError;\n\tconst lastReportedResultRef = useRef<UseDataViewResult<TData> | null>(null);\n\tconst activeFilters = filtering?.activeFilters;\n\tconst filterRows = filtering?.filterRows;\n\tconst filters = filtering?.filters;\n\tconst getFilterValue = filtering?.getFilterValue;\n\tconst hasFiltering = filtering !== undefined;\n\n\tconst result = useMemo<UseDataViewResult<TData>>(() => {\n\t\tif (!hasFiltering || !activeFilters || !filters) {\n\t\t\treturn { rows: data, error: null, failed: false };\n\t\t}\n\n\t\ttry {\n\t\t\treturn {\n\t\t\t\trows: filterRows\n\t\t\t\t\t? filterRows({\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\tactiveFilters,\n\t\t\t\t\t\tfilters,\n\t\t\t\t\t})\n\t\t\t\t\t: applyDataViewFilters(\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\tactiveFilters,\n\t\t\t\t\t\tfilters,\n\t\t\t\t\t\tgetFilterValue,\n\t\t\t\t\t),\n\t\t\t\terror: null,\n\t\t\t\tfailed: false,\n\t\t\t};\n\t\t} catch (error) {\n\t\t\treturn { rows: data, error, failed: true };\n\t\t}\n\t}, [\n\t\tactiveFilters,\n\t\tdata,\n\t\tfilterRows,\n\t\tfilters,\n\t\tgetFilterValue,\n\t\thasFiltering,\n\t]);\n\n\tuseEffect(() => {\n\t\tif (!result.failed) {\n\t\t\tlastReportedResultRef.current = null;\n\t\t\treturn;\n\t\t}\n\t\tif (lastReportedResultRef.current === result) return;\n\t\tlastReportedResultRef.current = result;\n\t\tonErrorRef.current?.(result.error, { phase: 'apply' });\n\t}, [result]);\n\n\treturn result;\n}\n","import { Tabs, TabsList, TabsTrigger } from '../../base/navigation/tabs';\n/** DataView feature chrome — controlled shells for tables, filters, and saved views. */\nimport { useMemo } from 'react';\nimport { Check, ChevronsUpDown } from 'lucide-react';\n\nimport { Button } from '../../base/buttons';\nimport { PopoverMenu } from '../../base/popover-menu';\nimport { Grid, Stack } from '../../base/structure';\nimport { DataTable } from '../table';\nimport { Number as NumberValue, SecondaryValue } from '../../primitives';\nimport {\n\tFilterLayout,\n\tFilterOperatorEnum,\n\tFilterProvider,\n\tFilterType,\n\ttype ActiveFilter,\n\ttype FilterTab,\n\tgetDefaultOperatorForType,\n\tuseFilters,\n} from '../filters';\nimport { Text } from '../../typography';\nimport { useStrings } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport { defaultDataViewFilterTabsLabel, defaultDataViewPaginationStrings } from './data-view.strings';\nimport { useDataView } from './hooks';\nimport type {\n\tDataViewFilteringConfig,\n\tDataViewPaginationProps,\n\tDataViewProps,\n\tDataViewShellProps,\n\tDataViewSlots,\n\tDataViewTableOptions,\n\tDataViewTableFrameProps,\n\tDataViewToolbarProps,\n\tSavedViewTabsProps,\n} from './data-view.types';\n\nfunction useFilterTabState(tabs: readonly FilterTab[]) {\n\tconst { activeFilters, filters, replaceFilters } = useFilters();\n\tconst nonSearchFilters = useMemo(\n\t\t() =>\n\t\t\tactiveFilters.filter((filter) => {\n\t\t\t\tconst config = filters.find((candidate) => candidate.key === filter.key);\n\t\t\t\treturn config?.type !== FilterType.SEARCH;\n\t\t\t}),\n\t\t[activeFilters, filters],\n\t);\n\tconst searchFilters = useMemo(\n\t\t() =>\n\t\t\tactiveFilters.filter((filter) => {\n\t\t\t\tconst config = filters.find((candidate) => candidate.key === filter.key);\n\t\t\t\treturn config?.type === FilterType.SEARCH;\n\t\t\t}),\n\t\t[activeFilters, filters],\n\t);\n\tconst activeTab = useMemo(() => {\n\t\tfor (const tab of tabs) {\n\t\t\tif (tab.presets.length === 0) {\n\t\t\t\tif (nonSearchFilters.length === 0) return tab;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (tab.presets.length !== nonSearchFilters.length) continue;\n\n\t\t\tconst allMatch = tab.presets.every((preset) => {\n\t\t\t\tconst active = nonSearchFilters.find((filter) => filter.key === preset.key);\n\t\t\t\tif (!active) return false;\n\n\t\t\t\tconst sortedPreset = [...preset.value].sort();\n\t\t\t\tconst sortedActive = [...active.value].sort();\n\t\t\t\tif (sortedPreset.length !== sortedActive.length) return false;\n\t\t\t\tif (sortedPreset.some((value, index) => value !== sortedActive[index])) return false;\n\n\t\t\t\treturn !preset.operator || active.operator === preset.operator;\n\t\t\t});\n\n\t\t\tif (allMatch) return tab;\n\t\t}\n\n\t\treturn undefined;\n\t}, [nonSearchFilters, tabs]);\n\n\tfunction applyTab(tab: FilterTab) {\n\t\tif (tab.presets.length === 0) {\n\t\t\treplaceFilters([...searchFilters]);\n\t\t\treturn;\n\t\t}\n\n\t\tconst presetFilters: ActiveFilter[] = tab.presets.map((preset) => {\n\t\t\tconst filterConfig = filters.find((filter) => filter.key === preset.key);\n\t\t\tconst operator =\n\t\t\t\tpreset.operator ??\n\t\t\t\tfilterConfig?.operator ??\n\t\t\t\t(filterConfig ? getDefaultOperatorForType(filterConfig.type) : FilterOperatorEnum.EQUALS);\n\n\t\t\treturn {\n\t\t\t\tid: preset.key,\n\t\t\t\tkey: preset.key,\n\t\t\t\tvalue: preset.value,\n\t\t\t\toperator,\n\t\t\t};\n\t\t});\n\n\t\treplaceFilters([...searchFilters, ...presetFilters]);\n\t}\n\n\treturn { activeTab, applyTab };\n}\n\nfunction DataViewFilterTabSelect({\n\ttabs,\n\tlabel = defaultDataViewFilterTabsLabel,\n}: {\n\t/** Tabs to offer, in display order. */\n\ttabs: readonly FilterTab[];\n\t/** Display label. */\n\tlabel?: string;\n}) {\n\tconst { activeTab, applyTab } = useFilterTabState(tabs);\n\tif (tabs.length === 0) return null;\n\n\treturn (\n\t\t<PopoverMenu\n\t\t\tsearch={false}\n\t\t\tcontentClassName=\"w-48\"\n\t\t\titems={tabs.map((tab) => ({\n\t\t\t\tvalue: tab.id,\n\t\t\t\tlabel: tab.label,\n\t\t\t\tdescription: tab.count === undefined ? undefined : String(tab.count),\n\t\t\t\tselected: tab.id === activeTab?.id,\n\t\t\t\tdata: tab,\n\t\t\t}))}\n\t\t\tonSelect={(item) => {\n\t\t\t\tif (item.data) applyTab(item.data);\n\t\t\t}}\n\t\t\trenderItem={(item) => (\n\t\t\t\t<>\n\t\t\t\t\t<span className=\"flex size-icon-sm shrink-0 items-center justify-center\">\n\t\t\t\t\t\t{!!item.selected && <Check className=\"size-icon-sm\" aria-hidden=\"true\" />}\n\t\t\t\t\t</span>\n\t\t\t\t\t<Text tag=\"span\" type=\"inherit\" weight={item.selected ? 'medium' : 'regular'} className=\"min-w-0 flex-1 truncate\">\n\t\t\t\t\t\t{item.label}\n\t\t\t\t\t</Text>\n\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t<SecondaryValue size=\"xs\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t</SecondaryValue>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tclassName=\"h-action-sm px-control-sm\"\n\t\t\t\t\taria-label={label}\n\t\t\t\t>\n\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"truncate text-current\">\n\t\t\t\t\t\t{activeTab?.label ?? label}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<ChevronsUpDown className=\"size-icon-sm\" aria-hidden=\"true\" />\n\t\t\t\t</Button>\n\t\t\t}\n\t\t/>\n\t);\n}\n\nexport function DataViewShell({\n\tchildren,\n\theader,\n\ttoolbar,\n\tfooter,\n\temptySlot,\n\tempty: emptyState = false,\n\tclassName,\n\tcontentClassName,\n}: DataViewShellProps) {\n\treturn (\n\t\t<Stack\n\t\t\trender={<section />}\n\t\t\tgap=\"lg\"\n\t\t\tdata-component=\"data-view-shell\"\n\t\t\tdata-slot=\"data-view-shell\"\n\t\t\tclassName={cn('data-view-shell--component @container/data-view', className)}\n\t\t>\n\t\t\t{!!header && (\n\t\t\t\t<div data-slot=\"data-view-header\" className=\"data-view-shell--header\">\n\t\t\t\t\t{header}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{!!toolbar && (\n\t\t\t\t<div data-slot=\"data-view-toolbar-slot\" className=\"data-view-shell--toolbar\">\n\t\t\t\t\t{toolbar}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div data-slot=\"data-view-content\" className={cn('data-view-shell--content min-w-0', contentClassName)}>\n\t\t\t\t{emptyState ? emptySlot : children}\n\t\t\t</div>\n\t\t\t{!!footer && (\n\t\t\t\t<div data-slot=\"data-view-footer\" className=\"data-view-shell--footer\">\n\t\t\t\t\t{footer}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</Stack>\n\t);\n}\n\nexport function DataViewToolbar({ leading, search, filters, views, actions, className }: DataViewToolbarProps) {\n\treturn (\n\t\t<div\n\t\t\tdata-component=\"data-view-toolbar\"\n\t\t\tdata-slot=\"data-view-toolbar\"\n\t\t\tclassName={cn(\n\t\t\t\t'data-view-toolbar--component box-border rounded-surface border border-border bg-card text-card-foreground p-surface shadow-sm',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"flex min-w-0 flex-col gap-space-lg @2xl/data-view:flex-row @2xl/data-view:items-center @2xl/data-view:justify-between @2xl/data-view:flex-nowrap\">\n\t\t\t\t<Stack\n\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\twrap\n\t\t\t\t\talign=\"center\"\n\t\t\t\t\tgap=\"md\"\n\t\t\t\t\tdata-slot=\"data-view-toolbar-leading\"\n\t\t\t\t\tclassName=\"data-view-toolbar--leading min-w-0 flex-1\"\n\t\t\t\t>\n\t\t\t\t\t{leading}\n\t\t\t\t\t{search}\n\t\t\t\t\t{filters}\n\t\t\t\t\t{views}\n\t\t\t\t</Stack>\n\t\t\t\t{!!actions && (\n\t\t\t\t\t<Stack\n\t\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\t\twrap\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tgap=\"md\"\n\t\t\t\t\t\tdata-slot=\"data-view-toolbar-actions\"\n\t\t\t\t\t\tclassName=\"data-view-toolbar--actions shrink-0\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{actions}\n\t\t\t\t\t</Stack>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport function DataViewTableFrame({\n\ttoolbar,\n\tchildren,\n\tfooter,\n\tclassName,\n\ttoolbarClassName,\n\tcontentClassName,\n\tfooterClassName,\n}: DataViewTableFrameProps) {\n\treturn (\n\t\t<section\n\t\t\tdata-component=\"data-view-table-frame\"\n\t\t\tdata-slot=\"data-view-table-frame\"\n\t\t\tclassName={cn(\n\t\t\t\t'data-view-table-frame--component box-border @container/data-view overflow-hidden rounded-surface border border-border bg-card text-card-foreground shadow-xs',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!!toolbar && (\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"data-view-table-frame-toolbar\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'data-view-table-frame--toolbar border-b border-border/60 px-surface py-surface',\n\t\t\t\t\t\ttoolbarClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<Grid columns={1} gap=\"lg\">\n\t\t\t\t\t\t{toolbar}\n\t\t\t\t\t</Grid>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div\n\t\t\t\tdata-slot=\"data-view-table-frame-content\"\n\t\t\t\tclassName={cn('data-view-table-frame--content min-w-0', contentClassName)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t\t{!!footer && (\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"data-view-table-frame-footer\"\n\t\t\t\t\tclassName={cn('data-view-table-frame--footer border-t border-border/60 px-surface py-row-y', footerClassName)}\n\t\t\t\t>\n\t\t\t\t\t{footer}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</section>\n\t);\n}\n\ninterface DataViewRootProps<TData extends object, TValue> {\n\t/** Records to render. */\n\tdata: readonly TData[];\n\t/** Column definitions, in display order. */\n\tcolumns: DataViewProps<TData, TValue>['columns'];\n\tfiltering?: DataViewFilteringConfig<TData>;\n\ttable?: DataViewTableOptions<TData, TValue>;\n\t/** Replaces individual regions of the shell. */\n\tslots?: DataViewSlots;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n}\n\nfunction DataViewRoot<TData extends object, TValue = unknown>({\n\tdata,\n\tcolumns,\n\tfiltering,\n\ttable,\n\tslots,\n\tclassName,\n}: DataViewRootProps<TData, TValue>) {\n\tconst { rows } = useDataView({ data, filtering });\n\tconst resolvedFilterTabs = filtering?.tabs ?? filtering?.layout?.tabs ?? [];\n\tconst filterTabsDisplay = filtering?.tabsDisplay ?? 'tabs';\n\tconst layoutTabs = filterTabsDisplay === 'tabs' ? resolvedFilterTabs : filtering?.layout?.tabs;\n\tconst showAuxiliaryToolbar =\n\t\t!!slots?.toolbarStart ||\n\t\t!!slots?.toolbarAfterFilters ||\n\t\t(filterTabsDisplay === 'select' && resolvedFilterTabs.length > 0);\n\tconst hasIntegratedTopbar = !!filtering || !!slots?.topbarContent || showAuxiliaryToolbar;\n\tconst tableNode = (\n\t\t<DataViewTableFrame\n\t\t\tclassName={cn('data-view--component', className)}\n\t\t\tcontentClassName=\"data-view--content data-view-table--content\"\n\t\t\tfooterClassName=\"data-view--footer data-view-table--footer\"\n\t\t\tfooter={slots?.footer}\n\t\t>\n\t\t\t<DataTable<TData, TValue>\n\t\t\t\t{...table}\n\t\t\t\tcolumns={columns}\n\t\t\t\tdata={rows as TData[]}\n\t\t\t\tsurface=\"flat\"\n\t\t\t\theaderTransparent={false}\n\t\t\t\ttopbarClassName={cn(\n\t\t\t\t\t'data-view--topbar data-view-table--topbar',\n\t\t\t\t\ttable?.topbarClassName,\n\t\t\t\t)}\n\t\t\t\ttoolbarLabelVisibility={table?.toolbarLabelVisibility ?? 'hidden'}\n\t\t\t\ttopbarContent={\n\t\t\t\t\thasIntegratedTopbar ? (\n\t\t\t\t\t\t<Stack\n\t\t\t\t\t\t\tgap=\"lg\"\n\t\t\t\t\t\t\tdata-slot=\"data-view-topbar-content\"\n\t\t\t\t\t\t\tclassName=\"data-view--topbar-content data-view-table--topbar-content\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{slots?.topbarContent}\n\t\t\t\t\t\t\t{showAuxiliaryToolbar && (\n\t\t\t\t\t\t\t\t<Stack\n\t\t\t\t\t\t\t\t\tdata-slot=\"data-view-toolbar-row\"\n\t\t\t\t\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\t\t\t\t\tgap=\"md\"\n\t\t\t\t\t\t\t\t\tclassName=\"data-view--toolbar-row data-view-table--toolbar-row\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{slots?.toolbarStart}\n\t\t\t\t\t\t\t\t\t{filtering && filterTabsDisplay === 'select' && resolvedFilterTabs.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t<DataViewFilterTabSelect tabs={resolvedFilterTabs} label={filtering.tabsLabel} />\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{slots?.toolbarAfterFilters}\n\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{filtering && (\n\t\t\t\t\t\t\t\t<div data-slot=\"data-view-filters\" className=\"data-view--filters data-view-table--filters min-w-0\">\n\t\t\t\t\t\t\t\t\t<FilterLayout\n\t\t\t\t\t\t\t\t\t\t{...filtering.layout}\n\t\t\t\t\t\t\t\t\t\tvariant={filtering.layout?.variant ?? 'compact'}\n\t\t\t\t\t\t\t\t\t\tshowClearFilters={filtering.layout?.showClearFilters ?? filtering.activeFilters.length > 0}\n\t\t\t\t\t\t\t\t\t\ttabs={layoutTabs}\n\t\t\t\t\t\t\t\t\t\tclassName={cn('min-w-0', filtering.layout?.className)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t) : undefined\n\t\t\t\t}\n\t\t\t\ttopbarEnd={\n\t\t\t\t\t!!(slots?.toolbarEnd || slots?.topbarEnd) && (\n\t\t\t\t\t\t<div data-slot=\"data-view-topbar-end\" className=\"data-view--topbar-end\">\n\t\t\t\t\t\t\t{slots?.toolbarEnd}\n\t\t\t\t\t\t\t{slots?.topbarEnd}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t/>\n\t\t</DataViewTableFrame>\n\t);\n\n\tif (!filtering) return tableNode;\n\n\treturn (\n\t\t<FilterProvider\n\t\t\tfilters={filtering.filters}\n\t\t\tactiveFilters={filtering.activeFilters}\n\t\t\tonFilterChange={filtering.onFilterChange}\n\t\t\tnavigating={filtering.isFiltering ?? false}\n\t\t\tstrings={filtering.strings}\n\t\t\tonError={filtering.onError}\n\t\t>\n\t\t\t{tableNode}\n\t\t</FilterProvider>\n\t);\n}\n\nexport function DataView<TData extends object, TValue = unknown>({\n\tdata,\n\tcolumns,\n\tfiltering,\n\ttable,\n\tslots,\n\tclassName,\n}: DataViewProps<TData, TValue>) {\n\treturn (\n\t\t<DataViewRoot\n\t\t\tdata={data}\n\t\t\tcolumns={columns}\n\t\t\tfiltering={filtering}\n\t\t\ttable={table}\n\t\t\tslots={slots}\n\t\t\tclassName={className}\n\t\t/>\n\t);\n}\n\nexport function DataViewPagination({\n\tpage,\n\tpageCount,\n\ttotal,\n\tonPageChange,\n\tdisabled = false,\n\tclassName,\n\tstrings: stringsProp,\n}: DataViewPaginationProps) {\n\tconst strings = useStrings(defaultDataViewPaginationStrings, stringsProp);\n\tconst hasPrevious = page > 1;\n\tconst hasNext = pageCount === undefined ? true : page < pageCount;\n\tconst pageLabel = pageCount ? `${strings.page} ${page} / ${pageCount}` : `${strings.page} ${page}`;\n\tconst canChangePage = Boolean(onPageChange) && !disabled;\n\n\treturn (\n\t\t<nav\n\t\t\tdata-component=\"data-view-pagination\"\n\t\t\tdata-slot=\"data-view-pagination\"\n\t\t\tclassName={cn('data-view-pagination--component flex min-w-0 flex-col gap-space-md @md/data-view:flex-row @md/data-view:justify-between', className)}\n\t\t\taria-label={strings.page}\n\t\t>\n\t\t\t<div data-slot=\"data-view-pagination-summary\" className=\"data-view-pagination--summary min-w-0\">\n\t\t\t\t{total !== undefined && total !== null && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t{total}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tdata-slot=\"data-view-pagination-controls\"\n\t\t\t\tclassName=\"data-view-pagination--controls flex shrink-0 items-center gap-space-md\"\n\t\t\t>\n\t\t\t\t<SecondaryValue size=\"xs\" className=\"tabular-nums\" aria-label={pageLabel}>\n\t\t\t\t\t{strings.page} <NumberValue value={page} size=\"xs\" align=\"left\" type=\"secondary\" />\n\t\t\t\t\t{pageCount ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{' / '}\n\t\t\t\t\t\t\t<NumberValue value={pageCount} size=\"xs\" align=\"left\" type=\"secondary\" />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : null}\n\t\t\t\t</SecondaryValue>\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\tdisabled={!canChangePage || !hasPrevious}\n\t\t\t\t\tonClick={() => onPageChange?.(page - 1)}\n\t\t\t\t>\n\t\t\t\t\t{strings.previous}\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\tdisabled={!canChangePage || !hasNext}\n\t\t\t\t\tonClick={() => onPageChange?.(page + 1)}\n\t\t\t\t>\n\t\t\t\t\t{strings.next}\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</nav>\n\t);\n}\n\nexport function SavedViewTabs({ views, value, onValueChange, className }: SavedViewTabsProps) {\n\treturn (\n\t\t<Tabs\n\t\t\tdata-component=\"saved-view-tabs\"\n\t\t\tdata-slot=\"saved-view-tabs\"\n\t\t\tclassName={cn('saved-view-tabs--component rounded-radius bg-muted p-space-xs', className)}\n\t\t\tvalue={value}\n onValueChange={next => { if (typeof next === 'string') onValueChange(next); }}\n\t\t>\n <TabsList variant=\"chips\" role=\"group\" aria-orientation={undefined} activateOnFocus>\n\t\t\t{views.map((view) => {\n\t\t\t\tconst active = view.id === value;\n\t\t\t\treturn (\n\t\t\t\t\t<TabsTrigger\n\t\t\t\t\t\tkey={view.id}\n\t\t\t\t\t\tdata-slot=\"saved-view-tab\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\trole=\"button\"\n value={view.id}\n aria-selected={undefined}\n aria-controls={undefined}\n aria-pressed={active}\n\t\t\t\t\t\tdisabled={view.disabled}\n\t\t\t\t\t\tclassName=\"saved-view-tabs--tab gap-space-xs\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"truncate text-current\">\n\t\t\t\t\t\t\t{view.label}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{view.count !== undefined && view.count !== null && (\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"saved-view-tabs--count\">\n\t\t\t\t\t\t\t\t{view.count}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</TabsTrigger>\n\t\t\t\t);\n\t\t\t})}\n </TabsList>\n\t\t</Tabs>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data-view.js","names":["_Fragment","NumberValue","Text","Button","Grid","Stack","surfaceRecipes","regionRecipes","SecondaryValue","Number$1","TabsTrigger","TabsList","Tabs","PopoverMenu","DataTable","resolveDefaultOperator","FilterOperatorEnum","FilterType","useFilters","FilterLayout","FilterProvider","Fragment$1","defaultDataViewPaginationStrings","defaultDataViewFilterTabsLabel","getPathValue","path","current","part","row","stringifyFilterValue","value","collectSearchText","depth","entry","normalizeCandidateValues","stringified","toComparableNumber","next","toComparableDate","dateFormat","formattedDate","parse","isValid","nativeDate","DEFAULT_DATE_PARAM_FORMAT","isDateOnlyFormat","toLocalDay","date","toCalendarDay","fromEpoch","text","formatted","isoDay","instant","matchesCalendarDayOperator","filterConfig","filterDays","filter","day","days","candidateDays","rawValue","candidate","matchesComparableOperator","toComparable","candidateNumbers","candidateValues","filterNumbers","filterValues","operator","fallbackFilterConfig","key","resolveRowValue","getFilterValue","filterKey","rowMatchesFilter","haystack","fieldScopedSearch","resolvedFilterConfig","dayMatch","filterNumber","applyDataViewFilters","activeFilters","data","filtersByKey","filters","fieldScopedSearchKeys","useDataView","onErrorRef","useRef","filtering","lastReportedResultRef","filterRows","hasFiltering","result","useMemo","error","useEffect","useFilterTabState","nonSearchFilters","searchFilters","activeTab","tab","tabs","active","preset","sortedPreset","sortedActive","index","applyTab","presetFilters","DataViewFilterTabSelect","item","Check","label","ChevronsUpDown","DataViewShell","emptyState","cn","className","header","toolbar","contentClassName","emptySlot","children","footer","DataViewToolbar","leading","search","views","actions","DataViewTableFrame","toolbarClassName","footerClassName","DataViewRoot","resolvedFilterTabs","filterTabsDisplay","layoutTabs","showAuxiliaryToolbar","slots","hasIntegratedTopbar","tableNode","table","rows","DataView","DataViewPagination","stringsProp","strings","useStrings","hasPrevious","page","hasNext","pageCount","canChangePage","onPageChange","disabled","total","SavedViewTabs","onValueChange","view"],"sources":["../../src/components/features/data-view/data-view.strings.ts","../../src/components/features/data-view/data-view-filtering.ts","../../src/components/features/data-view/hooks/use-data-view.ts","../../src/components/features/data-view/data-view.tsx"],"sourcesContent":["export interface DataViewPaginationStrings {\n\t/** Word before the current page number, as in \"Page 2 / 10\". */\n\tpage: string;\n\tprevious: string;\n\tnext: string;\n\t/** Accessible name of the pagination landmark. */\n\tnavigationLabel?: string;\n}\n\nexport const defaultDataViewPaginationStrings = {\n\tpage: 'Page',\n\tprevious: 'Previous',\n\tnext: 'Next',\n\tnavigationLabel: 'Pagination',\n} satisfies DataViewPaginationStrings;\n\n/** Default for the directly overrideable `filterTabsLabel` control label. */\nexport const defaultDataViewFilterTabsLabel = 'View';\n","import { isValid, parse } from 'date-fns';\n\nimport {\n\tFilterOperatorEnum,\n\tFilterType,\n\ttype ActiveFilter,\n\ttype FilterConfig,\n} from '../filters';\n\nimport type { DataViewFilterValueGetter } from './data-view.types';\n\nfunction getPathValue(row: unknown, path: string): unknown {\n\tif (!path.includes('.')) {\n\t\treturn row && typeof row === 'object'\n\t\t\t? (row as Record<string, unknown>)[path]\n\t\t\t: undefined;\n\t}\n\n\treturn path.split('.').reduce<unknown>((current, part) => {\n\t\tif (!current || typeof current !== 'object') return undefined;\n\t\treturn (current as Record<string, unknown>)[part];\n\t}, row);\n}\n\nfunction stringifyFilterValue(value: unknown): string {\n\tif (value === null || value === undefined) return '';\n\tif (value instanceof Date) return value.toISOString();\n\tif (typeof value === 'string') return value;\n\tif (typeof value === 'number' || typeof value === 'boolean') return String(value);\n\treturn '';\n}\n\nfunction collectSearchText(value: unknown, depth = 0): string {\n\tif (value === null || value === undefined || depth > 2) return '';\n\tif (value instanceof Date) return value.toISOString();\n\tif (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n\t\treturn String(value);\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn value.map((entry) => collectSearchText(entry, depth + 1)).join(' ');\n\t}\n\tif (typeof value === 'object') {\n\t\treturn Object.values(value as Record<string, unknown>)\n\t\t\t.map((entry) => collectSearchText(entry, depth + 1))\n\t\t\t.join(' ');\n\t}\n\treturn '';\n}\n\nfunction normalizeCandidateValues(value: unknown): string[] {\n\tif (Array.isArray(value)) {\n\t\treturn value.map(stringifyFilterValue).filter(Boolean).map((entry) => entry.toLowerCase());\n\t}\n\n\tconst stringified = stringifyFilterValue(value);\n\treturn stringified ? [stringified.toLowerCase()] : [];\n}\n\nfunction toComparableNumber(value: string): number | undefined {\n\tconst next = Number(value);\n\treturn Number.isFinite(next) ? next : undefined;\n}\n\nfunction toComparableDate(value: string, dateFormat?: string): number | undefined {\n\tif (dateFormat) {\n\t\tconst formattedDate = parse(value, dateFormat, new Date(0));\n\t\tif (isValid(formattedDate)) return formattedDate.getTime();\n\t}\n\n\tconst nativeDate = new Date(value);\n\treturn isValid(nativeDate) ? nativeDate.getTime() : undefined;\n}\n\nconst DEFAULT_DATE_PARAM_FORMAT = 'yyyy-MM-dd';\n\n/** Whether a date-fns pattern names a calendar day only, with no time of day. */\nfunction isDateOnlyFormat(dateFormat: string): boolean {\n\treturn !/[HhKkmsSaBbXxtTpzO]/.test(dateFormat.replace(/'[^']*'/g, ''));\n}\n\nfunction toLocalDay(date: Date): number {\n\treturn date.getFullYear() * 10_000 + (date.getMonth() + 1) * 100 + date.getDate();\n}\n\n/**\n * The calendar day a value falls on, as a sortable `yyyymmdd` number. A\n * date-only string names its day directly; a timestamp or `Date` falls on the\n * day it has in the runtime's local timezone.\n */\nfunction toCalendarDay(value: unknown, dateFormat: string): number | undefined {\n\tif (value instanceof Date) return isValid(value) ? toLocalDay(value) : undefined;\n\tif (typeof value === 'number') {\n\t\tconst fromEpoch = new Date(value);\n\t\treturn isValid(fromEpoch) ? toLocalDay(fromEpoch) : undefined;\n\t}\n\tif (typeof value !== 'string') return undefined;\n\n\tconst text = value.trim();\n\tif (!text) return undefined;\n\tconst formatted = parse(text, dateFormat, new Date(0));\n\tif (isValid(formatted)) return toLocalDay(formatted);\n\tconst isoDay = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(text);\n\tif (isoDay) return Number(isoDay[1]) * 10_000 + Number(isoDay[2]) * 100 + Number(isoDay[3]);\n\tconst instant = new Date(text);\n\treturn isValid(instant) ? toLocalDay(instant) : undefined;\n}\n\n/**\n * Day-granular matching for a DATE filter whose values are date-only. Returns\n * `undefined` when the filter is not date-only or the operator is not a date\n * comparison, so the caller falls back to its general matching.\n */\nfunction matchesCalendarDayOperator(\n\trawValue: unknown,\n\tfilter: ActiveFilter,\n\tfilterConfig: FilterConfig,\n): boolean | undefined {\n\tconst dateFormat = filterConfig.dateFormat?.param ?? DEFAULT_DATE_PARAM_FORMAT;\n\tif (!isDateOnlyFormat(dateFormat)) return undefined;\n\n\tconst filterDays = filter.value\n\t\t.filter((value) => value.trim())\n\t\t.map((value) => toCalendarDay(value, dateFormat));\n\tif (filterDays.length === 0 || filterDays.some((day) => day === undefined)) return undefined;\n\tconst days = filterDays as number[];\n\tconst candidateDays = (Array.isArray(rawValue) ? rawValue : [rawValue])\n\t\t.map((value) => toCalendarDay(value, dateFormat))\n\t\t.filter((day): day is number => day !== undefined);\n\n\tswitch (filter.operator) {\n\t\tcase FilterOperatorEnum.EQUALS:\n\t\tcase FilterOperatorEnum.IN:\n\t\t\treturn candidateDays.some((candidate) => days.includes(candidate));\n\t\tcase FilterOperatorEnum.GT:\n\t\tcase FilterOperatorEnum.AFTER:\n\t\t\treturn candidateDays.some((candidate) => candidate > days[0]);\n\t\tcase FilterOperatorEnum.GTE:\n\t\t\treturn candidateDays.some((candidate) => candidate >= days[0]);\n\t\tcase FilterOperatorEnum.LT:\n\t\tcase FilterOperatorEnum.BEFORE:\n\t\t\treturn candidateDays.some((candidate) => candidate < days[0]);\n\t\tcase FilterOperatorEnum.LTE:\n\t\t\treturn candidateDays.some((candidate) => candidate <= days[0]);\n\t\tcase FilterOperatorEnum.BETWEEN:\n\t\t\tif (days.length < 2) return false;\n\t\t\treturn candidateDays.some((candidate) => candidate >= days[0] && candidate <= days[1]);\n\t\tdefault:\n\t\t\treturn undefined;\n\t}\n}\n\nfunction matchesComparableOperator(\n\tcandidateValues: string[],\n\tfilterValues: string[],\n\toperator: ActiveFilter['operator'],\n\tfilterConfig?: FilterConfig,\n) {\n\tconst toComparable = filterConfig?.type === FilterType.DATE\n\t\t? (value: string) => toComparableDate(value, filterConfig.dateFormat?.param ?? DEFAULT_DATE_PARAM_FORMAT)\n\t\t: toComparableNumber;\n\tconst candidateNumbers = candidateValues\n\t\t.map(toComparable)\n\t\t.filter((value): value is number => value !== undefined);\n\tconst filterNumbers = filterValues\n\t\t.map(toComparable)\n\t\t.filter((value): value is number => value !== undefined);\n\n\tif (candidateNumbers.length === 0 || filterNumbers.length === 0) return false;\n\n\tswitch (operator) {\n\t\tcase FilterOperatorEnum.GT:\n\t\tcase FilterOperatorEnum.AFTER:\n\t\t\treturn candidateNumbers.some((candidate) => candidate > filterNumbers[0]);\n\t\tcase FilterOperatorEnum.GTE:\n\t\t\treturn candidateNumbers.some((candidate) => candidate >= filterNumbers[0]);\n\t\tcase FilterOperatorEnum.LT:\n\t\tcase FilterOperatorEnum.BEFORE:\n\t\t\treturn candidateNumbers.some((candidate) => candidate < filterNumbers[0]);\n\t\tcase FilterOperatorEnum.LTE:\n\t\t\treturn candidateNumbers.some((candidate) => candidate <= filterNumbers[0]);\n\t\tcase FilterOperatorEnum.BETWEEN:\n\t\t\tif (filterNumbers.length < 2) return false;\n\t\t\treturn candidateNumbers.some((candidate) => candidate >= filterNumbers[0] && candidate <= filterNumbers[1]);\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\nfunction fallbackFilterConfig(key: string): FilterConfig {\n\treturn {\n\t\tkey,\n\t\tlabel: key,\n\t\ttype: FilterType.SEARCH,\n\t\ticon: null,\n\t\tdisplayConfig: {},\n\t};\n}\n\nfunction resolveRowValue<TData extends object>(\n\trow: TData,\n\tfilterKey: string,\n\tfilterConfig: FilterConfig,\n\tgetFilterValue?: DataViewFilterValueGetter<TData>,\n): unknown {\n\treturn getFilterValue?.(row, filterConfig) ?? getPathValue(row, filterKey);\n}\n\nfunction rowMatchesFilter<TData extends object>(\n\trow: TData,\n\tfilter: ActiveFilter,\n\tfilterConfig: FilterConfig | undefined,\n\tgetFilterValue?: DataViewFilterValueGetter<TData>,\n\tfieldScopedSearch = false,\n) {\n\tconst filterValues = filter.value.map((value) => value.trim().toLowerCase()).filter(Boolean);\n\tif (filterValues.length === 0) return true;\n\n\tif (filterConfig?.type === FilterType.SEARCH) {\n\t\t// A search filter whose key names a field reads that field only; a\n\t\t// free-standing key such as `q` searches the whole row.\n\t\tconst haystack = collectSearchText(\n\t\t\tfieldScopedSearch ? resolveRowValue(row, filter.key, filterConfig, getFilterValue) : row,\n\t\t).toLowerCase();\n\t\tif (\n\t\t\tfilter.operator === FilterOperatorEnum.NOT ||\n\t\t\tfilter.operator === FilterOperatorEnum.NOT_IN\n\t\t) {\n\t\t\treturn filterValues.every((value) => !haystack.includes(value));\n\t\t}\n\t\treturn filterValues.every((value) => haystack.includes(value));\n\t}\n\n\tconst resolvedFilterConfig = filterConfig ?? fallbackFilterConfig(filter.key);\n\tconst rawValue = resolveRowValue(row, filter.key, resolvedFilterConfig, getFilterValue);\n\tif (resolvedFilterConfig.type === FilterType.DATE) {\n\t\tconst dayMatch = matchesCalendarDayOperator(rawValue, filter, resolvedFilterConfig);\n\t\tif (dayMatch !== undefined) return dayMatch;\n\t}\n\tconst candidateValues = normalizeCandidateValues(rawValue);\n\tif (candidateValues.length === 0) return false;\n\n\tswitch (filter.operator) {\n\t\tcase FilterOperatorEnum.CONTAINS:\n\t\t\treturn filterValues.every((value) =>\n\t\t\t\tcandidateValues.some((candidate) => candidate.includes(value)),\n\t\t\t);\n\t\tcase FilterOperatorEnum.HAS:\n\t\t\treturn filterValues.every((value) => candidateValues.includes(value));\n\t\tcase FilterOperatorEnum.NOT_IN:\n\t\t\treturn filterValues.every((value) =>\n\t\t\t\tcandidateValues.every((candidate) => candidate !== value),\n\t\t\t);\n\t\tcase FilterOperatorEnum.NOT:\n\t\t\tif (\n\t\t\t\tfilterConfig?.type === FilterType.SELECT ||\n\t\t\t\tfilterConfig?.type === FilterType.MULTI_SELECT ||\n\t\t\t\tfilterConfig?.type === FilterType.ASYNC_SELECT\n\t\t\t) {\n\t\t\t\treturn filterValues.every((value) =>\n\t\t\t\t\tcandidateValues.every((candidate) => candidate !== value),\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn filterValues.every((value) =>\n\t\t\t\tcandidateValues.every((candidate) => !candidate.includes(value)),\n\t\t\t);\n\t\tcase FilterOperatorEnum.IN:\n\t\tcase FilterOperatorEnum.EQUALS:\n\t\tcase FilterOperatorEnum.HAS_ANY:\n\t\t\tif (filterConfig?.type === FilterType.RANGE) {\n\t\t\t\t// \"19.90\" equals 19.9: numbers compare by value, not by spelling.\n\t\t\t\tconst candidateNumbers = candidateValues.map(toComparableNumber);\n\t\t\t\tif (filterValues.some((value) => {\n\t\t\t\t\tconst filterNumber = toComparableNumber(value);\n\t\t\t\t\treturn filterNumber !== undefined && candidateNumbers.includes(filterNumber);\n\t\t\t\t})) return true;\n\t\t\t}\n\t\t\treturn filterValues.some((value) => candidateValues.includes(value));\n\t\tcase FilterOperatorEnum.HAS_ALL:\n\t\t\treturn filterValues.every((value) => candidateValues.includes(value));\n\t\tcase FilterOperatorEnum.GT:\n\t\tcase FilterOperatorEnum.GTE:\n\t\tcase FilterOperatorEnum.LT:\n\t\tcase FilterOperatorEnum.LTE:\n\t\tcase FilterOperatorEnum.BEFORE:\n\t\tcase FilterOperatorEnum.AFTER:\n\t\tcase FilterOperatorEnum.BETWEEN:\n\t\t\treturn matchesComparableOperator(\n\t\t\t\tcandidateValues,\n\t\t\t\tfilterValues,\n\t\t\t\tfilter.operator,\n\t\t\t\tfilterConfig,\n\t\t\t);\n\t\tdefault:\n\t\t\treturn filterValues.some((value) => candidateValues.includes(value));\n\t}\n}\n\nexport function applyDataViewFilters<TData extends object>(\n\tdata: readonly TData[],\n\tactiveFilters: readonly ActiveFilter[],\n\tfilters: readonly FilterConfig[],\n\tgetFilterValue?: DataViewFilterValueGetter<TData>,\n): readonly TData[] {\n\tif (activeFilters.length === 0) return data;\n\n\tconst filtersByKey = new Map(filters.map((filter) => [filter.key, filter]));\n\t// Decided once per data set, so sparse rows do not flip a search filter\n\t// between its field and the whole row.\n\tconst fieldScopedSearchKeys = new Set(\n\t\tactiveFilters\n\t\t\t.filter((filter) => {\n\t\t\t\tconst filterConfig = filtersByKey.get(filter.key);\n\t\t\t\treturn filterConfig?.type === FilterType.SEARCH && data.some(\n\t\t\t\t\t(row) => resolveRowValue(row, filter.key, filterConfig, getFilterValue) !== undefined,\n\t\t\t\t);\n\t\t\t})\n\t\t\t.map((filter) => filter.key),\n\t);\n\treturn data.filter((row) =>\n\t\tactiveFilters.every((filter) =>\n\t\t\trowMatchesFilter(\n\t\t\t\trow,\n\t\t\t\tfilter,\n\t\t\t\tfiltersByKey.get(filter.key),\n\t\t\t\tgetFilterValue,\n\t\t\t\tfieldScopedSearchKeys.has(filter.key),\n\t\t\t),\n\t\t),\n\t);\n}\n","import { useEffect, useMemo, useRef } from 'react';\n\nimport { applyDataViewFilters } from '../data-view-filtering';\nimport type {\n\tUseDataViewOptions,\n\tUseDataViewResult,\n} from '../data-view.types';\n\nexport function useDataView<TData extends object>({\n\tdata,\n\tfiltering,\n}: UseDataViewOptions<TData>): UseDataViewResult<TData> {\n\tconst onErrorRef = useRef(filtering?.onError);\n\tonErrorRef.current = filtering?.onError;\n\tconst lastReportedResultRef = useRef<UseDataViewResult<TData> | null>(null);\n\tconst activeFilters = filtering?.activeFilters;\n\tconst filterRows = filtering?.filterRows;\n\tconst filters = filtering?.filters;\n\tconst getFilterValue = filtering?.getFilterValue;\n\tconst hasFiltering = filtering !== undefined;\n\n\tconst result = useMemo<UseDataViewResult<TData>>(() => {\n\t\tif (!hasFiltering || !activeFilters || !filters) {\n\t\t\treturn { rows: data, error: null, failed: false };\n\t\t}\n\n\t\ttry {\n\t\t\treturn {\n\t\t\t\trows: filterRows\n\t\t\t\t\t? filterRows({\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\tactiveFilters,\n\t\t\t\t\t\tfilters,\n\t\t\t\t\t})\n\t\t\t\t\t: applyDataViewFilters(\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\tactiveFilters,\n\t\t\t\t\t\tfilters,\n\t\t\t\t\t\tgetFilterValue,\n\t\t\t\t\t),\n\t\t\t\terror: null,\n\t\t\t\tfailed: false,\n\t\t\t};\n\t\t} catch (error) {\n\t\t\treturn { rows: data, error, failed: true };\n\t\t}\n\t}, [\n\t\tactiveFilters,\n\t\tdata,\n\t\tfilterRows,\n\t\tfilters,\n\t\tgetFilterValue,\n\t\thasFiltering,\n\t]);\n\n\tuseEffect(() => {\n\t\tif (!result.failed) {\n\t\t\tlastReportedResultRef.current = null;\n\t\t\treturn;\n\t\t}\n\t\tif (lastReportedResultRef.current === result) return;\n\t\tlastReportedResultRef.current = result;\n\t\tonErrorRef.current?.(result.error, { phase: 'apply' });\n\t}, [result]);\n\n\treturn result;\n}\n","import { Tabs, TabsList, TabsTrigger } from '../../base/navigation/tabs';\n/** DataView feature chrome — controlled shells for tables, filters, and saved views. */\nimport { useMemo } from 'react';\nimport { Check, ChevronsUpDown } from 'lucide-react';\n\nimport { Button } from '../../base/buttons';\nimport { PopoverMenu } from '../../base/popover-menu';\nimport { Grid, Stack } from '../../base/structure';\nimport { DataTable } from '../table';\nimport { tableRegionInsetClassName } from '../table/table-region.recipes';\nimport { Number as NumberValue, SecondaryValue } from '../../primitives';\nimport {\n\tFilterLayout,\n\tFilterProvider,\n\tFilterType,\n\ttype ActiveFilter,\n\ttype FilterTab,\n\tresolveDefaultOperator,\n\tuseFilters,\n} from '../filters';\nimport { Text } from '../../typography';\nimport { useStrings } from '../../../lib/strings';\nimport { regionRecipes, surfaceRecipes } from '../../../lib/surface-recipes';\nimport { cn } from '../../../lib/utils';\n\nimport { defaultDataViewFilterTabsLabel, defaultDataViewPaginationStrings } from './data-view.strings';\nimport { useDataView } from './hooks';\nimport type {\n\tDataViewFilteringConfig,\n\tDataViewPaginationProps,\n\tDataViewProps,\n\tDataViewShellProps,\n\tDataViewSlots,\n\tDataViewTableOptions,\n\tDataViewTableFrameProps,\n\tDataViewToolbarProps,\n\tSavedViewTabsProps,\n} from './data-view.types';\n\nfunction useFilterTabState(tabs: readonly FilterTab[]) {\n\tconst { activeFilters, filters, replaceFilters } = useFilters();\n\tconst nonSearchFilters = useMemo(\n\t\t() =>\n\t\t\tactiveFilters.filter((filter) => {\n\t\t\t\tconst config = filters.find((candidate) => candidate.key === filter.key);\n\t\t\t\treturn config?.type !== FilterType.SEARCH;\n\t\t\t}),\n\t\t[activeFilters, filters],\n\t);\n\tconst searchFilters = useMemo(\n\t\t() =>\n\t\t\tactiveFilters.filter((filter) => {\n\t\t\t\tconst config = filters.find((candidate) => candidate.key === filter.key);\n\t\t\t\treturn config?.type === FilterType.SEARCH;\n\t\t\t}),\n\t\t[activeFilters, filters],\n\t);\n\tconst activeTab = useMemo(() => {\n\t\tfor (const tab of tabs) {\n\t\t\tif (tab.presets.length === 0) {\n\t\t\t\tif (nonSearchFilters.length === 0) return tab;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (tab.presets.length !== nonSearchFilters.length) continue;\n\n\t\t\tconst allMatch = tab.presets.every((preset) => {\n\t\t\t\tconst active = nonSearchFilters.find((filter) => filter.key === preset.key);\n\t\t\t\tif (!active) return false;\n\n\t\t\t\tconst sortedPreset = [...preset.value].sort();\n\t\t\t\tconst sortedActive = [...active.value].sort();\n\t\t\t\tif (sortedPreset.length !== sortedActive.length) return false;\n\t\t\t\tif (sortedPreset.some((value, index) => value !== sortedActive[index])) return false;\n\n\t\t\t\treturn !preset.operator || active.operator === preset.operator;\n\t\t\t});\n\n\t\t\tif (allMatch) return tab;\n\t\t}\n\n\t\treturn undefined;\n\t}, [nonSearchFilters, tabs]);\n\n\tfunction applyTab(tab: FilterTab) {\n\t\tif (tab.presets.length === 0) {\n\t\t\treplaceFilters([...searchFilters]);\n\t\t\treturn;\n\t\t}\n\n\t\tconst presetFilters: ActiveFilter[] = tab.presets.map((preset) => {\n\t\t\tconst filterConfig = filters.find((filter) => filter.key === preset.key);\n\t\t\t// The shared resolver, so the compact selector agrees with FilterTabs,\n\t\t\t// the editors and the query helpers about a filter's default operator.\n\t\t\tconst operator = preset.operator ?? resolveDefaultOperator(filterConfig);\n\n\t\t\treturn {\n\t\t\t\tid: preset.key,\n\t\t\t\tkey: preset.key,\n\t\t\t\tvalue: preset.value,\n\t\t\t\toperator,\n\t\t\t};\n\t\t});\n\n\t\treplaceFilters([...searchFilters, ...presetFilters]);\n\t}\n\n\treturn { activeTab, applyTab };\n}\n\nfunction DataViewFilterTabSelect({\n\ttabs,\n\tlabel = defaultDataViewFilterTabsLabel,\n}: {\n\t/** Tabs to offer, in display order. */\n\ttabs: readonly FilterTab[];\n\t/** Display label. */\n\tlabel?: string;\n}) {\n\tconst { activeTab, applyTab } = useFilterTabState(tabs);\n\tif (tabs.length === 0) return null;\n\n\treturn (\n\t\t<PopoverMenu\n\t\t\tsearch={false}\n\t\t\tcontentClassName=\"w-48\"\n\t\t\titems={tabs.map((tab) => ({\n\t\t\t\tvalue: tab.id,\n\t\t\t\tlabel: tab.label,\n\t\t\t\tdescription: tab.count === undefined ? undefined : String(tab.count),\n\t\t\t\tselected: tab.id === activeTab?.id,\n\t\t\t\tdata: tab,\n\t\t\t}))}\n\t\t\tonSelect={(item) => {\n\t\t\t\tif (item.data) applyTab(item.data);\n\t\t\t}}\n\t\t\trenderItem={(item) => (\n\t\t\t\t<>\n\t\t\t\t\t<span className=\"flex size-icon-sm shrink-0 items-center justify-center\">\n\t\t\t\t\t\t{!!item.selected && <Check className=\"size-icon-sm\" aria-hidden=\"true\" />}\n\t\t\t\t\t</span>\n\t\t\t\t\t<Text tag=\"span\" type=\"inherit\" weight={item.selected ? 'medium' : 'regular'} className=\"min-w-0 flex-1 truncate\">\n\t\t\t\t\t\t{item.label}\n\t\t\t\t\t</Text>\n\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t<SecondaryValue size=\"xs\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t</SecondaryValue>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tclassName=\"h-action-sm px-control-sm\"\n\t\t\t\t\taria-label={label}\n\t\t\t\t>\n\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"truncate text-current\">\n\t\t\t\t\t\t{activeTab?.label ?? label}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<ChevronsUpDown className=\"size-icon-sm\" aria-hidden=\"true\" />\n\t\t\t\t</Button>\n\t\t\t}\n\t\t/>\n\t);\n}\n\nexport function DataViewShell({\n\tchildren,\n\theader,\n\ttoolbar,\n\tfooter,\n\temptySlot,\n\tempty: emptyState = false,\n\tclassName,\n\tcontentClassName,\n}: DataViewShellProps) {\n\treturn (\n\t\t<Stack\n\t\t\trender={<section />}\n\t\t\tgap=\"lg\"\n\t\t\tdata-component=\"data-view-shell\"\n\t\t\tdata-slot=\"data-view-shell\"\n\t\t\tclassName={cn('data-view-shell--component @container/data-view', className)}\n\t\t>\n\t\t\t{!!header && (\n\t\t\t\t<div data-slot=\"data-view-header\" className=\"data-view-shell--header\">\n\t\t\t\t\t{header}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{!!toolbar && (\n\t\t\t\t<div data-slot=\"data-view-toolbar-slot\" className=\"data-view-shell--toolbar\">\n\t\t\t\t\t{toolbar}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div data-slot=\"data-view-content\" className={cn('data-view-shell--content min-w-0', contentClassName)}>\n\t\t\t\t{emptyState ? emptySlot : children}\n\t\t\t</div>\n\t\t\t{!!footer && (\n\t\t\t\t<div data-slot=\"data-view-footer\" className=\"data-view-shell--footer\">\n\t\t\t\t\t{footer}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</Stack>\n\t);\n}\n\nexport function DataViewToolbar({ leading, search, filters, views, actions, className }: DataViewToolbarProps) {\n\treturn (\n\t\t<div\n\t\t\tdata-component=\"data-view-toolbar\"\n\t\t\tdata-slot=\"data-view-toolbar\"\n\t\t\tclassName={cn(\n\t\t\t\t'data-view-toolbar--component box-border p-surface',\n\t\t\t\tsurfaceRecipes.frame,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"flex min-w-0 flex-col gap-space-lg @2xl/data-view:flex-row @2xl/data-view:items-center @2xl/data-view:justify-between @2xl/data-view:flex-nowrap\">\n\t\t\t\t<Stack\n\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\twrap\n\t\t\t\t\talign=\"center\"\n\t\t\t\t\tgap=\"md\"\n\t\t\t\t\tdata-slot=\"data-view-toolbar-leading\"\n\t\t\t\t\tclassName=\"data-view-toolbar--leading min-w-0 flex-1\"\n\t\t\t\t>\n\t\t\t\t\t{leading}\n\t\t\t\t\t{search}\n\t\t\t\t\t{filters}\n\t\t\t\t\t{views}\n\t\t\t\t</Stack>\n\t\t\t\t{!!actions && (\n\t\t\t\t\t<Stack\n\t\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\t\twrap\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tgap=\"md\"\n\t\t\t\t\t\tdata-slot=\"data-view-toolbar-actions\"\n\t\t\t\t\t\tclassName=\"data-view-toolbar--actions shrink-0\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{actions}\n\t\t\t\t\t</Stack>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport function DataViewTableFrame({\n\ttoolbar,\n\tchildren,\n\tfooter,\n\tclassName,\n\ttoolbarClassName,\n\tcontentClassName,\n\tfooterClassName,\n}: DataViewTableFrameProps) {\n\treturn (\n\t\t<section\n\t\t\tdata-component=\"data-view-table-frame\"\n\t\t\tdata-slot=\"data-view-table-frame\"\n\t\t\tclassName={cn(\n\t\t\t\t'data-view-table-frame--component box-border @container/data-view overflow-hidden',\n\t\t\t\tsurfaceRecipes.frame,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!!toolbar && (\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"data-view-table-frame-toolbar\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'data-view-table-frame--toolbar py-surface',\n\t\t\t\t\t\ttableRegionInsetClassName,\n\t\t\t\t\t\tregionRecipes.header,\n\t\t\t\t\t\ttoolbarClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<Grid columns={1} gap=\"lg\">\n\t\t\t\t\t\t{toolbar}\n\t\t\t\t\t</Grid>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div\n\t\t\t\tdata-slot=\"data-view-table-frame-content\"\n\t\t\t\tclassName={cn('data-view-table-frame--content min-w-0', contentClassName)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t\t{!!footer && (\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"data-view-table-frame-footer\"\n\t\t\t\t\tclassName={cn('data-view-table-frame--footer py-row-y', tableRegionInsetClassName, regionRecipes.footer, footerClassName)}\n\t\t\t\t>\n\t\t\t\t\t{footer}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</section>\n\t);\n}\n\ninterface DataViewRootProps<TData extends object, TValue> {\n\t/** Records to render. */\n\tdata: readonly TData[];\n\t/** Column definitions, in display order. */\n\tcolumns: DataViewProps<TData, TValue>['columns'];\n\tfiltering?: DataViewFilteringConfig<TData>;\n\ttable?: DataViewTableOptions<TData, TValue>;\n\t/** Replaces individual regions of the shell. */\n\tslots?: DataViewSlots;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n}\n\nfunction DataViewRoot<TData extends object, TValue = unknown>({\n\tdata,\n\tcolumns,\n\tfiltering,\n\ttable,\n\tslots,\n\tclassName,\n}: DataViewRootProps<TData, TValue>) {\n\tconst { rows } = useDataView({ data, filtering });\n\tconst resolvedFilterTabs = filtering?.tabs ?? filtering?.layout?.tabs ?? [];\n\tconst filterTabsDisplay = filtering?.tabsDisplay ?? 'tabs';\n\tconst layoutTabs = filterTabsDisplay === 'tabs' ? resolvedFilterTabs : filtering?.layout?.tabs;\n\tconst showAuxiliaryToolbar =\n\t\t!!slots?.toolbarStart ||\n\t\t!!slots?.toolbarAfterFilters ||\n\t\t(filterTabsDisplay === 'select' && resolvedFilterTabs.length > 0);\n\tconst hasIntegratedTopbar = !!filtering || !!slots?.topbarContent || showAuxiliaryToolbar;\n\tconst tableNode = (\n\t\t<DataViewTableFrame\n\t\t\tclassName={cn('data-view--component', className)}\n\t\t\tcontentClassName=\"data-view--content data-view-table--content\"\n\t\t\tfooterClassName=\"data-view--footer data-view-table--footer\"\n\t\t\tfooter={slots?.footer}\n\t\t>\n\t\t\t<DataTable<TData, TValue>\n\t\t\t\t{...table}\n\t\t\t\tcolumns={columns}\n\t\t\t\tdata={rows as TData[]}\n\t\t\t\tsurface=\"flat\"\n\t\t\t\theaderTransparent={false}\n\t\t\t\ttopbarClassName={cn(\n\t\t\t\t\t'data-view--topbar data-view-table--topbar',\n\t\t\t\t\ttable?.topbarClassName,\n\t\t\t\t)}\n\t\t\t\ttoolbarLabelVisibility={table?.toolbarLabelVisibility ?? 'hidden'}\n\t\t\t\ttopbarContent={\n\t\t\t\t\thasIntegratedTopbar ? (\n\t\t\t\t\t\t<Stack\n\t\t\t\t\t\t\tgap=\"lg\"\n\t\t\t\t\t\t\tdata-slot=\"data-view-topbar-content\"\n\t\t\t\t\t\t\tclassName=\"data-view--topbar-content data-view-table--topbar-content\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{slots?.topbarContent}\n\t\t\t\t\t\t\t{showAuxiliaryToolbar && (\n\t\t\t\t\t\t\t\t<Stack\n\t\t\t\t\t\t\t\t\tdata-slot=\"data-view-toolbar-row\"\n\t\t\t\t\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\t\t\t\t\tgap=\"md\"\n\t\t\t\t\t\t\t\t\tclassName=\"data-view--toolbar-row data-view-table--toolbar-row\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{slots?.toolbarStart}\n\t\t\t\t\t\t\t\t\t{filtering && filterTabsDisplay === 'select' && resolvedFilterTabs.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t<DataViewFilterTabSelect tabs={resolvedFilterTabs} label={filtering.tabsLabel} />\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{slots?.toolbarAfterFilters}\n\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{filtering && (\n\t\t\t\t\t\t\t\t<div data-slot=\"data-view-filters\" className=\"data-view--filters data-view-table--filters min-w-0\">\n\t\t\t\t\t\t\t\t\t<FilterLayout\n\t\t\t\t\t\t\t\t\t\t{...filtering.layout}\n\t\t\t\t\t\t\t\t\t\tvariant={filtering.layout?.variant ?? 'compact'}\n\t\t\t\t\t\t\t\t\t\tshowClearFilters={filtering.layout?.showClearFilters ?? filtering.activeFilters.length > 0}\n\t\t\t\t\t\t\t\t\t\ttabs={layoutTabs}\n\t\t\t\t\t\t\t\t\t\tclassName={cn('min-w-0', filtering.layout?.className)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t) : undefined\n\t\t\t\t}\n\t\t\t\ttopbarEnd={\n\t\t\t\t\t!!(slots?.toolbarEnd || slots?.topbarEnd) && (\n\t\t\t\t\t\t<div data-slot=\"data-view-topbar-end\" className=\"data-view--topbar-end\">\n\t\t\t\t\t\t\t{slots?.toolbarEnd}\n\t\t\t\t\t\t\t{slots?.topbarEnd}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t/>\n\t\t</DataViewTableFrame>\n\t);\n\n\tif (!filtering) return tableNode;\n\n\treturn (\n\t\t<FilterProvider\n\t\t\tfilters={filtering.filters}\n\t\t\tactiveFilters={filtering.activeFilters}\n\t\t\tonFilterChange={filtering.onFilterChange}\n\t\t\tnavigating={filtering.isFiltering ?? false}\n\t\t\tstrings={filtering.strings}\n\t\t\tonError={filtering.onError}\n\t\t>\n\t\t\t{tableNode}\n\t\t</FilterProvider>\n\t);\n}\n\nexport function DataView<TData extends object, TValue = unknown>({\n\tdata,\n\tcolumns,\n\tfiltering,\n\ttable,\n\tslots,\n\tclassName,\n}: DataViewProps<TData, TValue>) {\n\treturn (\n\t\t<DataViewRoot\n\t\t\tdata={data}\n\t\t\tcolumns={columns}\n\t\t\tfiltering={filtering}\n\t\t\ttable={table}\n\t\t\tslots={slots}\n\t\t\tclassName={className}\n\t\t/>\n\t);\n}\n\nexport function DataViewPagination({\n\tpage,\n\tpageCount,\n\ttotal,\n\tonPageChange,\n\tdisabled = false,\n\tclassName,\n\tstrings: stringsProp,\n}: DataViewPaginationProps) {\n\tconst strings = useStrings(defaultDataViewPaginationStrings, stringsProp);\n\tconst hasPrevious = page > 1;\n\tconst hasNext = pageCount === undefined ? true : page < pageCount;\n\tconst canChangePage = Boolean(onPageChange) && !disabled;\n\n\treturn (\n\t\t<nav\n\t\t\tdata-component=\"data-view-pagination\"\n\t\t\tdata-slot=\"data-view-pagination\"\n\t\t\tclassName={cn('data-view-pagination--component flex min-w-0 flex-col gap-space-md @md/data-view:flex-row @md/data-view:justify-between', className)}\n\t\t\taria-label={strings.navigationLabel}\n\t\t>\n\t\t\t<div data-slot=\"data-view-pagination-summary\" className=\"data-view-pagination--summary min-w-0\">\n\t\t\t\t{total !== undefined && total !== null && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t{total}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tdata-slot=\"data-view-pagination-controls\"\n\t\t\t\tclassName=\"data-view-pagination--controls flex shrink-0 items-center gap-space-md\"\n\t\t\t>\n\t\t\t\t<SecondaryValue size=\"xs\" className=\"tabular-nums\">\n\t\t\t\t\t{strings.page} <NumberValue value={page} size=\"xs\" align=\"left\" type=\"secondary\" />\n\t\t\t\t\t{pageCount ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{' / '}\n\t\t\t\t\t\t\t<NumberValue value={pageCount} size=\"xs\" align=\"left\" type=\"secondary\" />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : null}\n\t\t\t\t</SecondaryValue>\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\tdisabled={!canChangePage || !hasPrevious}\n\t\t\t\t\tonClick={() => onPageChange?.(page - 1)}\n\t\t\t\t>\n\t\t\t\t\t{strings.previous}\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\tdisabled={!canChangePage || !hasNext}\n\t\t\t\t\tonClick={() => onPageChange?.(page + 1)}\n\t\t\t\t>\n\t\t\t\t\t{strings.next}\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</nav>\n\t);\n}\n\nexport function SavedViewTabs({ views, value, onValueChange, className }: SavedViewTabsProps) {\n\treturn (\n\t\t<Tabs\n\t\t\tdata-component=\"saved-view-tabs\"\n\t\t\tdata-slot=\"saved-view-tabs\"\n\t\t\tclassName={cn('saved-view-tabs--component rounded-radius bg-muted p-space-xs', className)}\n\t\t\tvalue={value}\n onValueChange={next => { if (typeof next === 'string') onValueChange(next); }}\n\t\t>\n {/* Manual activation: these are toggle buttons, and a view change usually\n refetches, so arrow keys only move focus; Enter, Space or a click selects. */}\n <TabsList variant=\"chips\" role=\"group\" aria-orientation={undefined}>\n\t\t\t{views.map((view) => {\n\t\t\t\tconst active = view.id === value;\n\t\t\t\treturn (\n\t\t\t\t\t<TabsTrigger\n\t\t\t\t\t\tkey={view.id}\n\t\t\t\t\t\tdata-slot=\"saved-view-tab\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\trole=\"button\"\n value={view.id}\n aria-selected={undefined}\n aria-controls={undefined}\n aria-pressed={active}\n\t\t\t\t\t\tdisabled={view.disabled}\n\t\t\t\t\t\tclassName=\"saved-view-tabs--tab gap-space-xs\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"truncate text-current\">\n\t\t\t\t\t\t\t{view.label}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{view.count !== undefined && view.count !== null && (\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"saved-view-tabs--count\">\n\t\t\t\t\t\t\t\t{view.count}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</TabsTrigger>\n\t\t\t\t);\n\t\t\t})}\n </TabsList>\n\t\t</Tabs>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as e, c as t, i as n, o as r, r as i, s as a, t as o, u as s } from "../../http-
|
|
1
|
+
import { a as e, c as t, i as n, o as r, r as i, s as a, t as o, u as s } from "../../http-Cu-GPpss.js";
|
|
2
2
|
export { t as bodyHtml, o as createHttpSender, s as defaultEmailComposerStrings, i as parseRecipient, n as recipientLabel, e as renderEmail, r as resolveValues, a as validate };
|