themelia-react-ui 2.0.3 → 2.0.5
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 +185 -0
- package/README.md +168 -36
- package/dist/{accordion-Cjb6sx0G.js → accordion-B9MHG0cT.js} +11 -11
- package/dist/accordion-B9MHG0cT.js.map +1 -0
- package/dist/action-menu-Dr8K-ghE.js +284 -0
- package/dist/action-menu-Dr8K-ghE.js.map +1 -0
- package/dist/{affordance-geometry.generated-tF36bREk.js → affordance-geometry.generated-P-aVJisu.js} +42 -36
- package/dist/affordance-geometry.generated-P-aVJisu.js.map +1 -0
- package/dist/{ai-artifact-DvTwDVyL.js → ai-artifact-C58tQcBy.js} +387 -350
- package/dist/ai-artifact-C58tQcBy.js.map +1 -0
- package/dist/app-shell-B_IuNWOo.js +321 -0
- package/dist/app-shell-B_IuNWOo.js.map +1 -0
- package/dist/{attachment-BxDfL2mw.js → attachment-Dg_69lPS.js} +9 -9
- package/dist/{attachment-BxDfL2mw.js.map → attachment-Dg_69lPS.js.map} +1 -1
- package/dist/{auth-BGua8ouh.js → auth-DTkkshS8.js} +44 -47
- package/dist/auth-DTkkshS8.js.map +1 -0
- package/dist/{avatar-DAPlDvhJ.js → avatar-CeZaFmNH.js} +8 -8
- package/dist/avatar-CeZaFmNH.js.map +1 -0
- package/dist/{badge-HpFqoqSY.js → badge-xIiV_E7f.js} +5 -5
- package/dist/{badge-HpFqoqSY.js.map → badge-xIiV_E7f.js.map} +1 -1
- 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 +1 -1
- package/dist/base/cards.js +2 -2
- package/dist/base/carousel.js +3 -3
- package/dist/base/cascader.js +2 -372
- 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 +2 -2
- 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 +6 -6
- package/dist/base/feedback.js +3 -3
- package/dist/base/forms-numeric.js +1 -1
- package/dist/base/forms.js +3 -3
- package/dist/base/inline-edit.js +10 -10
- package/dist/base/item.js +1 -1
- package/dist/base/media-gallery.js +1 -1
- 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 +1 -1
- package/dist/base/repeaters.js +12 -12
- package/dist/base/repeaters.js.map +1 -1
- package/dist/base/sheet.js +1 -1
- package/dist/base/sidebar.js +2 -2
- package/dist/base/signature-pad.js +7 -7
- package/dist/base/signature-pad.js.map +1 -1
- package/dist/base/skeleton.js +1 -1
- package/dist/base/spinner.js +4 -4
- package/dist/base/structure.js +1 -1
- package/dist/base/table.js +1 -1
- package/dist/base/text-inputs.js +2 -2
- package/dist/base/toaster.js +36 -36
- package/dist/base/toaster.js.map +1 -1
- package/dist/base/tree.js +1 -1
- package/dist/base/upload-queue.js +1 -1
- package/dist/base/upload.js +3 -3
- package/dist/base/value-inputs.js +1 -1
- package/dist/{batch-action-bar-DnUJ21NQ.js → batch-action-bar-Cb8cuvyy.js} +6 -6
- package/dist/batch-action-bar-Cb8cuvyy.js.map +1 -0
- package/dist/blocks/admin.js +23 -23
- package/dist/blocks/admin.js.map +1 -1
- package/dist/blocks/ai.js +230 -216
- package/dist/blocks/ai.js.map +1 -1
- package/dist/blocks/analytics/usage-card.js +1 -1
- package/dist/blocks/analytics.js +326 -307
- 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 +1247 -1169
- package/dist/blocks/commerce.js.map +1 -1
- package/dist/blocks/data-display.js +2 -2
- package/dist/blocks/onboarding.js +6 -6
- package/dist/blocks/onboarding.js.map +1 -1
- package/dist/blocks/planning.js +11 -11
- package/dist/blocks/timelines.js +1 -1
- package/dist/{breadcrumbs-C-oqs1sQ.js → breadcrumbs-J-K2kl4c.js} +6 -6
- package/dist/{breadcrumbs-C-oqs1sQ.js.map → breadcrumbs-J-K2kl4c.js.map} +1 -1
- package/dist/{button-DVzspB_G.js → button-S2Cubiiz.js} +3 -3
- package/dist/button-S2Cubiiz.js.map +1 -0
- package/dist/{buttons-DPZekJFu.js → buttons-BedGfygC.js} +16 -16
- package/dist/buttons-BedGfygC.js.map +1 -0
- package/dist/cards-rNX1M4Xn.js +69 -0
- package/dist/cards-rNX1M4Xn.js.map +1 -0
- package/dist/cascader-B1MiqkBq.js +439 -0
- package/dist/cascader-B1MiqkBq.js.map +1 -0
- package/dist/chart-Darg_0Kv.js +162 -0
- package/dist/chart-Darg_0Kv.js.map +1 -0
- package/dist/{checkbox-AWIhNhmo.js → checkbox-fflqmODR.js} +9 -5
- package/dist/checkbox-fflqmODR.js.map +1 -0
- package/dist/choice-inputs-zUgBZfE4.js +777 -0
- package/dist/choice-inputs-zUgBZfE4.js.map +1 -0
- package/dist/{code-block-DeneBJR_.js → code-block-BzmM9Eig.js} +9 -9
- package/dist/code-block-BzmM9Eig.js.map +1 -0
- package/dist/{collapsible-C-_l4hpy.js → collapsible-BkAI_XD4.js} +5 -5
- package/dist/{collapsible-C-_l4hpy.js.map → collapsible-BkAI_XD4.js.map} +1 -1
- package/dist/{collection-content-By56pLog.js → collection-content-gDh1v6O4.js} +3 -3
- package/dist/{collection-content-By56pLog.js.map → collection-content-gDh1v6O4.js.map} +1 -1
- package/dist/combobox-BEx0vJgF.js +362 -0
- package/dist/combobox-BEx0vJgF.js.map +1 -0
- package/dist/{combobox-Dxo2fAYQ.js → combobox-BwzoXFSG.js} +254 -247
- package/dist/combobox-BwzoXFSG.js.map +1 -0
- package/dist/{command-C25VMRII.js → command-CrlPIL6m.js} +12 -12
- package/dist/command-CrlPIL6m.js.map +1 -0
- package/dist/{comments-DD0DUPwJ.js → comments-Dmpp0YIc.js} +380 -379
- package/dist/comments-Dmpp0YIc.js.map +1 -0
- package/dist/components/base/action-menu/action-menu.d.ts +9 -1
- package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
- package/dist/components/base/cards/card.recipes.d.ts +16 -7
- package/dist/components/base/cards/partials/card-primitives.d.ts +9 -2
- package/dist/components/base/cards/partials/smart-card-header-row.d.ts +3 -1
- package/dist/components/base/cards/smart-card.types.d.ts +11 -7
- package/dist/components/base/cascader/cascader-panel.d.ts +76 -0
- package/dist/components/base/chart/chart.d.ts +6 -1
- package/dist/components/base/choice-inputs/checkbox.d.ts +7 -2
- package/dist/components/base/choice-inputs/choice-types.d.ts +1 -1
- package/dist/components/base/choice-inputs/switch-card.d.ts +7 -0
- package/dist/components/base/choice-inputs/toggle-field.d.ts +7 -0
- package/dist/components/base/combobox/index.d.ts +4 -2
- package/dist/components/base/date-pickers/datepicker.types.d.ts +7 -0
- package/dist/components/base/feedback/alert.d.ts +1 -1
- package/dist/components/base/forms/controlled-form-field.d.ts +6 -6
- package/dist/components/base/forms/form-field.d.ts +5 -3
- package/dist/components/base/forms/form-sizing.d.ts +7 -7
- package/dist/components/base/forms/index.d.ts +1 -0
- package/dist/components/base/forms/server-errors.d.ts +16 -0
- package/dist/components/base/forms/workflow.d.ts +11 -2
- package/dist/components/base/forms-numeric/coordinates-input.d.ts +4 -0
- package/dist/components/base/metadata-list/metadata-list.d.ts +3 -1
- package/dist/components/base/navigation/dropdown-menu.d.ts +1 -1
- package/dist/components/base/navigation/page-header/page-header-commands.d.ts +14 -7
- package/dist/components/base/navigation/page-header/page-header.d.ts +13 -4
- package/dist/components/base/popover/popover.d.ts +3 -3
- package/dist/components/base/popover/popover.recipes.d.ts +10 -6
- package/dist/components/base/sheet/sheet.d.ts +2 -0
- package/dist/components/base/sidebar/index.d.ts +1 -1
- package/dist/components/base/sidebar/sidebar.d.ts +27 -5
- package/dist/components/base/structure/composition.recipes.d.ts +17 -0
- package/dist/components/base/text-inputs/hooks/use-form-field-state.d.ts +7 -2
- package/dist/components/base/text-inputs/input.d.ts +4 -2
- package/dist/components/base/text-inputs/textarea.d.ts +4 -2
- package/dist/components/base/toaster/index.d.ts +1 -0
- package/dist/components/base/value-inputs/date-time-input.d.ts +2 -1
- package/dist/components/base/value-inputs/slider.d.ts +5 -1
- package/dist/components/base/value-inputs/tags-input.d.ts +5 -1
- package/dist/components/blocks/ai/ai-file-tree/types.d.ts +1 -1
- package/dist/components/blocks/ai/ai-tool-call/types.d.ts +3 -1
- package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
- package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +2 -0
- package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
- package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +1 -1
- package/dist/components/blocks/commerce/cart-summary/types.d.ts +3 -1
- package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +1 -1
- package/dist/components/blocks/commerce/discount-stack/types.d.ts +3 -1
- package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
- package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +11 -2
- package/dist/components/blocks/commerce/index.d.ts +7 -6
- package/dist/components/blocks/commerce/inventory-section/inventory-section.d.ts +1 -1
- package/dist/components/blocks/commerce/inventory-section/types.d.ts +7 -2
- package/dist/components/blocks/commerce/invoice-header/index.d.ts +2 -1
- package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +1 -1
- package/dist/components/blocks/commerce/invoice-header/types.d.ts +20 -6
- package/dist/components/blocks/commerce/invoice-line-items/invoice-line-items.d.ts +1 -1
- package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +24 -7
- package/dist/components/blocks/commerce/invoice-mini/index.d.ts +2 -1
- package/dist/components/blocks/commerce/invoice-mini/types.d.ts +7 -1
- package/dist/components/blocks/commerce/order-customer/order-customer.d.ts +1 -1
- package/dist/components/blocks/commerce/order-customer/types.d.ts +9 -1
- package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +1 -1
- package/dist/components/blocks/commerce/refund-status/types.d.ts +3 -1
- package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +1 -1
- package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +3 -1
- package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +1 -1
- package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +3 -1
- package/dist/components/features/activities/activities.types.d.ts +8 -2
- package/dist/components/features/activities/partials/activity-marker.d.ts +7 -3
- package/dist/components/features/activities/partials/activity-row.d.ts +24 -0
- package/dist/components/features/event-calendar/colors.d.ts +2 -2
- package/dist/components/features/event-calendar/event-calendar.types.d.ts +4 -0
- package/dist/components/features/filters/facets/select-facet.d.ts +2 -1
- package/dist/components/features/filters/filters.strings.d.ts +4 -0
- package/dist/components/features/filters/filters.types.d.ts +3 -0
- package/dist/components/features/filters/partials/filter-editor-header.d.ts +16 -0
- package/dist/components/features/filters/partials/filter-popover-content.d.ts +1 -1
- package/dist/components/features/filters/partials/nested-filter-options.d.ts +21 -0
- package/dist/components/features/filters/partials/regular-filter-content.d.ts +2 -1
- package/dist/components/features/filters/utils/filter-utils.d.ts +21 -3
- package/dist/components/features/global-search/global-search.types.d.ts +2 -0
- package/dist/components/features/global-search/partials/global-search-input.d.ts +10 -0
- package/dist/components/features/global-search/partials/global-search-result-row.d.ts +7 -1
- package/dist/components/features/media-library/media-library.strings.d.ts +2 -0
- package/dist/components/features/media-library/media-library.types.d.ts +14 -4
- package/dist/components/features/media-library/partials/media-library-partials.d.ts +1 -1
- package/dist/components/features/products/components/product-options-matrix.d.ts +1 -1
- package/dist/components/features/products/components/product-variant-editor.d.ts +1 -1
- package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
- package/dist/components/features/products/products.strings.d.ts +9 -1
- package/dist/components/features/products/products.types.d.ts +43 -6
- package/dist/components/features/resource/resource.d.ts +5 -1
- package/dist/components/features/resource/resource.types.d.ts +12 -1
- package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +1 -1
- package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +12 -2
- package/dist/components/features/table/partials/resource-cell.d.ts +22 -5
- package/dist/components/features/table/table.types.d.ts +1 -1
- package/dist/components/layout/app-shell/app-shell.types.d.ts +35 -6
- package/dist/components/layout/app-shell/index.d.ts +1 -1
- package/dist/components/layout/app-shell/shell-regions.d.ts +27 -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/containers/two-column-layout.d.ts +2 -0
- package/dist/components/layout/header/header.recipes.d.ts +6 -0
- package/dist/components/layout/header/header.types.d.ts +6 -6
- package/dist/components/layout/navigation/section-nav/section-nav.d.ts +5 -0
- package/dist/components/layout/page/index.d.ts +2 -1
- package/dist/components/layout/page/page.d.ts +1 -0
- package/dist/components/layout/page/page.strings.d.ts +11 -0
- package/dist/components/layout/page/page.types.d.ts +69 -17
- package/dist/components/layout/page/partials/page-header.d.ts +1 -1
- package/dist/components/layout/settings/settings.d.ts +9 -2
- 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.d.ts +1 -1
- package/dist/components/layout/sidebar/index.d.ts +2 -1
- package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +36 -0
- package/dist/components/layout/sidebar/sidebar.context.d.ts +5 -7
- package/dist/components/layout/sidebar/sidebar.types.d.ts +48 -10
- package/dist/components/layout/sidebar/sidebar.utils.d.ts +9 -1
- package/dist/components/layout/workspace/workspace.types.d.ts +8 -1
- package/dist/components/typography/text.styles.d.ts +26 -1
- package/dist/components/ui/alert-dialog.d.ts +2 -2
- package/dist/components/ui/combobox.d.ts +1 -1
- package/dist/components/ui/dialog.d.ts +2 -2
- package/dist/components/ui/overlay-layer.d.ts +18 -0
- package/dist/components/ui/sheet.d.ts +5 -1
- package/dist/components/ui/sidebar-state.d.ts +82 -0
- package/dist/components/ui/sidebar.d.ts +5 -17
- package/dist/composition.recipes-COdiFhxB.js +19 -0
- package/dist/composition.recipes-COdiFhxB.js.map +1 -0
- package/dist/containers-CIxwbZt5.js +112 -0
- package/dist/containers-CIxwbZt5.js.map +1 -0
- package/dist/{control-group-recipes-DBXmfh2E.js → control-group-recipes-fMuFo0H7.js} +6 -6
- package/dist/control-group-recipes-fMuFo0H7.js.map +1 -0
- package/dist/{copyable-ClBuk_UK.js → copyable-DIznBqiT.js} +7 -7
- package/dist/{copyable-ClBuk_UK.js.map → copyable-DIznBqiT.js.map} +1 -1
- package/dist/{data-display-DT_khPl_.js → data-display-BdgCAw8T.js} +277 -285
- package/dist/data-display-BdgCAw8T.js.map +1 -0
- package/dist/{date-DCrsDTZc.js → date-Cq8ioE4o.js} +5 -5
- package/dist/{date-DCrsDTZc.js.map → date-Cq8ioE4o.js.map} +1 -1
- package/dist/{date-picker-B2K3ucWn.js → date-picker-RlIzKom_.js} +501 -480
- package/dist/date-picker-RlIzKom_.js.map +1 -0
- package/dist/date-pickers-DY-CpXS1.js +179 -0
- package/dist/date-pickers-DY-CpXS1.js.map +1 -0
- package/dist/{display-hAc1HjpI.js → display-KsZLw9Ov.js} +9 -9
- package/dist/{display-hAc1HjpI.js.map → display-KsZLw9Ov.js.map} +1 -1
- package/dist/dropdown-menu-CLs8Lihj.js +194 -0
- package/dist/dropdown-menu-CLs8Lihj.js.map +1 -0
- package/dist/features/activities.js +302 -253
- package/dist/features/activities.js.map +1 -1
- package/dist/features/ai-chat.js +15 -14
- package/dist/features/ai-chat.js.map +1 -1
- package/dist/features/appointment-calendar.js +222 -220
- package/dist/features/appointment-calendar.js.map +1 -1
- package/dist/features/async-preview.js +11 -10
- package/dist/features/async-preview.js.map +1 -1
- package/dist/features/combobox.js +1 -1
- package/dist/features/comments.js +1 -1
- package/dist/features/data-view.js +13 -13
- package/dist/features/data-view.js.map +1 -1
- package/dist/features/email-composer.js +249 -249
- package/dist/features/email-composer.js.map +1 -1
- package/dist/features/event-calendar.js +264 -269
- package/dist/features/event-calendar.js.map +1 -1
- package/dist/features/filters.js +1 -1
- package/dist/features/global-search.js +167 -138
- package/dist/features/global-search.js.map +1 -1
- package/dist/features/kanban.js +6 -7
- package/dist/features/kanban.js.map +1 -1
- package/dist/features/map.js +269 -260
- package/dist/features/map.js.map +1 -1
- package/dist/features/media-library.js +827 -777
- package/dist/features/media-library.js.map +1 -1
- package/dist/features/mentions.js +1 -1
- package/dist/features/overlays.js +1 -1
- package/dist/features/products.js +1246 -1169
- package/dist/features/products.js.map +1 -1
- package/dist/features/questionnaire.js +13 -13
- package/dist/features/questionnaire.js.map +1 -1
- package/dist/features/resource-assignment.js +8 -8
- package/dist/features/resource.js +127 -123
- package/dist/features/resource.js.map +1 -1
- package/dist/features/rich-text-editor.js +2 -2
- package/dist/features/schema-form.js +254 -253
- package/dist/features/schema-form.js.map +1 -1
- package/dist/features/suggestions.js +3 -3
- package/dist/features/sync.js +3 -3
- package/dist/features/table.js +1 -1
- package/dist/features/theme-tweaker.js +95 -96
- package/dist/features/theme-tweaker.js.map +1 -1
- package/dist/{feedback-BYIhtitP.js → feedback-Dm4izqFn.js} +81 -80
- package/dist/feedback-Dm4izqFn.js.map +1 -0
- package/dist/{field-affordance-recipes-DZhnIL_Y.js → field-affordance-recipes-DWcNcOjh.js} +4 -4
- package/dist/field-affordance-recipes-DWcNcOjh.js.map +1 -0
- package/dist/{filters-DJVAveHA.js → filters-DzgSJpMK.js} +693 -645
- package/dist/filters-DzgSJpMK.js.map +1 -0
- package/dist/{form-field-CwH9y77i.js → form-field-BriWAXyg.js} +14 -8
- package/dist/form-field-BriWAXyg.js.map +1 -0
- package/dist/{form-sizing-BdP_Mf5p.js → form-sizing-Bs2qFUeE.js} +4 -4
- package/dist/form-sizing-Bs2qFUeE.js.map +1 -0
- package/dist/forms-C0RGnJTe.js +216 -0
- package/dist/forms-C0RGnJTe.js.map +1 -0
- package/dist/{forms-numeric-B_jraJaQ.js → forms-numeric-DIhghX1Q.js} +295 -291
- package/dist/forms-numeric-DIhghX1Q.js.map +1 -0
- package/dist/{header-BSfIEWbI.js → header-DMMxG__r.js} +67 -63
- package/dist/header-DMMxG__r.js.map +1 -0
- package/dist/header.recipes-BigdJjw1.js +6 -0
- package/dist/header.recipes-BigdJjw1.js.map +1 -0
- package/dist/hooks/useFormErrors.d.ts +1 -1
- package/dist/{hooks-ClH9thn4.js → hooks-DB6CJ4MR.js} +26 -14
- package/dist/hooks-DB6CJ4MR.js.map +1 -0
- package/dist/{icon-badge-DYKIwvOV.js → icon-badge-DZF-YjQp.js} +4 -4
- package/dist/{icon-badge-DYKIwvOV.js.map → icon-badge-DZF-YjQp.js.map} +1 -1
- package/dist/index.js +4 -5
- package/dist/input-CvyDQlY7.js +289 -0
- package/dist/input-CvyDQlY7.js.map +1 -0
- package/dist/input-DMBwAZmr.js +21 -0
- package/dist/input-DMBwAZmr.js.map +1 -0
- package/dist/item-DjCcM18E.js +277 -0
- package/dist/item-DjCcM18E.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 +1 -1
- package/dist/layout/sidebar.js +3 -3
- package/dist/layout/workspace.js +1 -1
- package/dist/layout.js +11 -11
- package/dist/lib/affordance-geometry.generated.d.ts +41 -35
- package/dist/lib/control-group-recipes.d.ts +5 -5
- package/dist/lib/field-affordance-recipes.d.ts +2 -2
- package/dist/lib/motion-recipes.d.ts +3 -0
- package/dist/lib/navigation-row-recipes.d.ts +7 -7
- package/dist/lib/overlay-anatomy-recipes.d.ts +3 -3
- package/dist/lib/portal-recipes.d.ts +3 -0
- package/dist/lib/token-merge.generated.d.ts +13 -10
- package/dist/lib/ui-provider/types.d.ts +1 -1
- package/dist/lib/utils.js +1 -1
- package/dist/map-demo-tile.svg +1 -1
- package/dist/{media-gallery-3zIVLMWH.js → media-gallery-C-vChPmE.js} +6 -6
- package/dist/{media-gallery-3zIVLMWH.js.map → media-gallery-C-vChPmE.js.map} +1 -1
- package/dist/{mentions-CGlEJ15c.js → mentions-0_4nWuI-.js} +10 -10
- package/dist/{mentions-CGlEJ15c.js.map → mentions-0_4nWuI-.js.map} +1 -1
- package/dist/{message-DZ_ruyUV.js → message-g8p7eVtN.js} +7 -7
- package/dist/message-g8p7eVtN.js.map +1 -0
- package/dist/metadata-list-C3MkU-Om.js +443 -0
- package/dist/metadata-list-C3MkU-Om.js.map +1 -0
- package/dist/{motion-recipes-ChBg4HBq.js → motion-recipes-DitYv6P2.js} +10 -2
- package/dist/motion-recipes-DitYv6P2.js.map +1 -0
- package/dist/navigation-C90-oQFq.js +255 -0
- package/dist/navigation-C90-oQFq.js.map +1 -0
- package/dist/{navigation-BzhHI3lo.js → navigation-DaRjthVk.js} +101 -82
- package/dist/navigation-DaRjthVk.js.map +1 -0
- package/dist/{navigation-row-recipes-BFLCk_Aq.js → navigation-row-recipes-BGVLvU_O.js} +9 -9
- package/dist/navigation-row-recipes-BGVLvU_O.js.map +1 -0
- package/dist/{number-DbV1Dija.js → number-CRU3kGuk.js} +5 -5
- package/dist/{number-DbV1Dija.js.map → number-CRU3kGuk.js.map} +1 -1
- package/dist/overflow-tab-bar-IVFVQFV6.js +172 -0
- package/dist/overflow-tab-bar-IVFVQFV6.js.map +1 -0
- package/dist/overlays-BSgCtM2v.js +1013 -0
- package/dist/overlays-BSgCtM2v.js.map +1 -0
- package/dist/page-DUUKDAjo.js +331 -0
- package/dist/page-DUUKDAjo.js.map +1 -0
- package/dist/page-header-commands-7P3sfE9u.js +193 -0
- package/dist/page-header-commands-7P3sfE9u.js.map +1 -0
- package/dist/{pagination-BL25hu2s.js → pagination-CgCjElfu.js} +7 -7
- package/dist/{pagination-BL25hu2s.js.map → pagination-CgCjElfu.js.map} +1 -1
- package/dist/popover-B85RenIl.js +201 -0
- package/dist/popover-B85RenIl.js.map +1 -0
- package/dist/{popover-menu-Cn9rUkdc.js → popover-menu-DlnQ2zlR.js} +7 -7
- package/dist/{popover-menu-Cn9rUkdc.js.map → popover-menu-DlnQ2zlR.js.map} +1 -1
- package/dist/{popover.recipes-D3j8R8Yp.js → popover.recipes-DdiEp0rd.js} +18 -11
- package/dist/popover.recipes-DdiEp0rd.js.map +1 -0
- package/dist/portal-recipes-BpsV_iRw.js +9 -0
- package/dist/portal-recipes-BpsV_iRw.js.map +1 -0
- package/dist/{primitives-BFK08r9M.js → primitives-ByWgGUgt.js} +6 -6
- package/dist/{primitives-BFK08r9M.js.map → primitives-ByWgGUgt.js.map} +1 -1
- package/dist/primitives.js +4 -4
- package/dist/{progress-B1VnCT0K.js → progress-BJhQP9WX.js} +9 -9
- package/dist/{progress-B1VnCT0K.js.map → progress-BJhQP9WX.js.map} +1 -1
- package/dist/{receipt-BVSOH3Xo.js → receipt-tOc7B3hw.js} +7 -7
- package/dist/receipt-tOc7B3hw.js.map +1 -0
- package/dist/{rich-text-GOUyKQ-s.js → rich-text-Dth5E882.js} +4 -4
- package/dist/{rich-text-GOUyKQ-s.js.map → rich-text-Dth5E882.js.map} +1 -1
- package/dist/{rich-text-editor-cRLC-eBK.js → rich-text-editor-C1fOjBTd.js} +429 -430
- package/dist/rich-text-editor-C1fOjBTd.js.map +1 -0
- package/dist/{rich-text-editor-toolbar-DfXg0-VC.js → rich-text-editor-toolbar-laT3tpBT.js} +33 -29
- package/dist/rich-text-editor-toolbar-laT3tpBT.js.map +1 -0
- package/dist/{scroll-area-DcI-M1UT.js → scroll-area-B0dB2cBi.js} +2 -2
- package/dist/{scroll-area-DcI-M1UT.js.map → scroll-area-B0dB2cBi.js.map} +1 -1
- package/dist/{separator-Bom7NsGO.js → separator-Bb17I4pu.js} +2 -2
- package/dist/{separator-Bom7NsGO.js.map → separator-Bb17I4pu.js.map} +1 -1
- package/dist/{separator-BDV-Y648.js → separator-Ct_WSWTJ.js} +3 -3
- package/dist/{separator-BDV-Y648.js.map → separator-Ct_WSWTJ.js.map} +1 -1
- package/dist/services/actions.js +1 -1
- package/dist/settings-Bar5wiSo.js +167 -0
- package/dist/settings-Bar5wiSo.js.map +1 -0
- package/dist/sheet-BGPERY55.js +250 -0
- package/dist/sheet-BGPERY55.js.map +1 -0
- package/dist/sidebar-D-JYMMbY.js +686 -0
- package/dist/sidebar-D-JYMMbY.js.map +1 -0
- package/dist/sidebar-f9gRWXIR.js +1001 -0
- package/dist/sidebar-f9gRWXIR.js.map +1 -0
- package/dist/skeleton-BapcJd9C.js +265 -0
- package/dist/skeleton-BapcJd9C.js.map +1 -0
- package/dist/smart-card-CW0hjetE.js +617 -0
- package/dist/smart-card-CW0hjetE.js.map +1 -0
- package/dist/{structure-BmisBK-3.js → structure-DuxKl954.js} +3 -3
- package/dist/{structure-BmisBK-3.js.map → structure-DuxKl954.js.map} +1 -1
- package/dist/{structure.recipes-EPz60cU8.js → structure.recipes-BB4-n58V.js} +2 -2
- package/dist/{structure.recipes-EPz60cU8.js.map → structure.recipes-BB4-n58V.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/{table-DsfzoUia.js → table-B4TE7iOV.js} +3 -3
- package/dist/{table-DsfzoUia.js.map → table-B4TE7iOV.js.map} +1 -1
- package/dist/{table-BweFy_P9.js → table-CFOWY9pQ.js} +394 -388
- package/dist/table-CFOWY9pQ.js.map +1 -0
- package/dist/{tabs-CDocW5D1.js → tabs-e7ko9S2o.js} +11 -11
- package/dist/tabs-e7ko9S2o.js.map +1 -0
- package/dist/{text-inputs-f9Ia-aCi.js → text-inputs-B1culiSK.js} +107 -104
- package/dist/text-inputs-B1culiSK.js.map +1 -0
- package/dist/{text.styles-g4He6UIW.js → text.styles-B64My8RZ.js} +25 -10
- package/dist/text.styles-B64My8RZ.js.map +1 -0
- package/dist/theme.css +192 -149
- package/dist/{timelines-CwM_9IhD.js → timelines-D3Sl9ueq.js} +13 -12
- package/dist/timelines-D3Sl9ueq.js.map +1 -0
- package/dist/tooltip-8wz5S_Zr.js +113 -0
- package/dist/tooltip-8wz5S_Zr.js.map +1 -0
- package/dist/{tree-WnKQzwbq.js → tree-CzUJHnFs.js} +9 -9
- package/dist/{tree-WnKQzwbq.js.map → tree-CzUJHnFs.js.map} +1 -1
- package/dist/typography/rich-text.js +1 -1
- package/dist/typography-BQnine1k.js +117 -0
- package/dist/typography-BQnine1k.js.map +1 -0
- package/dist/typography.js +1 -1
- package/dist/ui-provider-C-74NVLc.js +178 -0
- package/dist/ui-provider-C-74NVLc.js.map +1 -0
- package/dist/ui-provider.js +2 -3
- package/dist/{upload-CXyxmQBP.js → upload-BOW6U2tI.js} +25 -24
- package/dist/upload-BOW6U2tI.js.map +1 -0
- package/dist/{upload-queue-Boscubn9.js → upload-queue-qUXn1ykN.js} +16 -14
- package/dist/upload-queue-qUXn1ykN.js.map +1 -0
- package/dist/{usage-card-BhO5eqkX.js → usage-card-BeSLY0i0.js} +145 -137
- package/dist/usage-card-BeSLY0i0.js.map +1 -0
- package/dist/{utils-BRhFDwuU.js → utils-B6kKb8jB.js} +303 -144
- package/dist/utils-B6kKb8jB.js.map +1 -0
- package/dist/value-inputs-skdVB2zh.js +980 -0
- package/dist/value-inputs-skdVB2zh.js.map +1 -0
- package/dist/{value-typography-BP8OG6h5.js → value-typography-uAmWUAL1.js} +2 -2
- package/dist/{value-typography-BP8OG6h5.js.map → value-typography-uAmWUAL1.js.map} +1 -1
- package/dist/workspace-DHeHv0qw.js +411 -0
- package/dist/workspace-DHeHv0qw.js.map +1 -0
- package/docs/consumer-skill/SKILL.md +15 -129
- package/docs/consumer-skill/agents/themelia-ui-designer.md +96 -0
- package/docs/consumer-skill/examples/app-layout.tsx +74 -13
- package/docs/consumer-skill/examples/authentication.tsx +77 -0
- package/docs/consumer-skill/examples/commerce-lines.tsx +271 -0
- package/docs/consumer-skill/examples/custom-composition.tsx +21 -0
- package/docs/consumer-skill/examples/detail.tsx +5 -4
- package/docs/consumer-skill/examples/edit.tsx +30 -38
- package/docs/consumer-skill/examples/editable-sections.tsx +38 -0
- package/docs/consumer-skill/examples/index-table.tsx +4 -4
- package/docs/consumer-skill/examples/manifest.json +88 -1
- package/docs/consumer-skill/examples/product-media.tsx +41 -0
- package/docs/consumer-skill/examples/product-parts.tsx +81 -0
- package/docs/consumer-skill/examples/rhf-bindings.tsx +86 -0
- package/docs/consumer-skill/examples/rhf-edit-page.tsx +141 -0
- package/docs/consumer-skill/examples/rhf-overlay-form.tsx +105 -0
- package/docs/consumer-skill/examples/rhf-transport.tsx +28 -0
- package/docs/consumer-skill/examples/token-domain-structure.tsx +68 -0
- package/docs/consumer-skill/references/agents-md.md +23 -11
- package/docs/consumer-skill/references/analytics.md +18 -1
- package/docs/consumer-skill/references/authentication.md +42 -0
- package/docs/consumer-skill/references/commerce-composition.md +97 -0
- package/docs/consumer-skill/references/component-contracts.json +325201 -0
- package/docs/consumer-skill/references/composition-mapping.md +106 -0
- package/docs/consumer-skill/references/composition.md +198 -46
- package/docs/consumer-skill/references/critique-rubric.md +98 -0
- package/docs/consumer-skill/references/custom-composition.md +261 -0
- package/docs/consumer-skill/references/data-reading.md +79 -0
- package/docs/consumer-skill/references/design-contract.md +43 -9
- package/docs/consumer-skill/references/discovery.md +109 -8
- package/docs/consumer-skill/references/domain-structures.md +124 -0
- package/docs/consumer-skill/references/installation.md +51 -36
- package/docs/consumer-skill/references/integration.md +41 -2
- package/docs/consumer-skill/references/product-composition.md +94 -0
- package/docs/consumer-skill/references/public-api.json +4390 -475
- package/docs/consumer-skill/references/review.md +47 -5
- package/docs/consumer-skill/references/rhf-workflows.md +93 -0
- package/docs/consumer-skill/references/screen-archetypes.md +34 -0
- package/docs/consumer-skill/references/screen-decisions.md +126 -0
- package/docs/consumer-skill/references/theming.md +25 -27
- package/docs/consumer-skill/references/tokens.json +20 -11
- package/docs/consumer-skill/references/view-craft.md +153 -0
- package/docs/consumer-skill/references/view-spec.md +73 -0
- package/docs/consumer-skill/references/workflows.md +9 -2
- package/docs/consumer-skill/scripts/composition-policy.mjs +39 -3
- package/docs/consumer-skill/scripts/composition-schema.d.mts +2 -0
- package/docs/consumer-skill/scripts/composition-schema.mjs +32 -0
- package/docs/consumer-skill/scripts/composition.mjs +254 -0
- package/docs/consumer-skill/scripts/discovery.mjs +96 -10
- package/docs/consumer-skill/scripts/inspect-component.mjs +11 -0
- package/docs/consumer-skill/scripts/inspect-tokens.mjs +11 -0
- package/docs/consumer-skill/scripts/inspection.mjs +193 -0
- package/docs/consumer-skill/scripts/map-composition.mjs +12 -0
- package/docs/consumer-skill/scripts/setup-skills.mjs +111 -0
- package/docs/consumer-skill/scripts/surface-policy.mjs +5 -5
- package/docs/consumer-skills/themelia-components/SKILL.md +31 -0
- package/docs/consumer-skills/themelia-composition/SKILL.md +34 -0
- package/docs/consumer-skills/themelia-design/SKILL.md +55 -0
- package/docs/consumer-skills/themelia-forms/SKILL.md +12 -0
- package/docs/consumer-skills/themelia-foundation/SKILL.md +15 -0
- package/docs/consumer-skills/themelia-tokenization/SKILL.md +42 -0
- package/package.json +4 -2
- package/templates/README.md +39 -0
- package/templates/admin-shell-template.tsx +382 -0
- package/templates/analytics-operations-template.tsx +376 -0
- package/templates/customers-template.tsx +509 -0
- package/templates/index.ts +29 -0
- package/templates/orders-template.tsx +1102 -0
- package/templates/products-template.tsx +834 -0
- package/templates/user-permissions-template.tsx +450 -0
- package/dist/accordion-Cjb6sx0G.js.map +0 -1
- package/dist/action-menu-CllU52Mm.js +0 -280
- package/dist/action-menu-CllU52Mm.js.map +0 -1
- package/dist/affordance-geometry.generated-tF36bREk.js.map +0 -1
- package/dist/ai-artifact-DvTwDVyL.js.map +0 -1
- package/dist/app-shell-C4FhvCqF.js +0 -236
- package/dist/app-shell-C4FhvCqF.js.map +0 -1
- package/dist/auth-BGua8ouh.js.map +0 -1
- package/dist/avatar-DAPlDvhJ.js.map +0 -1
- package/dist/base/cascader.js.map +0 -1
- package/dist/batch-action-bar-DnUJ21NQ.js.map +0 -1
- package/dist/button-DVzspB_G.js.map +0 -1
- package/dist/buttons-DPZekJFu.js.map +0 -1
- package/dist/cards-BaBZR-AU.js +0 -68
- package/dist/cards-BaBZR-AU.js.map +0 -1
- package/dist/chart-ZOYyK2xG.js +0 -155
- package/dist/chart-ZOYyK2xG.js.map +0 -1
- package/dist/checkbox-AWIhNhmo.js.map +0 -1
- package/dist/choice-inputs-CNHvARCJ.js +0 -770
- package/dist/choice-inputs-CNHvARCJ.js.map +0 -1
- package/dist/code-block-DeneBJR_.js.map +0 -1
- package/dist/combobox-DaHESuiL.js +0 -355
- package/dist/combobox-DaHESuiL.js.map +0 -1
- package/dist/combobox-Dxo2fAYQ.js.map +0 -1
- package/dist/command-C25VMRII.js.map +0 -1
- package/dist/comments-DD0DUPwJ.js.map +0 -1
- package/dist/containers-Mu1LMGV1.js +0 -103
- package/dist/containers-Mu1LMGV1.js.map +0 -1
- package/dist/control-group-recipes-DBXmfh2E.js.map +0 -1
- package/dist/data-display-DT_khPl_.js.map +0 -1
- package/dist/date-picker-B2K3ucWn.js.map +0 -1
- package/dist/date-pickers-Ds8gLaoP.js +0 -175
- package/dist/date-pickers-Ds8gLaoP.js.map +0 -1
- package/dist/dropdown-menu-Cl4X7L5S.js +0 -193
- package/dist/dropdown-menu-Cl4X7L5S.js.map +0 -1
- package/dist/feedback-BYIhtitP.js.map +0 -1
- package/dist/field-affordance-recipes-DZhnIL_Y.js.map +0 -1
- package/dist/filters-DJVAveHA.js.map +0 -1
- package/dist/form-field-CwH9y77i.js.map +0 -1
- package/dist/form-sizing-BdP_Mf5p.js.map +0 -1
- package/dist/forms-B9G_xwzi.js +0 -194
- package/dist/forms-B9G_xwzi.js.map +0 -1
- package/dist/forms-numeric-B_jraJaQ.js.map +0 -1
- package/dist/header-BSfIEWbI.js.map +0 -1
- package/dist/hooks-ClH9thn4.js.map +0 -1
- package/dist/input-CZw8iU99.js +0 -21
- package/dist/input-CZw8iU99.js.map +0 -1
- package/dist/input-DQdEd0YD.js +0 -263
- package/dist/input-DQdEd0YD.js.map +0 -1
- package/dist/item-K5_ghvze.js +0 -275
- package/dist/item-K5_ghvze.js.map +0 -1
- package/dist/message-DZ_ruyUV.js.map +0 -1
- package/dist/metadata-list-8N16ZMW_.js +0 -405
- package/dist/metadata-list-8N16ZMW_.js.map +0 -1
- package/dist/motion-recipes-ChBg4HBq.js.map +0 -1
- package/dist/navigation-Bnotn4AQ.js +0 -145
- package/dist/navigation-Bnotn4AQ.js.map +0 -1
- package/dist/navigation-BzhHI3lo.js.map +0 -1
- package/dist/navigation-row-recipes-BFLCk_Aq.js.map +0 -1
- package/dist/overflow-tab-bar-CWY7Nogn.js +0 -282
- package/dist/overflow-tab-bar-CWY7Nogn.js.map +0 -1
- package/dist/overlays-tMkF-VAN.js +0 -1003
- package/dist/overlays-tMkF-VAN.js.map +0 -1
- package/dist/page-CL9YeH_V.js +0 -224
- package/dist/page-CL9YeH_V.js.map +0 -1
- package/dist/page-header-commands-DOb6WsfD.js +0 -126
- package/dist/page-header-commands-DOb6WsfD.js.map +0 -1
- package/dist/popover-gnTOhbFM.js +0 -198
- package/dist/popover-gnTOhbFM.js.map +0 -1
- package/dist/popover.recipes-D3j8R8Yp.js.map +0 -1
- package/dist/receipt-BVSOH3Xo.js.map +0 -1
- package/dist/rich-text-editor-cRLC-eBK.js.map +0 -1
- package/dist/rich-text-editor-toolbar-DfXg0-VC.js.map +0 -1
- package/dist/settings-ybnjVwbd.js +0 -171
- package/dist/settings-ybnjVwbd.js.map +0 -1
- package/dist/sheet-ijlsjq-n.js +0 -213
- package/dist/sheet-ijlsjq-n.js.map +0 -1
- package/dist/sidebar-Db6gkh3U.js +0 -619
- package/dist/sidebar-Db6gkh3U.js.map +0 -1
- package/dist/sidebar-DkTO4VTO.js +0 -512
- package/dist/sidebar-DkTO4VTO.js.map +0 -1
- package/dist/skeleton-Byjnt7qr.js +0 -264
- package/dist/skeleton-Byjnt7qr.js.map +0 -1
- package/dist/smart-card-DiC5aac3.js +0 -604
- package/dist/smart-card-DiC5aac3.js.map +0 -1
- package/dist/table-BweFy_P9.js.map +0 -1
- package/dist/tabs-CDocW5D1.js.map +0 -1
- package/dist/text-inputs-f9Ia-aCi.js.map +0 -1
- package/dist/text.styles-g4He6UIW.js.map +0 -1
- package/dist/theme-scope-BJ6eE2xt.js +0 -50
- package/dist/theme-scope-BJ6eE2xt.js.map +0 -1
- package/dist/timelines-CwM_9IhD.js.map +0 -1
- package/dist/tooltip-yiRJUFjp.js +0 -111
- package/dist/tooltip-yiRJUFjp.js.map +0 -1
- package/dist/typography-UTnveOEy.js +0 -117
- package/dist/typography-UTnveOEy.js.map +0 -1
- package/dist/ui-provider-C_U0Xma4.js +0 -136
- package/dist/ui-provider-C_U0Xma4.js.map +0 -1
- package/dist/upload-CXyxmQBP.js.map +0 -1
- package/dist/upload-queue-Boscubn9.js.map +0 -1
- package/dist/usage-card-BhO5eqkX.js.map +0 -1
- package/dist/use-mobile-vaLKwgyf.js +0 -15
- package/dist/use-mobile-vaLKwgyf.js.map +0 -1
- package/dist/utils-BRhFDwuU.js.map +0 -1
- package/dist/value-inputs-TaX4OjNk.js +0 -963
- package/dist/value-inputs-TaX4OjNk.js.map +0 -1
- package/dist/workspace-B-OEm3Kf.js +0 -408
- package/dist/workspace-B-OEm3Kf.js.map +0 -1
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useStrings as e } from "./lib/strings.js";
|
|
3
|
+
import { t } from "./utils-B6kKb8jB.js";
|
|
4
|
+
import { t as n } from "./affordance-geometry.generated-P-aVJisu.js";
|
|
5
|
+
import { c as r, o as i } from "./typography-BQnine1k.js";
|
|
6
|
+
import { c as a } from "./text.styles-B64My8RZ.js";
|
|
7
|
+
import { i as o, n as s, t as c } from "./tooltip-8wz5S_Zr.js";
|
|
8
|
+
import { c as l, s as u } from "./structure.recipes-BB4-n58V.js";
|
|
9
|
+
import { r as d, t as f } from "./structure-DuxKl954.js";
|
|
10
|
+
import { _ as p, c as m, l as h, m as g, o as _, p as v, s as y } from "./primitives-ByWgGUgt.js";
|
|
11
|
+
import { r as b } from "./number-CRU3kGuk.js";
|
|
12
|
+
import { a as x, r as S, t as C } from "./date-Cq8ioE4o.js";
|
|
13
|
+
import { t as w } from "./badge-xIiV_E7f.js";
|
|
14
|
+
import { t as T } from "./separator-Ct_WSWTJ.js";
|
|
15
|
+
import { n as E } from "./field-affordance-recipes-DWcNcOjh.js";
|
|
16
|
+
import D from "react";
|
|
17
|
+
import { Fragment as O, jsx as k, jsxs as A } from "react/jsx-runtime";
|
|
18
|
+
import { Info as j } from "lucide-react";
|
|
19
|
+
//#region src/components/base/metadata-list/metadata-list.strings.ts
|
|
20
|
+
var M = {
|
|
21
|
+
formatInfoAriaLabel: (e) => `${e} info`,
|
|
22
|
+
infoFallback: "Info"
|
|
23
|
+
};
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region src/components/base/metadata-list/metadata-value.tsx
|
|
26
|
+
function N(e) {
|
|
27
|
+
return e == null || e === "";
|
|
28
|
+
}
|
|
29
|
+
function P(e, n = "—") {
|
|
30
|
+
return /* @__PURE__ */ k(v, {
|
|
31
|
+
className: t("metadata-value--component", e),
|
|
32
|
+
children: n
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function F(e) {
|
|
36
|
+
throw Error("Unsupported metadata value descriptor.");
|
|
37
|
+
}
|
|
38
|
+
function I(e) {
|
|
39
|
+
if (e.kind === "node") return /* @__PURE__ */ k(O, { children: e.node });
|
|
40
|
+
if (e.kind === "empty" || e.kind !== "link" && N(e.value)) return P(e.className, e.emptyLabel);
|
|
41
|
+
switch (e.kind) {
|
|
42
|
+
case void 0:
|
|
43
|
+
case "text": return /* @__PURE__ */ k(p, {
|
|
44
|
+
type: "inherit",
|
|
45
|
+
className: t("metadata-value--component", e.className),
|
|
46
|
+
children: e.display ?? e.value
|
|
47
|
+
});
|
|
48
|
+
case "mono": return /* @__PURE__ */ k(g, {
|
|
49
|
+
type: "inherit",
|
|
50
|
+
className: t("metadata-value--component", e.className),
|
|
51
|
+
children: e.display ?? e.value
|
|
52
|
+
});
|
|
53
|
+
case "email": return /* @__PURE__ */ k(_, {
|
|
54
|
+
value: e.value,
|
|
55
|
+
display: e.display,
|
|
56
|
+
emptyLabel: e.emptyLabel,
|
|
57
|
+
className: t("metadata-value--component", e.className)
|
|
58
|
+
});
|
|
59
|
+
case "phone": return /* @__PURE__ */ k(m, {
|
|
60
|
+
value: e.value,
|
|
61
|
+
display: e.display,
|
|
62
|
+
emptyLabel: e.emptyLabel,
|
|
63
|
+
className: t("metadata-value--component", e.className)
|
|
64
|
+
});
|
|
65
|
+
case "url": return /* @__PURE__ */ k(h, {
|
|
66
|
+
value: e.value,
|
|
67
|
+
display: e.display,
|
|
68
|
+
emptyLabel: e.emptyLabel,
|
|
69
|
+
className: t("metadata-value--component", e.className)
|
|
70
|
+
});
|
|
71
|
+
case "link": return /* @__PURE__ */ k(y, {
|
|
72
|
+
href: e.href,
|
|
73
|
+
emptyLabel: e.emptyLabel,
|
|
74
|
+
className: t("metadata-value--component", e.className),
|
|
75
|
+
children: e.display ?? e.value ?? e.href
|
|
76
|
+
});
|
|
77
|
+
case "date": return /* @__PURE__ */ k(C, {
|
|
78
|
+
type: "inherit",
|
|
79
|
+
value: e.value,
|
|
80
|
+
format: e.dateFormat,
|
|
81
|
+
preset: e.datePreset,
|
|
82
|
+
locale: e.dateLocale,
|
|
83
|
+
emptyLabel: e.emptyLabel,
|
|
84
|
+
className: t("metadata-value--component", e.className)
|
|
85
|
+
});
|
|
86
|
+
case "time": return /* @__PURE__ */ k(x, {
|
|
87
|
+
type: "inherit",
|
|
88
|
+
value: e.value,
|
|
89
|
+
format: e.timeFormat,
|
|
90
|
+
preset: e.timePreset,
|
|
91
|
+
locale: e.dateLocale,
|
|
92
|
+
emptyLabel: e.emptyLabel,
|
|
93
|
+
className: t("metadata-value--component", e.className)
|
|
94
|
+
});
|
|
95
|
+
case "datetime": return /* @__PURE__ */ k(S, {
|
|
96
|
+
type: "inherit",
|
|
97
|
+
value: e.value,
|
|
98
|
+
format: e.dateFormat,
|
|
99
|
+
timeFormat: e.timeFormat,
|
|
100
|
+
preset: e.datePreset,
|
|
101
|
+
locale: e.dateLocale,
|
|
102
|
+
emptyLabel: e.emptyLabel,
|
|
103
|
+
className: t("metadata-value--component", e.className)
|
|
104
|
+
});
|
|
105
|
+
case "money": return /* @__PURE__ */ k(b, {
|
|
106
|
+
type: "inherit",
|
|
107
|
+
amount: e.value,
|
|
108
|
+
currency: e.currency,
|
|
109
|
+
unit: e.unit,
|
|
110
|
+
minorUnitScale: e.minorUnitScale,
|
|
111
|
+
symbol: e.symbol,
|
|
112
|
+
currencyDisplay: e.currencyDisplay,
|
|
113
|
+
formatMode: e.formatMode,
|
|
114
|
+
minimumFractionDigits: e.minimumFractionDigits,
|
|
115
|
+
maximumFractionDigits: e.maximumFractionDigits,
|
|
116
|
+
locale: e.locale,
|
|
117
|
+
emptyLabel: e.emptyLabel,
|
|
118
|
+
className: t("metadata-value--component", e.className)
|
|
119
|
+
});
|
|
120
|
+
case "badge": return /* @__PURE__ */ k(w, {
|
|
121
|
+
tone: e.badgeTone ?? "secondary",
|
|
122
|
+
size: e.badgeSize,
|
|
123
|
+
inline: !0,
|
|
124
|
+
className: t("metadata-value--component self-start justify-self-start", e.className),
|
|
125
|
+
children: e.display ?? e.value
|
|
126
|
+
});
|
|
127
|
+
default: return F(e);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
I.displayName = "MetadataValue";
|
|
131
|
+
//#endregion
|
|
132
|
+
//#region src/components/base/metadata-list/metadata-list.tsx
|
|
133
|
+
var L = {
|
|
134
|
+
1: 1,
|
|
135
|
+
2: {
|
|
136
|
+
base: 1,
|
|
137
|
+
md: 2
|
|
138
|
+
},
|
|
139
|
+
3: {
|
|
140
|
+
base: 1,
|
|
141
|
+
sm: 2,
|
|
142
|
+
lg: 3
|
|
143
|
+
},
|
|
144
|
+
4: {
|
|
145
|
+
base: 1,
|
|
146
|
+
sm: 2,
|
|
147
|
+
lg: 3,
|
|
148
|
+
xl: 4
|
|
149
|
+
}
|
|
150
|
+
}, R = {
|
|
151
|
+
base: {
|
|
152
|
+
1: "grid-cols-1",
|
|
153
|
+
2: "grid-cols-2",
|
|
154
|
+
3: "grid-cols-3",
|
|
155
|
+
4: "grid-cols-4"
|
|
156
|
+
},
|
|
157
|
+
sm: {
|
|
158
|
+
1: "@min-[22rem]/metadata-list:grid-cols-1",
|
|
159
|
+
2: "@min-[22rem]/metadata-list:grid-cols-2",
|
|
160
|
+
3: "@min-[22rem]/metadata-list:grid-cols-3",
|
|
161
|
+
4: "@min-[22rem]/metadata-list:grid-cols-4"
|
|
162
|
+
},
|
|
163
|
+
md: {
|
|
164
|
+
1: "@min-[28rem]/metadata-list:grid-cols-1",
|
|
165
|
+
2: "@min-[28rem]/metadata-list:grid-cols-2",
|
|
166
|
+
3: "@min-[28rem]/metadata-list:grid-cols-3",
|
|
167
|
+
4: "@min-[28rem]/metadata-list:grid-cols-4"
|
|
168
|
+
},
|
|
169
|
+
lg: {
|
|
170
|
+
1: "@min-[38rem]/metadata-list:grid-cols-1",
|
|
171
|
+
2: "@min-[38rem]/metadata-list:grid-cols-2",
|
|
172
|
+
3: "@min-[38rem]/metadata-list:grid-cols-3",
|
|
173
|
+
4: "@min-[38rem]/metadata-list:grid-cols-4"
|
|
174
|
+
},
|
|
175
|
+
xl: {
|
|
176
|
+
1: "@min-[52rem]/metadata-list:grid-cols-1",
|
|
177
|
+
2: "@min-[52rem]/metadata-list:grid-cols-2",
|
|
178
|
+
3: "@min-[52rem]/metadata-list:grid-cols-3",
|
|
179
|
+
4: "@min-[52rem]/metadata-list:grid-cols-4"
|
|
180
|
+
},
|
|
181
|
+
"2xl": {
|
|
182
|
+
1: "@min-[64rem]/metadata-list:grid-cols-1",
|
|
183
|
+
2: "@min-[64rem]/metadata-list:grid-cols-2",
|
|
184
|
+
3: "@min-[64rem]/metadata-list:grid-cols-3",
|
|
185
|
+
4: "@min-[64rem]/metadata-list:grid-cols-4"
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
function z(e) {
|
|
189
|
+
return typeof e == "object" ? e : L[e];
|
|
190
|
+
}
|
|
191
|
+
function B({ children: e }) {
|
|
192
|
+
return /* @__PURE__ */ k(r, {
|
|
193
|
+
type: "inherit",
|
|
194
|
+
tag: "span",
|
|
195
|
+
size: "sm",
|
|
196
|
+
weight: "semibold",
|
|
197
|
+
lineHeight: "tight",
|
|
198
|
+
className: "metadata-list--label metadata--field min-w-0 text-left [overflow-wrap:anywhere]",
|
|
199
|
+
children: e
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
var V = "[&>.copyable--component]:-my-space-sm [&>.badge--component]:-my-space-xs", H = "[&>.link--component]:leading-tight", U = t(V, H), W = (e, t) => e.id ? e.id : `metadata-${typeof e.label == "string" ? e.label : `${t}`}-${t}`;
|
|
203
|
+
function G(e) {
|
|
204
|
+
return typeof e == "string" || typeof e == "number";
|
|
205
|
+
}
|
|
206
|
+
function K(e) {
|
|
207
|
+
return typeof e == "object" && !!e && !D.isValidElement(e) && !Array.isArray(e) && ("kind" in e || "node" in e || "value" in e);
|
|
208
|
+
}
|
|
209
|
+
function q({ value: e, isEmptyValue: n, emptyLabel: r, valueBase: i }) {
|
|
210
|
+
return K(e) ? e.kind === "node" ? /* @__PURE__ */ k(I, { ...e }) : /* @__PURE__ */ k(I, {
|
|
211
|
+
...e,
|
|
212
|
+
emptyLabel: e.emptyLabel ?? r,
|
|
213
|
+
className: t(i, e.className)
|
|
214
|
+
}) : G(e) ? /* @__PURE__ */ k(I, {
|
|
215
|
+
value: e,
|
|
216
|
+
kind: n ? "empty" : "text",
|
|
217
|
+
emptyLabel: r,
|
|
218
|
+
className: i
|
|
219
|
+
}) : e;
|
|
220
|
+
}
|
|
221
|
+
function J({ item: e, valueBase: t, renderedClassName: n, tag: r = "div", emptyLabel: i }) {
|
|
222
|
+
return typeof e.render == "function" ? /* @__PURE__ */ k(r, {
|
|
223
|
+
className: n,
|
|
224
|
+
children: e.render(e)
|
|
225
|
+
}) : q({
|
|
226
|
+
value: e.value ?? i,
|
|
227
|
+
isEmptyValue: e.value === null || e.value === void 0,
|
|
228
|
+
emptyLabel: i,
|
|
229
|
+
valueBase: t
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
function Y({ triggerProps: e, ariaLabel: r }) {
|
|
233
|
+
let { className: i, ...a } = e;
|
|
234
|
+
return /* @__PURE__ */ k("button", {
|
|
235
|
+
...a,
|
|
236
|
+
type: "button",
|
|
237
|
+
className: t("metadata-list--info-trigger", E.target, E.focus, E.clear, n.clearTargetBleed, "cursor-help self-center", i),
|
|
238
|
+
"aria-label": r,
|
|
239
|
+
children: /* @__PURE__ */ k(j, {
|
|
240
|
+
className: E.icon,
|
|
241
|
+
"aria-hidden": "true"
|
|
242
|
+
})
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
function X({ item: e, strings: t }) {
|
|
246
|
+
return e.tooltip === null || e.tooltip === void 0 ? null : /* @__PURE__ */ A(c, { children: [/* @__PURE__ */ k(o, { render: (n) => /* @__PURE__ */ k(Y, {
|
|
247
|
+
triggerProps: n,
|
|
248
|
+
ariaLabel: typeof e.label == "string" ? t.formatInfoAriaLabel(e.label) : t.infoFallback
|
|
249
|
+
}) }), /* @__PURE__ */ k(s, {
|
|
250
|
+
side: "top",
|
|
251
|
+
align: "start",
|
|
252
|
+
className: "max-w-80",
|
|
253
|
+
children: /* @__PURE__ */ k(r, {
|
|
254
|
+
type: "inverse",
|
|
255
|
+
size: "xs",
|
|
256
|
+
children: e.tooltip
|
|
257
|
+
})
|
|
258
|
+
})] });
|
|
259
|
+
}
|
|
260
|
+
function Z({ item: e, isCompact: n }) {
|
|
261
|
+
let r = e.icon;
|
|
262
|
+
return r ? /* @__PURE__ */ k(r, { className: t("flex-shrink-0 self-center text-muted-foreground", n ? "size-icon-sm" : "size-icon") }) : null;
|
|
263
|
+
}
|
|
264
|
+
function Q({ items: n, columns: o = 2, adaptTo: s = "container", density: c = "default", emptyLabel: p = "—", title: m, titleSeparator: h = !1, className: g, layout: _ = "grid", separator: v = ": ", itemSeparator: y = !1, valueAlign: b = "start", strings: x }) {
|
|
265
|
+
let S = e(M, x), C = D.useMemo(() => n.filter(Boolean), [n]);
|
|
266
|
+
if (C.length === 0) return null;
|
|
267
|
+
let w = c === "compact", E = "metadata-list--value text-sm", j = m != null, N = j && h, P = t("metadata-list--component", "metadata-list-container @container/metadata-list", g), F = /* @__PURE__ */ A(O, { children: [!!j && /* @__PURE__ */ k(i, {
|
|
268
|
+
tag: "div",
|
|
269
|
+
className: "metadata-list--title block text-inherit",
|
|
270
|
+
children: m
|
|
271
|
+
}), !!N && /* @__PURE__ */ k(T, { className: "metadata-list--title-separator" })] });
|
|
272
|
+
if (_ === "inline") {
|
|
273
|
+
let e = typeof y == "string" ? y : y ? "·" : "";
|
|
274
|
+
return /* @__PURE__ */ A(f, {
|
|
275
|
+
gap: "sm",
|
|
276
|
+
"data-metadata-density": c,
|
|
277
|
+
className: P,
|
|
278
|
+
children: [F, /* @__PURE__ */ k(f, {
|
|
279
|
+
direction: "horizontal",
|
|
280
|
+
align: "baseline",
|
|
281
|
+
gap: w ? "sm" : "md",
|
|
282
|
+
className: "metadata-list--inline",
|
|
283
|
+
children: C.map((n, i) => {
|
|
284
|
+
let o = e && i < C.length - 1;
|
|
285
|
+
return /* @__PURE__ */ A(D.Fragment, { children: [/* @__PURE__ */ A(f, {
|
|
286
|
+
direction: "horizontal",
|
|
287
|
+
align: "baseline",
|
|
288
|
+
gap: "xs",
|
|
289
|
+
className: t("metadata-list--item min-w-0 [&>*]:max-w-full [&>*]:min-w-0 [&>.badge--component]:self-center", V),
|
|
290
|
+
children: [
|
|
291
|
+
/* @__PURE__ */ k(Z, {
|
|
292
|
+
item: n,
|
|
293
|
+
isCompact: w
|
|
294
|
+
}),
|
|
295
|
+
/* @__PURE__ */ A(f, {
|
|
296
|
+
direction: "horizontal",
|
|
297
|
+
gap: "none",
|
|
298
|
+
align: "baseline",
|
|
299
|
+
wrap: !1,
|
|
300
|
+
className: "max-w-full shrink-0",
|
|
301
|
+
children: [
|
|
302
|
+
/* @__PURE__ */ k(B, { children: n.label }),
|
|
303
|
+
/* @__PURE__ */ k(X, {
|
|
304
|
+
item: n,
|
|
305
|
+
strings: S
|
|
306
|
+
}),
|
|
307
|
+
/* @__PURE__ */ k(r, {
|
|
308
|
+
tag: "span",
|
|
309
|
+
size: "sm",
|
|
310
|
+
type: "secondary",
|
|
311
|
+
children: v
|
|
312
|
+
})
|
|
313
|
+
]
|
|
314
|
+
}),
|
|
315
|
+
J({
|
|
316
|
+
item: n,
|
|
317
|
+
tag: "span",
|
|
318
|
+
emptyLabel: n.emptyLabel ?? p,
|
|
319
|
+
valueBase: t(E, "leading-tight"),
|
|
320
|
+
renderedClassName: t(E, U, a({
|
|
321
|
+
type: "inherit",
|
|
322
|
+
size: "sm",
|
|
323
|
+
lineHeight: "tight"
|
|
324
|
+
}))
|
|
325
|
+
})
|
|
326
|
+
]
|
|
327
|
+
}), !!o && /* @__PURE__ */ k(r, {
|
|
328
|
+
tag: "span",
|
|
329
|
+
size: "sm",
|
|
330
|
+
type: "secondary",
|
|
331
|
+
"aria-hidden": "true",
|
|
332
|
+
className: "metadata-list--item-separator select-none",
|
|
333
|
+
children: e
|
|
334
|
+
})] }, W(n, i));
|
|
335
|
+
})
|
|
336
|
+
})]
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
if (_ === "rows") {
|
|
340
|
+
let e = w ? "py-row-y-sm" : "py-row-y", n = b === "end", i = n ? "grid-cols-[minmax(0,1fr)_fit-content(60%)] gap-x-space-md" : t("grid-cols-[minmax(0,2fr)_minmax(0,3fr)]", w ? "gap-x-space-lg" : "gap-x-space-xl"), o = n ? "text-end" : "text-start";
|
|
341
|
+
return /* @__PURE__ */ A(f, {
|
|
342
|
+
gap: "sm",
|
|
343
|
+
"data-metadata-density": c,
|
|
344
|
+
className: P,
|
|
345
|
+
children: [F, /* @__PURE__ */ k(f, {
|
|
346
|
+
render: /* @__PURE__ */ k("dl", {}),
|
|
347
|
+
gap: "none",
|
|
348
|
+
"data-value-align": b,
|
|
349
|
+
className: t("metadata-list--rows m-0", !!y && "divide-y divide-border/60"),
|
|
350
|
+
children: C.map((s, c) => /* @__PURE__ */ A("div", {
|
|
351
|
+
className: t("metadata-list--item grid items-baseline", i, e),
|
|
352
|
+
children: [/* @__PURE__ */ A("dt", {
|
|
353
|
+
className: "flex min-w-0 items-center gap-space-sm",
|
|
354
|
+
children: [
|
|
355
|
+
/* @__PURE__ */ k(Z, {
|
|
356
|
+
item: s,
|
|
357
|
+
isCompact: w
|
|
358
|
+
}),
|
|
359
|
+
/* @__PURE__ */ k(B, { children: s.label }),
|
|
360
|
+
/* @__PURE__ */ k(X, {
|
|
361
|
+
item: s,
|
|
362
|
+
strings: S
|
|
363
|
+
})
|
|
364
|
+
]
|
|
365
|
+
}), /* @__PURE__ */ A("dd", {
|
|
366
|
+
className: t("m-0 grid min-w-0 gap-dense break-words [overflow-wrap:anywhere] [&>*]:max-w-full [&>*]:min-w-0", V, o, n ? "justify-items-end [&>.badge--component]:justify-self-end" : "justify-items-start [&>.badge--component]:justify-self-start"),
|
|
367
|
+
children: [J({
|
|
368
|
+
item: s,
|
|
369
|
+
emptyLabel: s.emptyLabel ?? p,
|
|
370
|
+
valueBase: t(E, o, "break-words leading-tight"),
|
|
371
|
+
renderedClassName: t(E, "break-words", U, a({
|
|
372
|
+
type: "inherit",
|
|
373
|
+
size: "sm",
|
|
374
|
+
lineHeight: "tight",
|
|
375
|
+
align: n ? "right" : "left"
|
|
376
|
+
}))
|
|
377
|
+
}), !!s.description && /* @__PURE__ */ k(r, {
|
|
378
|
+
size: "xs",
|
|
379
|
+
type: "secondary",
|
|
380
|
+
align: n ? "right" : "left",
|
|
381
|
+
lineHeight: "snug",
|
|
382
|
+
className: "metadata-list--description",
|
|
383
|
+
children: s.description
|
|
384
|
+
})]
|
|
385
|
+
})]
|
|
386
|
+
}, W(s, c)))
|
|
387
|
+
})]
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
return /* @__PURE__ */ A(f, {
|
|
391
|
+
gap: "sm",
|
|
392
|
+
"data-metadata-density": c,
|
|
393
|
+
className: P,
|
|
394
|
+
children: [F, /* @__PURE__ */ k(d, {
|
|
395
|
+
columns: s === "container" ? 1 : z(o),
|
|
396
|
+
gap: w ? "md" : "xl",
|
|
397
|
+
align: "start",
|
|
398
|
+
className: t("metadata-list--grid", s === "container" && u(l(z(o), 1), R)),
|
|
399
|
+
children: C.map((e, n) => /* @__PURE__ */ A(f, {
|
|
400
|
+
gap: w ? "dense" : "normal",
|
|
401
|
+
className: "metadata-list--item min-w-0 items-start [&>*]:max-w-full [&>*]:min-w-0 [&>.badge--component]:self-start",
|
|
402
|
+
children: [
|
|
403
|
+
/* @__PURE__ */ A("div", {
|
|
404
|
+
className: "flex min-w-0 items-center gap-space-sm",
|
|
405
|
+
children: [
|
|
406
|
+
/* @__PURE__ */ k(Z, {
|
|
407
|
+
item: e,
|
|
408
|
+
isCompact: w
|
|
409
|
+
}),
|
|
410
|
+
/* @__PURE__ */ k(B, { children: e.label }),
|
|
411
|
+
/* @__PURE__ */ k(X, {
|
|
412
|
+
item: e,
|
|
413
|
+
strings: S
|
|
414
|
+
})
|
|
415
|
+
]
|
|
416
|
+
}),
|
|
417
|
+
J({
|
|
418
|
+
item: e,
|
|
419
|
+
emptyLabel: e.emptyLabel ?? p,
|
|
420
|
+
valueBase: t(E, "leading-tight"),
|
|
421
|
+
renderedClassName: t(E, H, a({
|
|
422
|
+
type: "inherit",
|
|
423
|
+
size: "sm",
|
|
424
|
+
lineHeight: "tight"
|
|
425
|
+
}))
|
|
426
|
+
}),
|
|
427
|
+
!!e.description && /* @__PURE__ */ k(r, {
|
|
428
|
+
size: "xs",
|
|
429
|
+
type: "secondary",
|
|
430
|
+
lineHeight: "snug",
|
|
431
|
+
className: "metadata-list--description",
|
|
432
|
+
children: e.description
|
|
433
|
+
})
|
|
434
|
+
]
|
|
435
|
+
}, W(e, n)))
|
|
436
|
+
})]
|
|
437
|
+
});
|
|
438
|
+
}
|
|
439
|
+
Q.displayName = "MetadataList";
|
|
440
|
+
//#endregion
|
|
441
|
+
export { I as n, M as r, Q as t };
|
|
442
|
+
|
|
443
|
+
//# sourceMappingURL=metadata-list-C3MkU-Om.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-list-C3MkU-Om.js","names":["_Fragment","Link","DateValue","_Fragment","affordanceGeometry","Text","DisplayLabel","textVariants","TooltipTrigger","TooltipContent","Tooltip","resolveResponsiveEntries","compileResponsiveClasses","Grid","Stack","Value","Phone","Url","MonoValue","Email","EmptyValue","Link$1","Money","Time","DateTime","DatePrimitive","Badge","Separator","fieldAffordanceRecipes","React","Fragment$1","defaultMetadataListStrings","label","isEmpty","value","renderEmptyValue","cn","className","emptyLabel","assertNever","MetadataValue","props","metadataColumnRecipes","metadataContainerColumns","resolveMetadataColumns","columns","MetadataLabel","inlineControlBleed","renderedLinkLeading","renderedValueClasses","resolveKey","item","index","isPrimitiveMetadataValue","isMetadataValueDescriptor","renderMetadataValue","valueBase","isEmptyValue","renderItemValue","Tag","renderedClassName","MetadataInfoTrigger","triggerProps","ariaLabel","Info","MetadataItemInfo","strings","MetadataItemIcon","Icon","isCompact","MetadataList","stringsProp","useStrings","list","items","density","hasTitle","title","shouldShowSeparator","titleSeparator","rootClassName","head","layout","itemSeparatorText","itemSeparator","showItemSeparator","separator","rowPaddingY","isEndAligned","valueAlign","rowTrack","valueAlignClassName","adaptTo"],"sources":["../src/components/base/metadata-list/metadata-list.strings.ts","../src/components/base/metadata-list/metadata-value.tsx","../src/components/base/metadata-list/metadata-list.tsx"],"sourcesContent":["/**\n * Default user-facing strings for `<MetadataList>`.\n *\n * Consumers wire backend i18n at the call site:\n *\n * <MetadataList strings={{ infoFallback: t('metadata.info') }} … />\n */\n\nexport interface MetadataListStrings {\n\t/**\n\t * Suffix appended to the label when generating the tooltip-trigger\n\t * `aria-label` (\"<label> info\"). Receives the label as the first arg\n\t * so consumers can localise the full template.\n\t */\n\tformatInfoAriaLabel: (label: string) => string;\n\t/** Fallback `aria-label` used when the field label is not a plain string. */\n\tinfoFallback: string;\n}\n\nexport const defaultMetadataListStrings: MetadataListStrings = {\n\tformatInfoAriaLabel: (label) => `${label} info`,\n\tinfoFallback: 'Info',\n};\n","/**\n * MetadataValue — primitive-backed adapter for typed label/value facts.\n *\n * Each descriptor kind exposes only the fields its primitive consumes. Custom\n * `node` values remain untouched so app-owned composition keeps its identity.\n */\nimport type { ReactNode } from 'react';\nimport type { Locale } from 'date-fns';\n\nimport { Badge, type BadgeProps } from '../badge';\nimport {\n\tDate as DateValue,\n\tDateTime,\n\tEmail,\n\tEmptyValue,\n\tLink,\n\tMoney,\n\tMonoValue,\n\tPhone,\n\tTime,\n\tUrl,\n\tValue,\n\ttype DateInput,\n\ttype DatePreset,\n\ttype MoneyProps,\n\ttype TimeProps,\n} from '../../primitives';\nimport { EMPTY } from '../../../lib/format';\nimport { cn } from '../../../lib/utils';\n\nexport type MetadataValueKind =\n\t| 'text'\n\t| 'mono'\n\t| 'email'\n\t| 'phone'\n\t| 'url'\n\t| 'link'\n\t| 'date'\n\t| 'time'\n\t| 'datetime'\n\t| 'money'\n\t| 'badge'\n\t| 'node'\n\t| 'empty';\n\ntype MetadataDisplayValue = Exclude<ReactNode, null | undefined>;\ntype MetadataDateInput = Exclude<DateInput, null | undefined>;\n/** Styling hook shared by every descriptor. */\ntype MetadataDescriptorBase = {\n\t/** Merged onto the rendered value. */\n\tclassName?: string;\n};\n/** Empty handling shared by every descriptor that can receive a blank value. */\ntype MetadataValueFallback = {\n\t/** Copy shown when the value is empty. Defaults to an em dash. */\n\temptyLabel?: ReactNode;\n};\n/** Escape hatch for descriptors whose value can be rendered by the caller. */\ntype MetadataDisplayOverride = {\n\t/** Pre-rendered content used verbatim, bypassing this descriptor's formatting. */\n\tdisplay?: ReactNode;\n};\n\nexport type MetadataTextValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & MetadataDisplayOverride & {\n\t/** Plain text. The default when `kind` is omitted. */\n\tkind?: 'text';\n\t/** The value to show. */\n\tvalue: MetadataDisplayValue;\n};\n\nexport type MetadataMonoValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & MetadataDisplayOverride & {\n\t/** Monospace, for ids, hashes, and codes. */\n\tkind: 'mono';\n\t/** The value to show. */\n\tvalue: MetadataDisplayValue;\n};\n\nexport type MetadataContactValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & MetadataDisplayOverride & {\n\t/** Contact value, rendered as the matching `mailto:`, `tel:`, or external link. */\n\tkind: 'email' | 'phone' | 'url';\n\t/** The address, number, or URL. */\n\tvalue: string;\n};\n\nexport type MetadataLinkValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & MetadataDisplayOverride & {\n\t/** An arbitrary link, where text and destination differ. */\n\tkind: 'link';\n\t/** Destination for the entry, when it navigates. */\n\thref: string;\n\t/** Link text. Falls back to `href` when omitted. */\n\tvalue?: MetadataDisplayValue;\n};\n\nexport type MetadataDateValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & {\n\t/** A calendar date. */\n\tkind: 'date';\n\t/** The date to format. */\n\tvalue: MetadataDateInput;\n\t/** date-fns `Locale` for formatting. */\n\tdateLocale?: Locale;\n\t/** date-fns pattern, overriding `datePreset`. */\n\tdateFormat?: string;\n\t/** Named date length. */\n\tdatePreset?: DatePreset;\n};\n\nexport type MetadataTimeValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & {\n\t/** A time of day. */\n\tkind: 'time';\n\t/** The time to format. */\n\tvalue: MetadataDateInput;\n\t/** date-fns `Locale` for formatting. */\n\tdateLocale?: Locale;\n\t/** date-fns pattern, overriding `timePreset`. */\n\ttimeFormat?: string;\n\t/** Named time length. */\n\ttimePreset?: TimeProps['preset'];\n};\n\nexport type MetadataDateTimeValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & {\n\tkind: 'datetime';\n\t/** The instant to format. */\n\tvalue: MetadataDateInput;\n\t/** date-fns `Locale` for formatting. */\n\tdateLocale?: Locale;\n\t/** date-fns pattern for the date portion. */\n\tdateFormat?: string;\n\t/** date-fns pattern for the time portion. */\n\ttimeFormat?: string;\n\t/** Named date length, used when `dateFormat` is omitted. */\n\tdatePreset?: DatePreset;\n};\n\nexport type MetadataMoneyValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & {\n\t/** A monetary amount. */\n\tkind: 'money';\n\t/** The amount, in major units unless `minorUnitScale` says otherwise. */\n\tvalue: number | string;\n\t/** ISO currency code. */\n\tcurrency?: MoneyProps['currency'];\n\t/** Unit label shown after the amount. */\n\tunit?: MoneyProps['unit'];\n\t/** Divisor applied when the value arrives in minor units, e.g. `100` for cents. */\n\tminorUnitScale?: MoneyProps['minorUnitScale'];\n\t/** Explicit currency symbol, overriding the one derived from `currency`. */\n\tsymbol?: MoneyProps['symbol'];\n\t/** Whether the currency shows as a symbol, code, or name. */\n\tcurrencyDisplay?: MoneyProps['currencyDisplay'];\n\t/** Selects the compact or full presentation. */\n\tformatMode?: MoneyProps['formatMode'];\n\t/** Smallest number of decimals to show. */\n\tminimumFractionDigits?: MoneyProps['minimumFractionDigits'];\n\t/** Largest number of decimals to show. */\n\tmaximumFractionDigits?: MoneyProps['maximumFractionDigits'];\n\t/** BCP 47 locale for the amount. */\n\tlocale?: MoneyProps['locale'];\n};\n\nexport type MetadataBadgeValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & MetadataDisplayOverride & {\n\t/** A status chip. */\n\tkind: 'badge';\n\t/** Badge text. */\n\tvalue: MetadataDisplayValue;\n\t/** Badge tone. */\n\tbadgeTone?: BadgeProps['tone'];\n\t/** Badge size. */\n\tbadgeSize?: BadgeProps['size'];\n};\n\nexport type MetadataNodeValueDescriptor = {\n\t/** Arbitrary content, bypassing every formatting path. */\n\tkind: 'node';\n\t/** The content to render. */\n\tnode: ReactNode;\n};\n\nexport type MetadataEmptyValueDescriptor = MetadataDescriptorBase & MetadataValueFallback & {\n\t/** A known-absent value, rendered as the empty label rather than omitted. */\n\tkind: 'empty';\n};\n\nexport type MetadataValueDescriptor =\n\t| MetadataTextValueDescriptor\n\t| MetadataMonoValueDescriptor\n\t| MetadataContactValueDescriptor\n\t| MetadataLinkValueDescriptor\n\t| MetadataDateValueDescriptor\n\t| MetadataTimeValueDescriptor\n\t| MetadataDateTimeValueDescriptor\n\t| MetadataMoneyValueDescriptor\n\t| MetadataBadgeValueDescriptor\n\t| MetadataNodeValueDescriptor\n\t| MetadataEmptyValueDescriptor;\n\nexport type MetadataValueProps = MetadataValueDescriptor;\n\nfunction isEmpty(value: unknown) {\n\treturn value === null || value === undefined || value === '';\n}\n\nfunction renderEmptyValue(className: string | undefined, emptyLabel: ReactNode = EMPTY) {\n\treturn (\n\t\t<EmptyValue className={cn('metadata-value--component', className)}>\n\t\t\t{emptyLabel}\n\t\t</EmptyValue>\n\t);\n}\n\nfunction assertNever(_value: never): never {\n\tthrow new Error('Unsupported metadata value descriptor.');\n}\n\nexport function MetadataValue(props: MetadataValueProps) {\n\tif (props.kind === 'node') return <>{props.node}</>;\n\tif (props.kind === 'empty') return renderEmptyValue(props.className, props.emptyLabel);\n\n\tif (props.kind !== 'link' && isEmpty(props.value)) {\n\t\treturn renderEmptyValue(props.className, props.emptyLabel);\n\t}\n\n\tswitch (props.kind) {\n\t\tcase undefined:\n\t\tcase 'text':\n\t\t\treturn (\n\t\t\t\t<Value type=\"inherit\" className={cn('metadata-value--component', props.className)}>\n\t\t\t\t\t{props.display ?? props.value}\n\t\t\t\t</Value>\n\t\t\t);\n\t\tcase 'mono':\n\t\t\treturn (\n\t\t\t\t<MonoValue type=\"inherit\" className={cn('metadata-value--component', props.className)}>\n\t\t\t\t\t{props.display ?? props.value}\n\t\t\t\t</MonoValue>\n\t\t\t);\n\t\tcase 'email':\n\t\t\treturn <Email value={props.value} display={props.display} emptyLabel={props.emptyLabel} className={cn('metadata-value--component', props.className)} />;\n\t\tcase 'phone':\n\t\t\treturn <Phone value={props.value} display={props.display} emptyLabel={props.emptyLabel} className={cn('metadata-value--component', props.className)} />;\n\t\tcase 'url':\n\t\t\treturn <Url value={props.value} display={props.display} emptyLabel={props.emptyLabel} className={cn('metadata-value--component', props.className)} />;\n\t\tcase 'link':\n\t\t\treturn (\n\t\t\t\t<Link href={props.href} emptyLabel={props.emptyLabel} className={cn('metadata-value--component', props.className)}>\n\t\t\t\t\t{props.display ?? props.value ?? props.href}\n\t\t\t\t</Link>\n\t\t\t);\n\t\tcase 'date':\n\t\t\treturn <DateValue type=\"inherit\" value={props.value} format={props.dateFormat} preset={props.datePreset} locale={props.dateLocale} emptyLabel={props.emptyLabel} className={cn('metadata-value--component', props.className)} />;\n\t\tcase 'time':\n\t\t\treturn <Time type=\"inherit\" value={props.value} format={props.timeFormat} preset={props.timePreset} locale={props.dateLocale} emptyLabel={props.emptyLabel} className={cn('metadata-value--component', props.className)} />;\n\t\tcase 'datetime':\n\t\t\treturn <DateTime type=\"inherit\" value={props.value} format={props.dateFormat} timeFormat={props.timeFormat} preset={props.datePreset} locale={props.dateLocale} emptyLabel={props.emptyLabel} className={cn('metadata-value--component', props.className)} />;\n\t\tcase 'money':\n\t\t\treturn (\n\t\t\t\t<Money\n\t\t\t\t\ttype=\"inherit\"\n\t\t\t\t\tamount={props.value}\n\t\t\t\t\tcurrency={props.currency}\n\t\t\t\t\tunit={props.unit}\n\t\t\t\t\tminorUnitScale={props.minorUnitScale}\n\t\t\t\t\tsymbol={props.symbol}\n\t\t\t\t\tcurrencyDisplay={props.currencyDisplay}\n\t\t\t\t\tformatMode={props.formatMode}\n\t\t\t\t\tminimumFractionDigits={props.minimumFractionDigits}\n\t\t\t\t\tmaximumFractionDigits={props.maximumFractionDigits}\n\t\t\t\t\tlocale={props.locale}\n\t\t\t\t\temptyLabel={props.emptyLabel}\n\t\t\t\t\tclassName={cn('metadata-value--component', props.className)}\n\t\t\t\t/>\n\t\t\t);\n\t\tcase 'badge':\n\t\t\treturn (\n\t\t\t\t<Badge\n\t\t\t\t\ttone={props.badgeTone ?? 'secondary'}\n\t\t\t\t\tsize={props.badgeSize}\n\t\t\t\t\tinline\n\t\t\t\t\tclassName={cn('metadata-value--component self-start justify-self-start', props.className)}\n\t\t\t\t>\n\t\t\t\t\t{props.display ?? props.value}\n\t\t\t\t</Badge>\n\t\t\t);\n\t\tdefault:\n\t\t\treturn assertNever(props);\n\t}\n}\n\nMetadataValue.displayName = 'MetadataValue';\n","/**\n * MetadataList — flexible label/value list for entity metadata.\n *\n * Three layouts:\n * - `grid` (default): label-on-top, value-below cells for entity details.\n * - `rows`: a two-column definition list (`<dl>`) on proportional tracks.\n * Rules between rows are opt-in through `itemSeparator`.\n * - `inline`: label/separator/value pairs that wrap, suitable for\n * pill-style summaries (e.g. \"Created Jan 4 · By Alice · v3.2\").\n *\n * Each item supports an optional icon, tooltip, React-node value, custom\n * `render`, and per-item `emptyLabel`. Falls back to the shared `EMPTY` when\n * both are missing. Returns `null` when the list is empty so callers can render\n * unconditionally.\n */\nimport { Info } from 'lucide-react';\nimport React from 'react';\n\nimport { Separator } from '../display/separator';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../display/tooltip';\nimport { Grid, Stack, type ResponsiveValue } from '../structure';\nimport { compileResponsiveClasses, resolveResponsiveEntries } from '../structure/structure.responsive';\nimport { DisplayLabel } from '../../typography/display-label';\nimport { Text } from '../../typography/text';\nimport { textVariants } from '../../typography/text.styles';\nimport { EMPTY } from '../../../lib/format';\nimport { affordanceGeometry } from '../../../lib/affordance-geometry.generated';\nimport { fieldAffordanceRecipes } from '../../../lib/field-affordance-recipes';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport {\n\tdefaultMetadataListStrings,\n\ttype MetadataListStrings,\n} from './metadata-list.strings';\nimport {\n\tMetadataValue,\n\ttype MetadataValueDescriptor,\n} from './metadata-value';\n\nexport type { MetadataListStrings };\nexport { defaultMetadataListStrings };\n\nexport type MetadataListItem = {\n\t/** Stable identity for this entry. Without one the label and index stand in. */\n\tid?: string;\n\t/** Display label. */\n\tlabel: React.ReactNode;\n\t/** A node, or a descriptor that names the fact's kind. */\n\tvalue?: React.ReactNode | MetadataValueDescriptor | null;\n\t/** Supporting copy shown under the value. */\n\tdescription?: React.ReactNode | null;\n\t/** Shown from an info trigger beside the label, named after the label through `strings.formatInfoAriaLabel`. */\n\ttooltip?: React.ReactNode;\n\t/** Leading glyph. Any component that accepts `className`, including Lucide icons. */\n\ticon?: React.ComponentType<{ className?: string }>;\n\t/** Shown when this item's value is absent, in place of the list's `emptyLabel`. */\n\temptyLabel?: React.ReactNode;\n\t/** Takes over the value. The output sits in the value box, so it inherits the value's type role. */\n\trender?: (item: MetadataListItem) => React.ReactNode;\n};\n\nexport type MetadataInlineListItem = Omit<MetadataListItem, 'description'> & {\n\tdescription?: never;\n};\n\nexport type MetadataLayout = 'grid' | 'rows' | 'inline';\nexport type MetadataDensity = 'default' | 'compact';\n\ntype MetadataListSharedProps = {\n\t/** How many columns the grid layout uses. Accepts a per-breakpoint value. */\n\tcolumns?: ResponsiveValue<1 | 2 | 3 | 4>;\n\t/** Measure responsive grid columns against this list's own width (default) or the viewport. */\n\tadaptTo?: 'viewport' | 'container';\n\t/** Row spacing. `compact` tightens the list for dense panels. */\n\tdensity?: MetadataDensity;\n\t/** Copy shown for an item whose value is empty. Defaults to an em dash. */\n\temptyLabel?: React.ReactNode;\n\t/** Surface title. */\n\ttitle?: React.ReactNode;\n\t/** Draws a rule between the title and the first item. */\n\ttitleSeparator?: boolean;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n\t/** Character placed between a label and its value. Defaults to a colon. */\n\tseparator?: string;\n\t/**\n\t * Divider between items, off by default. In `rows`, any truthy value draws a\n\t * rule between rows (never at the ends). In `inline`, `true` places a middle\n\t * dot (`·`) and a string places that character.\n\t */\n\titemSeparator?: boolean | string;\n\t/** Per-instance string overrides (deep-merged over `defaultMetadataListStrings`). */\n\tstrings?: StringsProp<MetadataListStrings>;\n};\n\ntype MetadataGridRowsProps = MetadataListSharedProps & {\n\t/** Label/value pairs to render. */\n\titems: MetadataListItem[];\n\t/** `grid` flows items into `columns`; `rows` stacks them one per line. Default: `grid`. */\n\tlayout?: 'grid' | 'rows';\n\t/**\n\t * Rows layout only. `start` (default) places values and descriptions at the\n\t * start of proportional label/value tracks; `end` pins them to the row's end\n\t * edge, for figures that read down a column.\n\t */\n\tvalueAlign?: 'start' | 'end';\n};\n\ntype MetadataInlineProps = MetadataListSharedProps & {\n\t/** Label/value pairs run together on wrapping lines. Inline items take no description. */\n\titems: MetadataInlineListItem[];\n\t/** Runs the label/value pairs together on one line, separated by `itemSeparator`. */\n\tlayout: 'inline';\n\t/** Not used by the inline layout. */\n\tvalueAlign?: never;\n};\n\nexport type MetadataListProps =\n\t| MetadataGridRowsProps\n\t| MetadataInlineProps;\n\nconst metadataColumnRecipes: Record<1 | 2 | 3 | 4, ResponsiveValue<1 | 2 | 3 | 4>> = {\n\t1: 1,\n\t2: { base: 1, md: 2 },\n\t3: { base: 1, sm: 2, lg: 3 },\n\t4: { base: 1, sm: 2, lg: 3, xl: 4 },\n};\n\n// Component-width thresholds let facts share columns in padded cards while\n// narrow rails retain one readable track. The local name prevents an unrelated\n// outer container from driving an embedded list.\nconst metadataContainerColumns = {\n\tbase: { 1: 'grid-cols-1', 2: 'grid-cols-2', 3: 'grid-cols-3', 4: 'grid-cols-4' },\n\tsm: { 1: '@min-[22rem]/metadata-list:grid-cols-1', 2: '@min-[22rem]/metadata-list:grid-cols-2', 3: '@min-[22rem]/metadata-list:grid-cols-3', 4: '@min-[22rem]/metadata-list:grid-cols-4' },\n\tmd: { 1: '@min-[28rem]/metadata-list:grid-cols-1', 2: '@min-[28rem]/metadata-list:grid-cols-2', 3: '@min-[28rem]/metadata-list:grid-cols-3', 4: '@min-[28rem]/metadata-list:grid-cols-4' },\n\tlg: { 1: '@min-[38rem]/metadata-list:grid-cols-1', 2: '@min-[38rem]/metadata-list:grid-cols-2', 3: '@min-[38rem]/metadata-list:grid-cols-3', 4: '@min-[38rem]/metadata-list:grid-cols-4' },\n\txl: { 1: '@min-[52rem]/metadata-list:grid-cols-1', 2: '@min-[52rem]/metadata-list:grid-cols-2', 3: '@min-[52rem]/metadata-list:grid-cols-3', 4: '@min-[52rem]/metadata-list:grid-cols-4' },\n\t'2xl': { 1: '@min-[64rem]/metadata-list:grid-cols-1', 2: '@min-[64rem]/metadata-list:grid-cols-2', 3: '@min-[64rem]/metadata-list:grid-cols-3', 4: '@min-[64rem]/metadata-list:grid-cols-4' },\n} as const;\n\nfunction resolveMetadataColumns(\n\tcolumns: ResponsiveValue<1 | 2 | 3 | 4>,\n): ResponsiveValue<1 | 2 | 3 | 4> {\n\treturn typeof columns === 'object' ? columns : metadataColumnRecipes[columns];\n}\n\n/**\n * Item labels keep the display-label role (default size, tight leading,\n * inherited foreground) at semibold: medium weight does not separate a label from its\n * value on every font, and the label is what a reader scans for. Labels wrap in\n * every layout, breaking long unspaced words rather than overflowing.\n */\nfunction MetadataLabel({ children }: { children: React.ReactNode }) {\n\treturn (\n\t\t<Text type=\"inherit\" tag=\"span\" size=\"sm\" weight=\"semibold\" lineHeight=\"tight\" className=\"metadata-list--label metadata--field min-w-0 text-left [overflow-wrap:anywhere]\">\n\t\t\t{children}\n\t\t</Text>\n\t);\n}\n\n/**\n * Inline value controls, a Copyable's copy action and a status Badge, keep their\n * own size but bleed back to the value's text line through negative block\n * margins, so a row or inline pair holding one keeps the plain-text rhythm\n * instead of growing by the control's extra height. Grid cells stack the value\n * under its label and keep the control's full box below it.\n */\nconst inlineControlBleed = '[&>.copyable--component]:-my-space-sm [&>.badge--component]:-my-space-xs';\n\n/**\n * A custom renderer's box takes the value's leading. Standalone link values set\n * their own looser leading, so a link rendered directly in the box takes the\n * box's leading, as a generated `email`/`phone`/`url` value does.\n */\nconst renderedLinkLeading = '[&>.link--component]:leading-tight';\nconst renderedValueClasses = cn(inlineControlBleed, renderedLinkLeading);\n\nconst resolveKey = (item: MetadataListItem, index: number): string => {\n\tif (item.id) {\n\t\treturn item.id;\n\t}\n\n\tconst rawLabel = typeof item.label === 'string' ? item.label : `${index}`;\n\treturn `metadata-${rawLabel}-${index}`;\n};\n\nfunction isPrimitiveMetadataValue(value: React.ReactNode): value is string | number {\n\treturn typeof value === 'string' || typeof value === 'number';\n}\n\nfunction isMetadataValueDescriptor(value: unknown): value is MetadataValueDescriptor {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\t!React.isValidElement(value) &&\n\t\t!Array.isArray(value) &&\n\t\t('kind' in value || 'node' in value || 'value' in value)\n\t);\n}\n\nfunction renderMetadataValue({\n\tvalue,\n\tisEmptyValue,\n\temptyLabel,\n\tvalueBase,\n}: {\n\tvalue: React.ReactNode | MetadataValueDescriptor;\n\tisEmptyValue: boolean;\n\temptyLabel: React.ReactNode;\n\tvalueBase: string;\n}) {\n\tif (isMetadataValueDescriptor(value)) {\n\t\tif (value.kind === 'node') return <MetadataValue {...value} />;\n\t\treturn (\n\t\t\t<MetadataValue\n\t\t\t\t{...value}\n\t\t\t\temptyLabel={value.emptyLabel ?? emptyLabel}\n\t\t\t\tclassName={cn(valueBase, value.className)}\n\t\t\t/>\n\t\t);\n\t}\n\n\tif (isPrimitiveMetadataValue(value)) {\n\t\treturn (\n\t\t\t<MetadataValue\n\t\t\t\tvalue={value}\n\t\t\t\tkind={isEmptyValue ? 'empty' : 'text'}\n\t\t\t\temptyLabel={emptyLabel}\n\t\t\t\tclassName={valueBase}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn value;\n}\n\n/**\n * Generated values go through `MetadataValue`. A custom renderer's output sits\n * in the value box, so it takes the value's type role (size, leading,\n * foreground) like a generated value.\n */\nfunction renderItemValue({\n\titem,\n\tvalueBase,\n\trenderedClassName,\n\ttag: Tag = 'div',\n\temptyLabel,\n}: {\n\titem: MetadataListItem;\n\tvalueBase: string;\n\trenderedClassName: string;\n\ttag?: 'div' | 'span';\n\temptyLabel: React.ReactNode;\n}) {\n\tif (typeof item.render === 'function') {\n\t\treturn <Tag className={renderedClassName}>{item.render(item)}</Tag>;\n\t}\n\treturn renderMetadataValue({\n\t\tvalue: item.value ?? emptyLabel,\n\t\tisEmptyValue: item.value === null || item.value === undefined,\n\t\temptyLabel,\n\t\tvalueBase,\n\t});\n}\n\n/**\n * The trigger keeps the shared clear-target size for pointer comfort, while\n * negative block margins pull its box back to the glyph, so a tooltip never\n * makes its label line taller than its neighbours'.\n */\nfunction MetadataInfoTrigger({\n\ttriggerProps,\n\tariaLabel,\n}: {\n\ttriggerProps: React.ComponentProps<'button'>;\n\tariaLabel: string;\n}) {\n\tconst { className, ...props } = triggerProps;\n\treturn (\n\t\t<button\n\t\t\t{...props}\n\t\t\ttype=\"button\"\n\t\t\tclassName={cn(\n\t\t\t\t'metadata-list--info-trigger',\n\t\t\t\tfieldAffordanceRecipes.target,\n\t\t\t\tfieldAffordanceRecipes.focus,\n\t\t\t\tfieldAffordanceRecipes.clear,\n\t\t\t\taffordanceGeometry.clearTargetBleed,\n\t\t\t\t'cursor-help self-center',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\taria-label={ariaLabel}\n\t\t>\n\t\t\t<Info className={fieldAffordanceRecipes.icon} aria-hidden=\"true\" />\n\t\t</button>\n\t);\n}\n\nfunction MetadataItemInfo({\n\titem,\n\tstrings,\n}: {\n\titem: MetadataListItem;\n\tstrings: MetadataListStrings;\n}) {\n\tif (item.tooltip === null || item.tooltip === undefined) return null;\n\treturn (\n\t\t<Tooltip>\n\t\t\t<TooltipTrigger\n\t\t\t\trender={(triggerProps) => (\n\t\t\t\t\t<MetadataInfoTrigger\n\t\t\t\t\t\ttriggerProps={triggerProps}\n\t\t\t\t\t\tariaLabel={typeof item.label === 'string' ? strings.formatInfoAriaLabel(item.label) : strings.infoFallback}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<TooltipContent side=\"top\" align=\"start\" className=\"max-w-80\">\n\t\t\t\t<Text type=\"inverse\" size=\"xs\">{item.tooltip}</Text>\n\t\t\t</TooltipContent>\n\t\t</Tooltip>\n\t);\n}\n\nfunction MetadataItemIcon({ item, isCompact }: { item: MetadataListItem; isCompact: boolean }) {\n\tconst Icon = item.icon;\n\tif (!Icon) return null;\n\treturn (\n\t\t<Icon\n\t\t\tclassName={cn(\n\t\t\t\t'flex-shrink-0 self-center text-muted-foreground',\n\t\t\t\tisCompact ? 'size-icon-sm' : 'size-icon',\n\t\t\t)}\n\t\t/>\n\t);\n}\n\nexport function MetadataList({\n\titems,\n\tcolumns = 2,\n\tadaptTo = 'container',\n\tdensity = 'default',\n\temptyLabel = EMPTY,\n\ttitle,\n\ttitleSeparator = false,\n\tclassName,\n\tlayout = 'grid',\n\tseparator = ': ',\n\titemSeparator = false,\n\tvalueAlign = 'start',\n\tstrings: stringsProp,\n}: MetadataListProps) {\n\tconst strings = useStrings(defaultMetadataListStrings, stringsProp);\n\tconst list = React.useMemo(() => (items as MetadataListItem[]).filter(Boolean), [items]);\n\n\tif (list.length === 0) {\n\t\treturn null;\n\t}\n\n\tconst isCompact = density === 'compact';\n\tconst valueBase = 'metadata-list--value text-sm';\n\tconst hasTitle = title !== null && title !== undefined;\n\tconst shouldShowSeparator = hasTitle && titleSeparator;\n\tconst rootClassName = cn('metadata-list--component', 'metadata-list-container @container/metadata-list', className);\n\tconst head = (\n\t\t<>\n\t\t\t{!!hasTitle && (\n\t\t\t\t<DisplayLabel tag=\"div\" className=\"metadata-list--title block text-inherit\">\n\t\t\t\t\t{title}\n\t\t\t\t</DisplayLabel>\n\t\t\t)}\n\t\t\t{!!shouldShowSeparator && <Separator className=\"metadata-list--title-separator\" />}\n\t\t</>\n\t);\n\n\tif (layout === 'inline') {\n\t\tconst itemSeparatorText =\n\t\t\ttypeof itemSeparator === 'string'\n\t\t\t\t? itemSeparator\n\t\t\t\t: itemSeparator\n\t\t\t\t\t? '·'\n\t\t\t\t\t: '';\n\n\t\treturn (\n\t\t\t<Stack gap=\"sm\" data-metadata-density={density} className={rootClassName}>\n\t\t\t\t{head}\n\n\t\t\t\t<Stack\n\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\talign=\"baseline\"\n\t\t\t\t\tgap={isCompact ? 'sm' : 'md'}\n\t\t\t\t\tclassName=\"metadata-list--inline\"\n\t\t\t\t>\n\t\t\t\t\t{list.map((item, index) => {\n\t\t\t\t\t\tconst showItemSeparator = itemSeparatorText && index < list.length - 1;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<React.Fragment key={resolveKey(item, index)}>\n\t\t\t\t\t\t\t\t<Stack direction=\"horizontal\" align=\"baseline\" gap=\"xs\" className={cn('metadata-list--item min-w-0 [&>*]:max-w-full [&>*]:min-w-0 [&>.badge--component]:self-center', inlineControlBleed)}>\n\t\t\t\t\t\t\t\t\t<MetadataItemIcon item={item} isCompact={isCompact} />\n\n\t\t\t\t\t\t\t\t\t{/* Label, optional info trigger, and the separator are one\n\t\t\t\t\t\t\t\t\t unit that never wraps apart: the item Stack's gap would\n\t\t\t\t\t\t\t\t\t otherwise fall between the label and the colon and render\n\t\t\t\t\t\t\t\t\t \"SKU : value\" — French spacing — instead of \"SKU: value\".\n\t\t\t\t\t\t\t\t\t The label itself still wraps inside the unit. */}\n\t\t\t\t\t\t\t\t\t<Stack direction=\"horizontal\" gap=\"none\" align=\"baseline\" wrap={false} className=\"max-w-full shrink-0\">\n\t\t\t\t\t\t\t\t\t\t<MetadataLabel>\n\t\t\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t\t\t</MetadataLabel>\n\n\t\t\t\t\t\t\t\t\t\t<MetadataItemInfo item={item} strings={strings} />\n\n\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{separator}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t</Stack>\n\n\t\t\t\t\t\t\t\t\t{renderItemValue({\n\t\t\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\t\t\ttag: 'span',\n\t\t\t\t\t\t\t\t\t\temptyLabel: item.emptyLabel ?? emptyLabel,\n\t\t\t\t\t\t\t\t\t\tvalueBase: cn(valueBase, 'leading-tight'),\n\t\t\t\t\t\t\t\t\t\trenderedClassName: cn(valueBase, renderedValueClasses, textVariants({ type: 'inherit', size: 'sm', lineHeight: 'tight' })),\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t</Stack>\n\n\t\t\t\t\t\t\t\t{!!showItemSeparator && (\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"metadata-list--item-separator select-none\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{itemSeparatorText}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</React.Fragment>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</Stack>\n\t\t\t</Stack>\n\t\t);\n\t}\n\n\tif (layout === 'rows') {\n\t\tconst rowPaddingY = isCompact ? 'py-row-y-sm' : 'py-row-y';\n\t\tconst isEndAligned = valueAlign === 'end';\n\t\t// `start` uses proportional tracks, so values line up down the list\n\t\t// without a label min-width that would crowd phones. `end` keeps the\n\t\t// label track flexible and pins a content-sized value to the row end.\n\t\tconst rowTrack = isEndAligned\n\t\t\t? 'grid-cols-[minmax(0,1fr)_fit-content(60%)] gap-x-space-md'\n\t\t\t: cn('grid-cols-[minmax(0,2fr)_minmax(0,3fr)]', isCompact ? 'gap-x-space-lg' : 'gap-x-space-xl');\n\t\tconst valueAlignClassName = isEndAligned ? 'text-end' : 'text-start';\n\t\treturn (\n\t\t\t<Stack gap=\"sm\" data-metadata-density={density} className={rootClassName}>\n\t\t\t\t{head}\n\t\t\t\t<Stack\n\t\t\t\t\trender={<dl />}\n\t\t\t\t\tgap=\"none\"\n\t\t\t\t\tdata-value-align={valueAlign}\n\t\t\t\t\tclassName={cn('metadata-list--rows m-0', !!itemSeparator && 'divide-y divide-border/60')}\n\t\t\t\t>\n\t\t\t\t\t{list.map((item, index) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={resolveKey(item, index)}\n\t\t\t\t\t\t\tclassName={cn('metadata-list--item grid items-baseline', rowTrack, rowPaddingY)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<dt className=\"flex min-w-0 items-center gap-space-sm\">\n\t\t\t\t\t\t\t\t<MetadataItemIcon item={item} isCompact={isCompact} />\n\t\t\t\t\t\t\t\t<MetadataLabel>\n\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t</MetadataLabel>\n\t\t\t\t\t\t\t\t<MetadataItemInfo item={item} strings={strings} />\n\t\t\t\t\t\t\t</dt>\n\t\t\t\t\t\t\t<dd\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'm-0 grid min-w-0 gap-dense break-words [overflow-wrap:anywhere] [&>*]:max-w-full [&>*]:min-w-0',\n\t\t\t\t\t\t\t\t\tinlineControlBleed,\n\t\t\t\t\t\t\t\t\tvalueAlignClassName,\n\t\t\t\t\t\t\t\t\tisEndAligned\n\t\t\t\t\t\t\t\t\t\t? 'justify-items-end [&>.badge--component]:justify-self-end'\n\t\t\t\t\t\t\t\t\t\t: 'justify-items-start [&>.badge--component]:justify-self-start',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderItemValue({\n\t\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\t\temptyLabel: item.emptyLabel ?? emptyLabel,\n\t\t\t\t\t\t\t\t\tvalueBase: cn(valueBase, valueAlignClassName, 'break-words leading-tight'),\n\t\t\t\t\t\t\t\t\trenderedClassName: cn(valueBase, 'break-words', renderedValueClasses, textVariants({ type: 'inherit', size: 'sm', lineHeight: 'tight', align: isEndAligned ? 'right' : 'left' })),\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t\t\t\t<Text size=\"xs\" type=\"secondary\" align={isEndAligned ? 'right' : 'left'} lineHeight=\"snug\" className=\"metadata-list--description\">\n\t\t\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</dd>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</Stack>\n\t\t\t</Stack>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Stack gap=\"sm\" data-metadata-density={density} className={rootClassName}>\n\t\t\t{head}\n\n\t\t\t<Grid\n\t\t\t\tcolumns={adaptTo === 'container' ? 1 : resolveMetadataColumns(columns)}\n\t\t\t\tgap={isCompact ? 'md' : 'xl'}\n\t\t\t\talign=\"start\"\n\t\t\t\tclassName={cn('metadata-list--grid', adaptTo === 'container' && compileResponsiveClasses(resolveResponsiveEntries(resolveMetadataColumns(columns), 1), metadataContainerColumns))}\n\t\t\t>\n\t\t\t\t{list.map((item, index) => (\n\t\t\t\t\t<Stack\n\t\t\t\t\t\tkey={resolveKey(item, index)}\n\t\t\t\t\t\tgap={isCompact ? 'dense' : 'normal'}\n\t\t\t\t\t\tclassName=\"metadata-list--item min-w-0 items-start [&>*]:max-w-full [&>*]:min-w-0 [&>.badge--component]:self-start\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"flex min-w-0 items-center gap-space-sm\">\n\t\t\t\t\t\t\t<MetadataItemIcon item={item} isCompact={isCompact} />\n\n\t\t\t\t\t\t\t<MetadataLabel>\n\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t</MetadataLabel>\n\n\t\t\t\t\t\t\t<MetadataItemInfo item={item} strings={strings} />\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{renderItemValue({\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\temptyLabel: item.emptyLabel ?? emptyLabel,\n\t\t\t\t\t\t\tvalueBase: cn(valueBase, 'leading-tight'),\n\t\t\t\t\t\t\trenderedClassName: cn(valueBase, renderedLinkLeading, textVariants({ type: 'inherit', size: 'sm', lineHeight: 'tight' })),\n\t\t\t\t\t\t})}\n\n\t\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\tlineHeight=\"snug\"\n\t\t\t\t\t\t\t\tclassName=\"metadata-list--description\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Stack>\n\t\t\t\t))}\n\t\t\t</Grid>\n\t\t</Stack>\n\t);\n}\n\nMetadataList.displayName = 'MetadataList';\n"],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ var e = "motion-reduce:transition-none motion-reduce:duration-0 motion-reduce:da
|
|
|
7
7
|
"[&:not([data-align-trigger=true])]:data-[side=inline-start]:data-starting-style:translate-x-1 [&:not([data-align-trigger=true])]:data-[side=inline-start]:data-ending-style:translate-x-1",
|
|
8
8
|
"[&:not([data-align-trigger=true])]:data-[side=inline-end]:data-starting-style:-translate-x-1 [&:not([data-align-trigger=true])]:data-[side=inline-end]:data-ending-style:-translate-x-1"
|
|
9
9
|
].join(" "), i = {
|
|
10
|
+
sidebar: `transition-[width] duration-150 ease-out ${e}`,
|
|
10
11
|
backdrop: `transition-opacity duration-200 ease-out data-ending-style:duration-100 ${t} ${e}`,
|
|
11
12
|
dialog: `transition-[opacity,scale] duration-200 ease-out data-ending-style:duration-150 ${t} ${n} ${e}`,
|
|
12
13
|
drawer: [
|
|
@@ -20,9 +21,16 @@ var e = "motion-reduce:transition-none motion-reduce:duration-0 motion-reduce:da
|
|
|
20
21
|
popup: `transition-[opacity,scale,translate] duration-150 ease-out data-ending-style:duration-100 ${t} ${n} ${r} ${e}`,
|
|
21
22
|
disclosure: `overflow-hidden transition-[height,padding-block] duration-200 ease-out data-starting-style:h-0 data-ending-style:h-0 data-starting-style:py-0! data-ending-style:py-0! ${e}`,
|
|
22
23
|
chevron: `transition-transform duration-200 ease-out ${e}`,
|
|
23
|
-
dock: `transition-[opacity,translate] duration-150 ease-out starting:opacity-0 starting:translate-y-space-lg ${e}
|
|
24
|
+
dock: `transition-[opacity,translate] duration-150 ease-out starting:opacity-0 starting:translate-y-space-lg ${e}`,
|
|
25
|
+
level: [
|
|
26
|
+
"transition-[opacity,translate] duration-150 ease-out",
|
|
27
|
+
"data-direction:starting:opacity-0",
|
|
28
|
+
"data-[direction=forward]:starting:translate-x-space-lg data-[direction=back]:starting:-translate-x-space-lg",
|
|
29
|
+
"rtl:data-[direction=forward]:starting:-translate-x-space-lg rtl:data-[direction=back]:starting:translate-x-space-lg",
|
|
30
|
+
e
|
|
31
|
+
].join(" ")
|
|
24
32
|
};
|
|
25
33
|
//#endregion
|
|
26
34
|
export { i as t };
|
|
27
35
|
|
|
28
|
-
//# sourceMappingURL=motion-recipes-
|
|
36
|
+
//# sourceMappingURL=motion-recipes-DitYv6P2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"motion-recipes-DitYv6P2.js","names":["reducedMotion","fadeStates","scaleStates","popupOffset","motionRecipes"],"sources":["../src/lib/motion-recipes.ts"],"sourcesContent":["/** Private CSS motion recipes. Base UI owns measurement, presence and focus. */\nconst reducedMotion = 'motion-reduce:transition-none motion-reduce:duration-0 motion-reduce:data-ending-style:duration-0';\nconst fadeStates = 'data-starting-style:opacity-0 data-ending-style:opacity-0';\nconst scaleStates = 'data-starting-style:scale-95 data-ending-style:scale-95';\nconst popupOffset = [\n '[&:not([data-align-trigger=true])]:data-[side=bottom]:data-starting-style:-translate-y-1 [&:not([data-align-trigger=true])]:data-[side=bottom]:data-ending-style:-translate-y-1',\n '[&:not([data-align-trigger=true])]:data-[side=top]:data-starting-style:translate-y-1 [&:not([data-align-trigger=true])]:data-[side=top]:data-ending-style:translate-y-1',\n '[&:not([data-align-trigger=true])]:data-[side=left]:data-starting-style:translate-x-1 [&:not([data-align-trigger=true])]:data-[side=left]:data-ending-style:translate-x-1',\n '[&:not([data-align-trigger=true])]:data-[side=right]:data-starting-style:-translate-x-1 [&:not([data-align-trigger=true])]:data-[side=right]:data-ending-style:-translate-x-1',\n '[&:not([data-align-trigger=true])]:data-[side=inline-start]:data-starting-style:translate-x-1 [&:not([data-align-trigger=true])]:data-[side=inline-start]:data-ending-style:translate-x-1',\n '[&:not([data-align-trigger=true])]:data-[side=inline-end]:data-starting-style:-translate-x-1 [&:not([data-align-trigger=true])]:data-[side=inline-end]:data-ending-style:-translate-x-1',\n].join(' ');\n\nexport const motionRecipes = {\n\t/** One navigation track owns collapse geometry; panel contents do not resize independently. */\n\tsidebar: `transition-[width] duration-150 ease-out ${reducedMotion}`,\n backdrop: `transition-opacity duration-200 ease-out data-ending-style:duration-100 ${fadeStates} ${reducedMotion}`,\n dialog: `transition-[opacity,scale] duration-200 ease-out data-ending-style:duration-150 ${fadeStates} ${scaleStates} ${reducedMotion}`,\n drawer: [\n 'transition-[translate] duration-250 ease-out data-ending-style:duration-200',\n 'data-[side=right]:data-starting-style:translate-x-full data-[side=right]:data-ending-style:translate-x-full',\n 'data-[side=left]:data-starting-style:-translate-x-full data-[side=left]:data-ending-style:-translate-x-full',\n 'data-[side=bottom]:data-starting-style:translate-y-full data-[side=bottom]:data-ending-style:translate-y-full',\n 'data-[side=top]:data-starting-style:-translate-y-full data-[side=top]:data-ending-style:-translate-y-full',\n reducedMotion,\n ].join(' '),\n popup: `transition-[opacity,scale,translate] duration-150 ease-out data-ending-style:duration-100 ${fadeStates} ${scaleStates} ${popupOffset} ${reducedMotion}`,\n disclosure: `overflow-hidden transition-[height,padding-block] duration-200 ease-out data-starting-style:h-0 data-ending-style:h-0 data-starting-style:py-0! data-ending-style:py-0! ${reducedMotion}`,\n chevron: `transition-transform duration-200 ease-out ${reducedMotion}`,\n // A surface that mounts docked (BatchActionBar) rises in once through\n // `@starting-style`, which also runs in a background tab where a frame-toggled\n // class would not. It unmounts without an exit.\n dock: `transition-[opacity,translate] duration-150 ease-out starting:opacity-0 starting:translate-y-space-lg ${reducedMotion}`,\n // A list level reached by navigation (a drilled branch, a new column) enters\n // from the side it was reached from, set by `data-direction`. Without the\n // attribute (first open, search results) it appears in place. The departing\n // level unmounts without an exit.\n level: [\n 'transition-[opacity,translate] duration-150 ease-out',\n 'data-direction:starting:opacity-0',\n 'data-[direction=forward]:starting:translate-x-space-lg data-[direction=back]:starting:-translate-x-space-lg',\n 'rtl:data-[direction=forward]:starting:-translate-x-space-lg rtl:data-[direction=back]:starting:translate-x-space-lg',\n reducedMotion,\n ].join(' '),\n} as const;\n"],"mappings":";AACA,IAAMA,IAAgB,qGAChBC,IAAa,6DACbC,IAAc,2DACdC,IAAc;CACnB;CACA;CACA;CACA;CACA;CACA;AACD,CAAC,CAAC,KAAK,GAAG,GAEGC,IAAgB;CAE5B,SAAS,4CAA4CJ;CACrD,UAAU,2EAA2EC,EAAW,GAAGD;CACnG,QAAQ,mFAAmFC,EAAW,GAAGC,EAAY,GAAGF;CACxH,QAAQ;EACP;EACA;EACA;EACA;EACA;EACAA;CACD,CAAC,CAAC,KAAK,GAAG;CACV,OAAO,6FAA6FC,EAAW,GAAGC,EAAY,GAAGC,EAAY,GAAGH;CAChJ,YAAY,2KAA2KA;CACvL,SAAS,8CAA8CA;CAIvD,MAAM,yGAAyGA;CAK/G,OAAO;EACN;EACA;EACA;EACA;EACAA;CACD,CAAC,CAAC,KAAK,GAAG;AACX"}
|