themelia-react-ui 1.0.1 → 1.0.2
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 +137 -0
- package/README.md +59 -13
- package/dist/{accordion-B-5Focs8.js → accordion-BRTcsp8J.js} +8 -8
- package/dist/accordion-BRTcsp8J.js.map +1 -0
- package/dist/{action-menu-Cx3SdfbN.js → action-menu-Drxw_vJk.js} +36 -36
- package/dist/action-menu-Drxw_vJk.js.map +1 -0
- package/dist/affordance-geometry.generated-CL84ZN9A.js +63 -0
- package/dist/affordance-geometry.generated-CL84ZN9A.js.map +1 -0
- package/dist/{ai-artifact-B5tPpXnS.js → ai-artifact-DLVdK0Py.js} +151 -155
- package/dist/ai-artifact-DLVdK0Py.js.map +1 -0
- package/dist/{app-shell-at8Kt4l_.js → app-shell-C_fKpljx.js} +11 -10
- package/dist/app-shell-C_fKpljx.js.map +1 -0
- package/dist/{attachment-BO2R47wn.js → attachment-DbjUWsP0.js} +12 -12
- package/dist/{attachment-BO2R47wn.js.map → attachment-DbjUWsP0.js.map} +1 -1
- package/dist/auth-CAQcasMV.js +723 -0
- package/dist/auth-CAQcasMV.js.map +1 -0
- package/dist/{avatar-Bpzty83c.js → avatar-Bu2HhitA.js} +6 -6
- package/dist/{avatar-Bpzty83c.js.map → avatar-Bu2HhitA.js.map} +1 -1
- package/dist/{badge-BZXZT9wd.js → badge-CzId1Wlm.js} +4 -4
- package/dist/{badge-BZXZT9wd.js.map → badge-CzId1Wlm.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/buttons.js +3 -2
- package/dist/base/cards.js +3 -3
- package/dist/base/carousel.js +25 -27
- package/dist/base/carousel.js.map +1 -1
- package/dist/base/cascader.js +150 -148
- package/dist/base/cascader.js.map +1 -1
- package/dist/base/chart.js +1 -1
- package/dist/base/choice-inputs.js +2 -2
- package/dist/base/code-block.js +1 -1
- package/dist/base/combobox.js +1 -1
- package/dist/base/command.js +1 -1
- package/dist/base/copyable.js +1 -1
- package/dist/base/date-pickers.js +3 -3
- package/dist/base/display.js +7 -7
- package/dist/base/feedback.js +4 -4
- package/dist/base/forms-numeric.js +1 -1
- package/dist/base/forms.js +2 -2
- package/dist/base/inline-edit.js +40 -43
- package/dist/base/inline-edit.js.map +1 -1
- package/dist/base/item.js +1 -1
- package/dist/base/media-gallery.js +1 -1
- package/dist/base/navigation.js +6 -6
- 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 +33 -33
- package/dist/base/repeaters.js.map +1 -1
- package/dist/base/sheet.js +1 -1
- package/dist/base/sidebar.js +1 -1
- package/dist/base/signature-pad.js +83 -81
- package/dist/base/signature-pad.js.map +1 -1
- package/dist/base/skeleton.js +1 -1
- package/dist/base/spinner.js +1 -1
- 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 +6 -6
- 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/blocks/admin.js +134 -134
- package/dist/blocks/admin.js.map +1 -1
- package/dist/blocks/ai.js +120 -117
- package/dist/blocks/ai.js.map +1 -1
- package/dist/blocks/analytics/usage-card.js +1 -1
- package/dist/blocks/analytics.js +510 -472
- package/dist/blocks/analytics.js.map +1 -1
- package/dist/blocks/collaboration.js +2 -2
- package/dist/blocks/commerce/receipt.js +1 -1
- package/dist/blocks/commerce.js +395 -383
- package/dist/blocks/commerce.js.map +1 -1
- package/dist/blocks/data-display.js +1 -1
- package/dist/blocks/onboarding.js +6 -6
- package/dist/blocks/onboarding.js.map +1 -1
- package/dist/blocks/planning.js +36 -36
- package/dist/blocks/planning.js.map +1 -1
- package/dist/blocks/timelines.js +1 -1
- package/dist/{breadcrumbs-DdQ_I5ra.js → breadcrumbs-BuYz5SDU.js} +9 -8
- package/dist/breadcrumbs-BuYz5SDU.js.map +1 -0
- package/dist/button-BZDasD04.js +651 -0
- package/dist/button-BZDasD04.js.map +1 -0
- package/dist/{button-BS6l5JUw.js → button-BZyfTvwm.js} +3 -3
- package/dist/button-BZyfTvwm.js.map +1 -0
- package/dist/buttons-D_6KJvEE.js +99 -0
- package/dist/buttons-D_6KJvEE.js.map +1 -0
- package/dist/{cards-Cum56XOF.js → cards-qGSErLw_.js} +12 -12
- package/dist/{cards-Cum56XOF.js.map → cards-qGSErLw_.js.map} +1 -1
- package/dist/chart-Bsc5BICK.js +150 -0
- package/dist/chart-Bsc5BICK.js.map +1 -0
- package/dist/{checkbox-BavDRjF7.js → checkbox-BQNDjUCh.js} +3 -3
- package/dist/checkbox-BQNDjUCh.js.map +1 -0
- package/dist/choice-inputs-Mk3iWbhr.js +725 -0
- package/dist/choice-inputs-Mk3iWbhr.js.map +1 -0
- package/dist/{code-block-xHKbAJDj.js → code-block-DzHKRybS.js} +23 -23
- package/dist/code-block-DzHKRybS.js.map +1 -0
- package/dist/{collapsible-DsnktFNv.js → collapsible-ClvC7Bj3.js} +3 -3
- package/dist/{collapsible-DsnktFNv.js.map → collapsible-ClvC7Bj3.js.map} +1 -1
- package/dist/{collection-content-C4fthJV_.js → collection-content-D6S8cv_n.js} +3 -3
- package/dist/{collection-content-C4fthJV_.js.map → collection-content-D6S8cv_n.js.map} +1 -1
- package/dist/{combobox-DEbdr-3u.js → combobox-BFnbJJp3.js} +18 -18
- package/dist/combobox-BFnbJJp3.js.map +1 -0
- package/dist/{combobox-xv3yJbzl.js → combobox-hozNwUcc.js} +313 -316
- package/dist/combobox-hozNwUcc.js.map +1 -0
- package/dist/{command-C0xe7u9B.js → command-BnmSchli.js} +9 -9
- package/dist/command-BnmSchli.js.map +1 -0
- package/dist/comments-u5L0OGip.js +1156 -0
- package/dist/comments-u5L0OGip.js.map +1 -0
- package/dist/components/base/buttons/button-group.recipes.d.ts +1 -1
- package/dist/components/base/buttons/button.recipes.d.ts +10 -19
- package/dist/components/base/buttons/use-pending-button-focus.d.ts +3 -0
- package/dist/components/base/cards/card.recipes.d.ts +13 -5
- package/dist/components/base/cards/partials/card-primitives.d.ts +9 -4
- package/dist/components/base/cards/smart-card.types.d.ts +1 -1
- package/dist/components/base/date-pickers/date-picker.recipes.d.ts +5 -18
- package/dist/components/base/date-pickers/datepicker.types.d.ts +3 -0
- package/dist/components/base/forms/form-field.d.ts +1 -0
- package/dist/components/base/forms/form-sizing.d.ts +3 -3
- package/dist/components/base/navigation/tabs.d.ts +3 -5
- package/dist/components/base/popover/popover.recipes.d.ts +3 -3
- package/dist/components/base/table/index.d.ts +1 -1
- package/dist/components/base/text-inputs/clear-native-field.d.ts +2 -0
- package/dist/components/base/text-inputs/input-trailing-action.d.ts +3 -0
- package/dist/components/blocks/analytics/types.d.ts +1 -1
- package/dist/components/blocks/collaboration/message/message.recipes.d.ts +12 -0
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/document-stack.d.ts +1 -4
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/inbox-clean.d.ts +1 -4
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/index.d.ts +3 -3
- package/dist/components/blocks/data-display/empty-state/partials/illustrations/stacked-cards.d.ts +1 -6
- package/dist/components/features/combobox/components/error-message.d.ts +1 -1
- package/dist/components/features/comments/hooks/use-attachment-upload.d.ts +5 -0
- package/dist/components/features/filters/facets/search-facet.d.ts +0 -12
- package/dist/components/features/filters/facets/tags-facet.d.ts +1 -1
- package/dist/components/features/media-library/media-library.d.ts +1 -1
- package/dist/components/features/media-library/media-library.types.d.ts +9 -1
- package/dist/components/features/media-library/partials/media-library-partials.d.ts +1 -1
- package/dist/components/features/overlays/hooks/use-pending-overlay-focus.d.ts +2 -0
- package/dist/components/features/overlays/overlays.types.d.ts +5 -4
- package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +2 -1
- package/dist/components/features/table/data-table.d.ts +1 -1
- package/dist/components/features/table/table.types.d.ts +1 -1
- package/dist/components/features/theme-tweaker/theme-provider-settings.d.ts +3 -1
- package/dist/components/layout/auth/auth.types.d.ts +1 -0
- package/dist/components/layout/page/page.d.ts +0 -1
- package/dist/components/layout/page/page.types.d.ts +9 -3
- package/dist/components/layout/sidebar/sidebar.context.d.ts +1 -1
- package/dist/components/layout/sidebar/sidebar.types.d.ts +4 -0
- package/dist/components/layout/workspace/workspace.types.d.ts +3 -0
- package/dist/components/typography/heading.d.ts +5 -2
- package/dist/components/typography/index.d.ts +1 -1
- package/dist/components/typography/text.styles.d.ts +10 -0
- package/dist/components/ui/popover.d.ts +1 -1
- package/dist/components/ui/sidebar.d.ts +1 -1
- package/dist/components/ui/table.d.ts +2 -1
- package/dist/container.recipes-D9t8MHR3.js +27 -0
- package/dist/container.recipes-D9t8MHR3.js.map +1 -0
- package/dist/{containers-6s-ucRQQ.js → containers-DqB-bSYE.js} +33 -56
- package/dist/containers-DqB-bSYE.js.map +1 -0
- package/dist/control-group-recipes-DBXmfh2E.js +21 -0
- package/dist/control-group-recipes-DBXmfh2E.js.map +1 -0
- package/dist/{copyable-B7SBXJMr.js → copyable-BTSByfmq.js} +6 -6
- package/dist/{copyable-B7SBXJMr.js.map → copyable-BTSByfmq.js.map} +1 -1
- package/dist/{data-display-cWIRdeaf.js → data-display-Bihs9Ven.js} +545 -332
- package/dist/data-display-Bihs9Ven.js.map +1 -0
- package/dist/{date-BFNMnrS5.js → date-DOKhJPu7.js} +4 -4
- package/dist/{date-BFNMnrS5.js.map → date-DOKhJPu7.js.map} +1 -1
- package/dist/{date-picker-CA6ogMQB.js → date-picker-DzP5HQq7.js} +492 -472
- package/dist/date-picker-DzP5HQq7.js.map +1 -0
- package/dist/date-pickers-BpgGz7S-.js +196 -0
- package/dist/date-pickers-BpgGz7S-.js.map +1 -0
- package/dist/{display-CFM5myut.js → display-CS6Hbk18.js} +8 -8
- package/dist/{display-CFM5myut.js.map → display-CS6Hbk18.js.map} +1 -1
- package/dist/{dropdown-menu-BlnyHr-9.js → dropdown-menu-D-boNgGO.js} +7 -7
- package/dist/{dropdown-menu-BlnyHr-9.js.map → dropdown-menu-D-boNgGO.js.map} +1 -1
- package/dist/features/activities.js +152 -141
- package/dist/features/activities.js.map +1 -1
- package/dist/features/ai-chat.js +182 -179
- package/dist/features/ai-chat.js.map +1 -1
- package/dist/features/async-preview.js +9 -9
- 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 +25 -23
- package/dist/features/data-view.js.map +1 -1
- package/dist/features/email-composer/engine.js +1 -1
- package/dist/features/email-composer.js +103 -104
- package/dist/features/email-composer.js.map +1 -1
- package/dist/features/event-calendar.js +375 -373
- package/dist/features/event-calendar.js.map +1 -1
- package/dist/features/filters.js +1 -1
- package/dist/features/global-search.js +222 -224
- package/dist/features/global-search.js.map +1 -1
- package/dist/features/kanban.js +29 -29
- package/dist/features/kanban.js.map +1 -1
- package/dist/features/map.js +59 -58
- package/dist/features/map.js.map +1 -1
- package/dist/features/media-library.js +856 -855
- 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 +1209 -1209
- package/dist/features/products.js.map +1 -1
- package/dist/features/questionnaire.js +52 -52
- package/dist/features/questionnaire.js.map +1 -1
- package/dist/features/resource-assignment.js +29 -31
- package/dist/features/resource-assignment.js.map +1 -1
- package/dist/features/resource.js +13 -13
- package/dist/features/resource.js.map +1 -1
- package/dist/features/rich-text-editor.js +2 -2
- package/dist/features/schema-form.js +82 -82
- package/dist/features/schema-form.js.map +1 -1
- package/dist/features/suggestions.js +3 -3
- package/dist/features/sync.js +4 -4
- package/dist/features/sync.js.map +1 -1
- package/dist/features/table.js +1 -1
- package/dist/features/theme-tweaker.js +456 -450
- package/dist/features/theme-tweaker.js.map +1 -1
- package/dist/{feedback-DWUkgEjR.js → feedback-CJkUAapr.js} +29 -29
- package/dist/feedback-CJkUAapr.js.map +1 -0
- package/dist/field-affordance-recipes-uKY4MsZ_.js +25 -0
- package/dist/field-affordance-recipes-uKY4MsZ_.js.map +1 -0
- package/dist/{field-state-recipes-CBTRt9Bt.js → field-state-recipes-DQQpiLWC.js} +3 -3
- package/dist/field-state-recipes-DQQpiLWC.js.map +1 -0
- package/dist/{filters-BhsUtsxW.js → filters-D6FF8L6s.js} +715 -720
- package/dist/filters-D6FF8L6s.js.map +1 -0
- package/dist/{form-field-Bn7ZH1rA.js → form-field-CZwrkP7m.js} +17 -9
- package/dist/form-field-CZwrkP7m.js.map +1 -0
- package/dist/{form-sizing-BWs70_a2.js → form-sizing-QP8aIRaW.js} +8 -5
- package/dist/form-sizing-QP8aIRaW.js.map +1 -0
- package/dist/{forms-B7pzS25o.js → forms-B5NCbkSC.js} +35 -35
- package/dist/{forms-B7pzS25o.js.map → forms-B5NCbkSC.js.map} +1 -1
- package/dist/forms-numeric-Crrm80Lm.js +867 -0
- package/dist/forms-numeric-Crrm80Lm.js.map +1 -0
- package/dist/{header-C59QZyxV.js → header-kxruN3RM.js} +53 -49
- package/dist/header-kxruN3RM.js.map +1 -0
- package/dist/{hooks-CM1Vp9Pe.js → hooks-BrlnCwQd.js} +2 -2
- package/dist/{hooks-CM1Vp9Pe.js.map → hooks-BrlnCwQd.js.map} +1 -1
- package/dist/{http-CLTVJc5I.js → http-CdEIHyQf.js} +2 -2
- package/dist/http-CdEIHyQf.js.map +1 -0
- package/dist/{icon-badge-Dv0RYQwj.js → icon-badge-Btc6pQrp.js} +4 -4
- package/dist/{icon-badge-Dv0RYQwj.js.map → icon-badge-Btc6pQrp.js.map} +1 -1
- package/dist/index.js +2 -2
- package/dist/input-SX9V0AL3.js +255 -0
- package/dist/input-SX9V0AL3.js.map +1 -0
- package/dist/input-vxcaNCYC.js +20 -0
- package/dist/input-vxcaNCYC.js.map +1 -0
- package/dist/{item-pJ0GsOiJ.js → item-DE4YnuJx.js} +18 -17
- package/dist/item-DE4YnuJx.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 +1 -1
- package/dist/layout/settings.js +1 -1
- package/dist/layout/sidebar.js +2 -2
- package/dist/layout/workspace.js +1 -1
- package/dist/layout.js +10 -10
- package/dist/lib/affordance-geometry.generated.d.ts +40 -9
- package/dist/lib/control-group-recipes.d.ts +22 -0
- package/dist/lib/field-affordance-recipes.d.ts +35 -2
- package/dist/lib/field-state-recipes.d.ts +2 -2
- package/dist/lib/navigation-row-recipes.d.ts +3 -2
- package/dist/lib/overlay-anatomy-recipes.d.ts +1 -1
- package/dist/lib/surface-recipes.d.ts +5 -2
- package/dist/lib/token-merge.generated.d.ts +144 -2
- package/dist/lib/ui-provider/types.d.ts +4 -2
- package/dist/lib/use-prefers-reduced-motion.d.ts +2 -0
- package/dist/lib/utils.js +1 -1
- package/dist/{media-gallery-DhDRgnVZ.js → media-gallery-DLp3HAz0.js} +75 -74
- package/dist/media-gallery-DLp3HAz0.js.map +1 -0
- package/dist/{mentions-B8Ko-fhS.js → mentions-Cl0Kt_Pd.js} +52 -50
- package/dist/{mentions-B8Ko-fhS.js.map → mentions-Cl0Kt_Pd.js.map} +1 -1
- package/dist/message-SZUNB1eX.js +127 -0
- package/dist/message-SZUNB1eX.js.map +1 -0
- package/dist/{navigation-DBEu4POU.js → navigation-DnQSNMT0.js} +64 -55
- package/dist/navigation-DnQSNMT0.js.map +1 -0
- package/dist/{navigation-BUIn2Qxx.js → navigation-DyytsLRB.js} +37 -37
- package/dist/navigation-DyytsLRB.js.map +1 -0
- package/dist/{navigation-row-recipes-GVh11KiT.js → navigation-row-recipes-DQEXQcqY.js} +3 -3
- package/dist/navigation-row-recipes-DQEXQcqY.js.map +1 -0
- package/dist/{number-BNT_BIzJ.js → number-DasMFWEG.js} +4 -4
- package/dist/{number-BNT_BIzJ.js.map → number-DasMFWEG.js.map} +1 -1
- package/dist/overlays-DUbs1KEi.js +1011 -0
- package/dist/overlays-DUbs1KEi.js.map +1 -0
- package/dist/{page-BV6ioQg3.js → page-hGmT4nWK.js} +75 -64
- package/dist/page-hGmT4nWK.js.map +1 -0
- package/dist/{page-header-DQRa0jug.js → page-header-D8nERkn5.js} +9 -9
- package/dist/page-header-D8nERkn5.js.map +1 -0
- package/dist/{pagination-C29vvt3I.js → pagination-NLGqRirf.js} +20 -20
- package/dist/pagination-NLGqRirf.js.map +1 -0
- package/dist/{popover-CoLDEg19.js → popover-CghIYdQf.js} +23 -22
- package/dist/popover-CghIYdQf.js.map +1 -0
- package/dist/{popover-menu-GLIQTJTx.js → popover-menu-B4PoWhRl.js} +6 -6
- package/dist/{popover-menu-GLIQTJTx.js.map → popover-menu-B4PoWhRl.js.map} +1 -1
- package/dist/{popover.recipes-zgBhMlUu.js → popover.recipes-QlD4JenO.js} +5 -5
- package/dist/popover.recipes-QlD4JenO.js.map +1 -0
- package/dist/{primitives-DKPOGVpj.js → primitives-C7ff0QaI.js} +120 -113
- package/dist/primitives-C7ff0QaI.js.map +1 -0
- package/dist/primitives.js +3 -3
- package/dist/{progress-BOe8l_FZ.js → progress-BroqrAyV.js} +10 -9
- package/dist/progress-BroqrAyV.js.map +1 -0
- package/dist/{receipt-BM8xsGFy.js → receipt-BuJynLgf.js} +8 -8
- package/dist/{receipt-BM8xsGFy.js.map → receipt-BuJynLgf.js.map} +1 -1
- package/dist/{rich-text-B7sBAdDG.js → rich-text-DlxDOtf4.js} +4 -4
- package/dist/{rich-text-B7sBAdDG.js.map → rich-text-DlxDOtf4.js.map} +1 -1
- package/dist/rich-text-editor-BKyG7rWz.js +574 -0
- package/dist/rich-text-editor-BKyG7rWz.js.map +1 -0
- package/dist/{rich-text-editor.recipes-DxvOE0Lp.js → rich-text-editor.recipes-B72Nfuze.js} +35 -26
- package/dist/rich-text-editor.recipes-B72Nfuze.js.map +1 -0
- package/dist/{scroll-area-BheMQ270.js → scroll-area-D-pIhEKl.js} +3 -3
- package/dist/scroll-area-D-pIhEKl.js.map +1 -0
- package/dist/{separator-Gk_WXH-l.js → separator-BNIgG3au.js} +3 -3
- package/dist/{separator-Gk_WXH-l.js.map → separator-BNIgG3au.js.map} +1 -1
- package/dist/{separator-DO0EbCEm.js → separator-BhtFyo4x.js} +2 -2
- package/dist/{separator-DO0EbCEm.js.map → separator-BhtFyo4x.js.map} +1 -1
- package/dist/services/actions.js +1 -1
- package/dist/{settings-BnCyyPOJ.js → settings-DOTOzeZ2.js} +10 -9
- package/dist/{settings-BnCyyPOJ.js.map → settings-DOTOzeZ2.js.map} +1 -1
- package/dist/{sheet-B-q914Ad.js → sheet-BFhrNehm.js} +11 -11
- package/dist/sheet-BFhrNehm.js.map +1 -0
- package/dist/{sidebar-DPR7fmqN.js → sidebar-CyR4XKwR.js} +219 -200
- package/dist/sidebar-CyR4XKwR.js.map +1 -0
- package/dist/{sidebar-C_2p3Tfj.js → sidebar-SvGJ0Zwi.js} +63 -58
- package/dist/sidebar-SvGJ0Zwi.js.map +1 -0
- package/dist/{skeleton-CmT1ppqb.js → skeleton-3F0uhYn3.js} +4 -4
- package/dist/{skeleton-CmT1ppqb.js.map → skeleton-3F0uhYn3.js.map} +1 -1
- package/dist/{smart-card-CYLn46e6.js → smart-card-DjGVV2xr.js} +171 -165
- package/dist/smart-card-DjGVV2xr.js.map +1 -0
- package/dist/{spinner-BY9HbUEh.js → spinner-Cpf7oRkF.js} +5 -5
- package/dist/{spinner-BY9HbUEh.js.map → spinner-Cpf7oRkF.js.map} +1 -1
- package/dist/{structure-MvKVq-oL.js → structure-CRdqVawd.js} +2 -2
- package/dist/{structure-MvKVq-oL.js.map → structure-CRdqVawd.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/{surface-recipes-CQfRr-VL.js → surface-recipes-Dd__PD-w.js} +4 -3
- package/dist/surface-recipes-Dd__PD-w.js.map +1 -0
- package/dist/{table-DnlAJ-xR.js → table-CLtJTxoR.js} +17 -16
- package/dist/table-CLtJTxoR.js.map +1 -0
- package/dist/table-CcRDZiLP.js +1444 -0
- package/dist/table-CcRDZiLP.js.map +1 -0
- package/dist/tabs-BNgu7g0u.js +188 -0
- package/dist/tabs-BNgu7g0u.js.map +1 -0
- package/dist/text-inputs-DsR56TR-.js +330 -0
- package/dist/text-inputs-DsR56TR-.js.map +1 -0
- package/dist/{text.styles-BwB7vAF2.js → text.styles-Q4sGAIgA.js} +18 -10
- package/dist/text.styles-Q4sGAIgA.js.map +1 -0
- package/dist/theme.css +77 -115
- package/dist/{timelines-B9ICkQcV.js → timelines-D1pkt3se.js} +84 -78
- package/dist/timelines-D1pkt3se.js.map +1 -0
- package/dist/{tree-BdWSaoFT.js → tree-BtmYyMZV.js} +8 -8
- package/dist/{tree-BdWSaoFT.js.map → tree-BtmYyMZV.js.map} +1 -1
- package/dist/typography/rich-text.js +1 -1
- package/dist/typography-BxQgiZyw.js +96 -0
- package/dist/typography-BxQgiZyw.js.map +1 -0
- package/dist/typography.js +1 -1
- package/dist/{ui-provider-CftIB6TY.js → ui-provider-DRPn3qNl.js} +3 -2
- package/dist/ui-provider-DRPn3qNl.js.map +1 -0
- package/dist/ui-provider.js +1 -1
- package/dist/{upload-D8Za5x_c.js → upload-CDbYw1WN.js} +326 -323
- package/dist/upload-CDbYw1WN.js.map +1 -0
- package/dist/{upload-queue-hIIYBLS7.js → upload-queue-CNd_hH_a.js} +25 -25
- package/dist/upload-queue-CNd_hH_a.js.map +1 -0
- package/dist/{usage-card-DnmnJ58D.js → usage-card-VyJLUwRr.js} +53 -54
- package/dist/usage-card-VyJLUwRr.js.map +1 -0
- package/dist/utils-BvH9PSmq.js +4275 -0
- package/dist/utils-BvH9PSmq.js.map +1 -0
- package/dist/value-inputs-D0KCrfVC.js +840 -0
- package/dist/value-inputs-D0KCrfVC.js.map +1 -0
- package/dist/{workspace-C1PZmk8L.js → workspace-CcR8r-Nt.js} +115 -122
- package/dist/workspace-CcR8r-Nt.js.map +1 -0
- package/docs/consumer-skill/SKILL.md +110 -119
- package/docs/consumer-skill/examples/analytics.tsx +34 -0
- package/docs/consumer-skill/examples/app-layout.tsx +42 -12
- package/docs/consumer-skill/examples/detail.tsx +20 -4
- package/docs/consumer-skill/examples/manifest.json +13 -1
- package/docs/consumer-skill/examples/website.tsx +56 -0
- package/docs/consumer-skill/references/analytics.md +70 -0
- package/docs/consumer-skill/references/composition.md +116 -2
- package/docs/consumer-skill/references/design-contract.md +33 -7
- package/docs/consumer-skill/references/discovery.md +76 -5
- package/docs/consumer-skill/references/integration.md +14 -0
- package/docs/consumer-skill/references/public-api.json +2023 -218
- package/docs/consumer-skill/references/review.md +55 -3
- package/docs/consumer-skill/references/theming.md +52 -7
- package/docs/consumer-skill/references/tokens.json +177 -9
- package/docs/consumer-skill/references/workflows.md +32 -0
- package/docs/consumer-skill/scripts/check-composition.mjs +1 -1
- package/docs/consumer-skill/scripts/composition-policy.mjs +179 -17
- package/docs/consumer-skill/scripts/discovery.mjs +61 -9
- package/docs/consumer-skill/scripts/surface-policy.mjs +44 -0
- package/package.json +7 -4
- package/dist/accordion-B-5Focs8.js.map +0 -1
- package/dist/action-menu-Cx3SdfbN.js.map +0 -1
- package/dist/affordance-geometry.generated-D8Jcfb0G.js +0 -32
- package/dist/affordance-geometry.generated-D8Jcfb0G.js.map +0 -1
- package/dist/ai-artifact-B5tPpXnS.js.map +0 -1
- package/dist/app-shell-at8Kt4l_.js.map +0 -1
- package/dist/auth-OFwWSAap.js +0 -704
- package/dist/auth-OFwWSAap.js.map +0 -1
- package/dist/breadcrumbs-DdQ_I5ra.js.map +0 -1
- package/dist/button-BS6l5JUw.js.map +0 -1
- package/dist/buttons-Co6GavvM.js +0 -674
- package/dist/buttons-Co6GavvM.js.map +0 -1
- package/dist/chart-DVfcwQu6.js +0 -149
- package/dist/chart-DVfcwQu6.js.map +0 -1
- package/dist/checkbox-BavDRjF7.js.map +0 -1
- package/dist/choice-inputs-CC7XqPQO.js +0 -619
- package/dist/choice-inputs-CC7XqPQO.js.map +0 -1
- package/dist/code-block-xHKbAJDj.js.map +0 -1
- package/dist/combobox-DEbdr-3u.js.map +0 -1
- package/dist/combobox-xv3yJbzl.js.map +0 -1
- package/dist/command-C0xe7u9B.js.map +0 -1
- package/dist/comments-DviPLnwy.js +0 -1132
- package/dist/comments-DviPLnwy.js.map +0 -1
- package/dist/containers-6s-ucRQQ.js.map +0 -1
- package/dist/data-display-cWIRdeaf.js.map +0 -1
- package/dist/date-picker-CA6ogMQB.js.map +0 -1
- package/dist/date-pickers-BPIKLdsD.js +0 -224
- package/dist/date-pickers-BPIKLdsD.js.map +0 -1
- package/dist/feedback-DWUkgEjR.js.map +0 -1
- package/dist/field-affordance-recipes-IjzPrCTw.js +0 -17
- package/dist/field-affordance-recipes-IjzPrCTw.js.map +0 -1
- package/dist/field-state-recipes-CBTRt9Bt.js.map +0 -1
- package/dist/filters-BhsUtsxW.js.map +0 -1
- package/dist/form-field-Bn7ZH1rA.js.map +0 -1
- package/dist/form-sizing-BWs70_a2.js.map +0 -1
- package/dist/forms-numeric-BUBxELBv.js +0 -867
- package/dist/forms-numeric-BUBxELBv.js.map +0 -1
- package/dist/header-C59QZyxV.js.map +0 -1
- package/dist/http-CLTVJc5I.js.map +0 -1
- package/dist/input-WwYQZJzG.js +0 -202
- package/dist/input-WwYQZJzG.js.map +0 -1
- package/dist/input-ci9fIgFH.js +0 -20
- package/dist/input-ci9fIgFH.js.map +0 -1
- package/dist/item-pJ0GsOiJ.js.map +0 -1
- package/dist/media-gallery-DhDRgnVZ.js.map +0 -1
- package/dist/message-COsdEvXT.js +0 -108
- package/dist/message-COsdEvXT.js.map +0 -1
- package/dist/navigation-BUIn2Qxx.js.map +0 -1
- package/dist/navigation-DBEu4POU.js.map +0 -1
- package/dist/navigation-row-recipes-GVh11KiT.js.map +0 -1
- package/dist/overlays-B11wZka6.js +0 -982
- package/dist/overlays-B11wZka6.js.map +0 -1
- package/dist/page-BV6ioQg3.js.map +0 -1
- package/dist/page-header-DQRa0jug.js.map +0 -1
- package/dist/pagination-C29vvt3I.js.map +0 -1
- package/dist/popover-CoLDEg19.js.map +0 -1
- package/dist/popover.recipes-zgBhMlUu.js.map +0 -1
- package/dist/primitives-DKPOGVpj.js.map +0 -1
- package/dist/progress-BOe8l_FZ.js.map +0 -1
- package/dist/rich-text-editor-CoVrTiSv.js +0 -575
- package/dist/rich-text-editor-CoVrTiSv.js.map +0 -1
- package/dist/rich-text-editor.recipes-DxvOE0Lp.js.map +0 -1
- package/dist/scroll-area-BheMQ270.js.map +0 -1
- package/dist/select-B2mb-qN2.js +0 -108
- package/dist/select-B2mb-qN2.js.map +0 -1
- package/dist/sheet-B-q914Ad.js.map +0 -1
- package/dist/sidebar-C_2p3Tfj.js.map +0 -1
- package/dist/sidebar-DPR7fmqN.js.map +0 -1
- package/dist/smart-card-CYLn46e6.js.map +0 -1
- package/dist/surface-recipes-CQfRr-VL.js.map +0 -1
- package/dist/table-BS39xnlq.js +0 -1424
- package/dist/table-BS39xnlq.js.map +0 -1
- package/dist/table-DnlAJ-xR.js.map +0 -1
- package/dist/tabs-B5cNMWiP.js +0 -187
- package/dist/tabs-B5cNMWiP.js.map +0 -1
- package/dist/text-inputs-Dh9XGyiS.js +0 -331
- package/dist/text-inputs-Dh9XGyiS.js.map +0 -1
- package/dist/text.styles-BwB7vAF2.js.map +0 -1
- package/dist/timelines-B9ICkQcV.js.map +0 -1
- package/dist/typography-Cv8MT-82.js +0 -96
- package/dist/typography-Cv8MT-82.js.map +0 -1
- package/dist/ui-provider-CftIB6TY.js.map +0 -1
- package/dist/upload-D8Za5x_c.js.map +0 -1
- package/dist/upload-queue-hIIYBLS7.js.map +0 -1
- package/dist/usage-card-DnmnJ58D.js.map +0 -1
- package/dist/utils-C2EKeIw3.js +0 -72
- package/dist/utils-C2EKeIw3.js.map +0 -1
- package/dist/value-inputs-DX2dbxjj.js +0 -824
- package/dist/value-inputs-DX2dbxjj.js.map +0 -1
- package/dist/workspace-C1PZmk8L.js.map +0 -1
|
@@ -37,14 +37,33 @@ identity check. It neither edits files nor installs dependencies. Add this
|
|
|
37
37
|
command to app CI if useful; repository lint is not automatically installed.
|
|
38
38
|
|
|
39
39
|
Errors cover unknown package entrypoints/symbols and statically detected overrides
|
|
40
|
-
of protected popup insets
|
|
40
|
+
of protected Card/popup insets, Card badges in headerAction/headerStart rather
|
|
41
|
+
than titleSuffix, control geometry/typography, fixed DisplayLabel/Badge
|
|
42
|
+
roles, cross-role shell/inner radius replacements, display-copy margins, or
|
|
43
|
+
attenuated shared focus rings on imported controls. Intentional nested bodies,
|
|
44
|
+
circular owners and joined-edge corner resets retain their roles. Import ownership
|
|
45
|
+
follows lexical bindings, preserving locally shadowed application components. Deprecated migration
|
|
41
46
|
owners, nested framed subjects and repeated literal headings produce review
|
|
42
47
|
warnings; warnings alone do not fail CI. Messages identify the owner and remedy.
|
|
48
|
+
Standalone compact Cards and Page gutter removal also produce review warnings.
|
|
49
|
+
Verified Card-owning Metric/card-grid, UsageCard and TaskCard compositions also
|
|
50
|
+
participate in nested-surface and peer-gap review. Metric without its card variant,
|
|
51
|
+
compact MetricGrid, flat TaskCard, ChartCard and Receipt do not establish a frame.
|
|
52
|
+
Direct framed/default Card peers, including GridCell-wrapped peers, in a statically
|
|
53
|
+
small Stack/Grid gap also warn; omitted gaps use the actual component defaults.
|
|
54
|
+
Review visible ring clearance and the application's ordinary surface policy.
|
|
55
|
+
Review the compact subject and actual parent inset; PageViewport supplies none.
|
|
56
|
+
Recognizable metric cards, repeated fact rows and centered empty regions suggest
|
|
57
|
+
Metric/MetricGrid, MetadataList/InlineStat or EmptyState. Lower-level Empty and
|
|
58
|
+
modal anatomy suggest their complete workflow owners. These semantic guesses
|
|
59
|
+
are contextual warnings: keep valid custom subjects, editable rows and modal
|
|
60
|
+
lifecycles when the complete owner's contract differs. An arbitrary *Card name
|
|
61
|
+
never establishes ownership; ChartCard and Receipt are useful counterexamples.
|
|
43
62
|
Use existing app lint/typechecking for wider language, utility and accessibility
|
|
44
63
|
coverage. The script is deliberately small and does not replace them.
|
|
45
64
|
|
|
46
|
-
Coverage is limited to direct public imports, aliases/namespaces,
|
|
47
|
-
static classes/styles/props. Dynamic expressions are reported as unresolved;
|
|
65
|
+
Coverage is limited to direct public imports, aliases/namespaces, native paragraph/
|
|
66
|
+
heading copy and same-file static classes/styles/props. Dynamic expressions are reported as unresolved;
|
|
48
67
|
cross-file wrappers, external CSS, render functions and runtime values require
|
|
49
68
|
review. Do not treat an empty report as proof of complete compliance or taste.
|
|
50
69
|
|
|
@@ -60,6 +79,14 @@ and failure/retry states. Use deferred requests to observe pending behavior.
|
|
|
60
79
|
Confirm accepted data changes and draft retention; a toast is only feedback.
|
|
61
80
|
Compare before/after at the same conditions and record unverified limits.
|
|
62
81
|
|
|
82
|
+
Treat the user's appearance feedback as an acceptance criterion. Reproduce the
|
|
83
|
+
reported state at its actual width/theme and improve the responsible composition
|
|
84
|
+
or shared recipe. Keep source findings, measurements and inspected-image judgment
|
|
85
|
+
distinct: matching classes/radii and zero overflow do not establish a coherent
|
|
86
|
+
appearance. Inspect borders, rings, clipping and settled transforms in the actual
|
|
87
|
+
state. Compare the requested theme value before changing a shared default; an
|
|
88
|
+
image should demonstrate that the correction addresses the visible complaint.
|
|
89
|
+
|
|
63
90
|
## Application policy
|
|
64
91
|
|
|
65
92
|
Keep a small app-owned reference linked from its agent instructions: name the
|
|
@@ -68,7 +95,32 @@ information priorities and relevant local tests. Link current representative
|
|
|
68
95
|
pages. Preserve permissions, transport, translations and product-specific forms.
|
|
69
96
|
Do not copy the package API manual or edit the packaged skill to encode local policy.
|
|
70
97
|
|
|
98
|
+
When agent output is wrong, inspect installed/copied identity, whether the skill
|
|
99
|
+
was loaded, its discovery results, the actual declarations/runtime, and competing
|
|
100
|
+
app adapters/guides. An import-valid screen can still follow the wrong ownership
|
|
101
|
+
rule. Check current source rather than strengthening every sentence into a ban;
|
|
102
|
+
document concrete contradictions and fix the owning policy. Static checks cannot
|
|
103
|
+
infer product meaning or prove which instructions an agent actually followed.
|
|
104
|
+
|
|
71
105
|
Package declarations define supported props; this skill defines shared composition
|
|
72
106
|
and anatomy; the app defines business meaning and page conventions. If a shared
|
|
73
107
|
owner fails in a valid composition, isolate a reproduction and report the owning
|
|
74
108
|
contract. Do not spread private selectors or copy the control to hide the issue.
|
|
109
|
+
|
|
110
|
+
## When a valid composition looks wrong
|
|
111
|
+
|
|
112
|
+
Compare the installed declarations, shipped CSS and copied skill version first.
|
|
113
|
+
Test without the app reset when fonts, borders or list insets differ. Combine
|
|
114
|
+
field affordances and vary density separately from spacing; inspect long copy
|
|
115
|
+
in a narrow parent at a wide viewport too. Source checks cannot detect these.
|
|
116
|
+
|
|
117
|
+
Prefer a minimal public-API reproduction over private descendant CSS. For example,
|
|
118
|
+
use Metric's card variant for a navigable KPI with formatted value/trend instead
|
|
119
|
+
of recreating its hierarchy with Card + Text. Use Heading's `size` for visual
|
|
120
|
+
emphasis while `tag` keeps semantic level; its default admin scale is deliberate.
|
|
121
|
+
A custom Card subject or an application-owned hero remains valid.
|
|
122
|
+
|
|
123
|
+
Run discovery using both the task phrase and exact family/symbol. A zero result
|
|
124
|
+
is not permission to invent an export: inspect public-api.json/declarations and
|
|
125
|
+
report a missing capability. Static unknown spreads/classes remain unresolved;
|
|
126
|
+
review them at runtime rather than treating an empty finding list as approval.
|
|
@@ -8,21 +8,50 @@ Use shadcn semantic surfaces/foregrounds: background, card, popover, primary, se
|
|
|
8
8
|
|
|
9
9
|
tokens.json distinguishes 23 structural roots, advanced typography/status settings, and derived utility spellings. A utility is not another public variable. Keep overrides in one stylesheet at root or ThemeScope, without copying computed CSS into JavaScript.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
The default `--radius` is 0.75rem (12px). One public root drives two shared
|
|
12
|
+
roles; component owners choose the role, so ordinary callers add no radius class.
|
|
13
|
+
|
|
14
|
+
| Role | Owners | Default |
|
|
15
|
+
| --- | --- | --- |
|
|
16
|
+
| `rounded-radius` | Cards, popup/command shells and other outer surfaces | 12px |
|
|
17
|
+
| `rounded-inner` | Inputs, buttons, select/facet triggers, collection/navigation rows and intentional nested bodies | 9px |
|
|
18
|
+
|
|
19
|
+
Standalone controls retain the inner role; a complete nested Card retains its
|
|
20
|
+
outer-shell role. Physical nesting does not select a different recipe.
|
|
21
|
+
|
|
22
|
+
The inner role is `min(radius × 0.75, min(height-action, height-control) ×
|
|
23
|
+
density-scale ÷ 4)`. The height bound keeps short controls restrained when an app
|
|
24
|
+
increases the global radius; a 0.75 multiplier alone would still produce capsules.
|
|
25
|
+
The smaller base height preserves a common inner radius when action and field
|
|
26
|
+
heights differ. Density scales that bound once: the default roots at density
|
|
27
|
+
0.875 yield 7.875px inner corners. Control size variants share the role; spacing
|
|
28
|
+
scale and surface padding do not change it. Do not override the derived alias as
|
|
29
|
+
another theme setting. Circular avatars/dots and joined-edge resets retain their
|
|
30
|
+
explicit shape mechanics; Badge retains its own root-based recipe.
|
|
31
|
+
|
|
32
|
+
CSS fits overlapping curves to the actual box, so computed values alone do not
|
|
33
|
+
prove the visible shape. Inspect settled corners, borders, clipping and focus
|
|
34
|
+
rings in opened surfaces. Change `--radius` at the theme boundary, rather than
|
|
35
|
+
replacing individual components' owned corners.
|
|
12
36
|
|
|
13
37
|
```css
|
|
14
|
-
/*
|
|
38
|
+
/* Intentional 40px controls, after style.css; overrides need no Tailwind build. */
|
|
15
39
|
:root {
|
|
16
|
-
--radius:
|
|
40
|
+
--radius: 0.75rem;
|
|
17
41
|
--height-action: 2.5rem;
|
|
18
42
|
--height-control: 2.5rem;
|
|
19
|
-
--surface-x:
|
|
20
|
-
--surface-y:
|
|
43
|
+
--surface-x: 1.25rem;
|
|
44
|
+
--surface-y: 1.25rem;
|
|
21
45
|
}
|
|
22
46
|
```
|
|
23
47
|
|
|
24
48
|
Action and editable-control heights are separate roles; keep roots equal for adjoining alignment. `--space-scale` multiplies structural gaps, inline insets and surface padding. `--density-scale` multiplies action/control height and collection block padding. Roots are unscaled measurements; do not pre-multiply and then apply the utility again.
|
|
25
49
|
|
|
50
|
+
Both surface roots default to 1.25rem. At a 16px root font and space-scale 1,
|
|
51
|
+
ordinary surface insets are 20px, compact insets are 10px and large insets are
|
|
52
|
+
36px. Page's default large gutters inherit that same recipe. Row insets,
|
|
53
|
+
control heights and copy gaps keep their independent roots.
|
|
54
|
+
|
|
26
55
|
| Shared geometry | Root / derivation |
|
|
27
56
|
| --- | --- |
|
|
28
57
|
| Actions versus fields | `--height-action` versus `--height-control`; default size uses the root times density-scale |
|
|
@@ -40,6 +69,12 @@ Explicit portal containers take precedence over the nearest ThemeScope. Place th
|
|
|
40
69
|
|
|
41
70
|
Apps using semantic utilities in their own JSX process themelia-react-ui/theme.css after Tailwind in a Tailwind v4 stylesheet. Compiled style.css styles shipped components but does not compile arbitrary app utility names. Keep app-owned classes namespaced and layout-focused.
|
|
42
71
|
|
|
72
|
+
The package class merger recognizes token overrides only for advertised utilities and exact class spellings emitted by the library stylesheet, including their negative, important and responsive forms. A valid Tailwind alias such as `m-space-2xl` can still be absent from that stylesheet. Unshipped aliases preserve existing fallback classes; they do not receive package override semantics merely because an app's separate Tailwind build can generate them. Use the app's own merge configuration for additional app-compiled aliases.
|
|
73
|
+
|
|
74
|
+
`ring` and `sidebar-ring` are focus roles tested at full strength. Preserve that
|
|
75
|
+
strength and verify at least 3:1 against adjacent surfaces when overriding the
|
|
76
|
+
theme; adding opacity can invalidate contrast even when the root color passes.
|
|
77
|
+
|
|
43
78
|
## Extend without drift
|
|
44
79
|
|
|
45
80
|
Reuse existing color, text, action/control, row, surface or shell responsibilities first. An app token stays app-owned, not a package knob. New package tokens require multiple consumers, one owner/default/purpose, contract/docs updates and scoped behavior verification. Never expand the budget to fix one preview.
|
|
@@ -49,8 +84,18 @@ Use public structures/utilities for custom composition. Missing API seams should
|
|
|
49
84
|
|
|
50
85
|
## Copy rhythm
|
|
51
86
|
|
|
52
|
-
Normal title/description gaps use `--gap-normal` (0.
|
|
53
|
-
copy uses `--gap-dense` (0.
|
|
87
|
+
Normal title/description gaps use `--gap-normal` (0.25rem); dense row and menu
|
|
88
|
+
copy uses `--gap-dense` (0.125rem). Both multiply once by `--space-scale` and
|
|
54
89
|
inherit through ThemeScope and portaled surfaces. Control heights and insets
|
|
55
90
|
remain separate. Use `textGap="normal" | "dense"` on headed surfaces and
|
|
56
91
|
`gap="normal" | "dense"` on Stack/Grid instead of adding a description margin.
|
|
92
|
+
|
|
93
|
+
## Independent geometry roles
|
|
94
|
+
|
|
95
|
+
Use `--space-scale` for room around content and `--density-scale` for control
|
|
96
|
+
heights. `--icon` and `--avatar` set media dimensions independently. Component
|
|
97
|
+
`size` picks a shared sm/md/lg recipe; collection `density` changes row padding.
|
|
98
|
+
Test these choices separately and in combination. Tables follow row insets,
|
|
99
|
+
Cards and code/message bodies follow surfaces, and image containment uses generic
|
|
100
|
+
spacing. Foundation directional spacing utilities ship with style.css and use
|
|
101
|
+
the same seven steps as gaps; generated spellings are not new theme roots.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"package": "themelia-react-ui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"structural": [
|
|
5
5
|
{
|
|
6
6
|
"name": "--space-scale",
|
|
@@ -14,12 +14,12 @@
|
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
"name": "--gap-normal",
|
|
17
|
-
"default": "0.
|
|
17
|
+
"default": "0.25rem",
|
|
18
18
|
"purpose": "Vertical rhythm between titles and structural descriptions."
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
"name": "--gap-dense",
|
|
22
|
-
"default": "0.
|
|
22
|
+
"default": "0.125rem",
|
|
23
23
|
"purpose": "Vertical rhythm between row titles and compact supporting copy."
|
|
24
24
|
},
|
|
25
25
|
{
|
|
@@ -49,12 +49,12 @@
|
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
51
|
"name": "--surface-x",
|
|
52
|
-
"default": "
|
|
52
|
+
"default": "1.25rem",
|
|
53
53
|
"purpose": "Default inline inset for cards and multi-content surfaces."
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
56
|
"name": "--surface-y",
|
|
57
|
-
"default": "
|
|
57
|
+
"default": "1.25rem",
|
|
58
58
|
"purpose": "Default block inset for cards and multi-content surfaces."
|
|
59
59
|
},
|
|
60
60
|
{
|
|
@@ -120,11 +120,11 @@
|
|
|
120
120
|
],
|
|
121
121
|
"radius": {
|
|
122
122
|
"name": "--radius",
|
|
123
|
-
"default": "
|
|
124
|
-
"purpose": "
|
|
123
|
+
"default": "0.75rem",
|
|
124
|
+
"purpose": "Shared 8px corners keep short controls rectangular; nested corners derive from this root.",
|
|
125
125
|
"defaultUtility": "rounded-radius",
|
|
126
126
|
"innerUtility": "rounded-inner",
|
|
127
|
-
"innerFormula": "calc(var(--radius) * 0.
|
|
127
|
+
"innerFormula": "min(calc(var(--radius) * 0.75), calc(min(var(--height-action), var(--height-control)) * var(--density-scale) / 4))"
|
|
128
128
|
},
|
|
129
129
|
"advanced": [
|
|
130
130
|
"--font-heading",
|
|
@@ -256,7 +256,175 @@
|
|
|
256
256
|
"gap-x-normal",
|
|
257
257
|
"gap-x-dense",
|
|
258
258
|
"gap-y-normal",
|
|
259
|
-
"gap-y-dense"
|
|
259
|
+
"gap-y-dense",
|
|
260
|
+
"pt-space-2xs",
|
|
261
|
+
"pt-space-xs",
|
|
262
|
+
"pt-space-sm",
|
|
263
|
+
"pt-space-md",
|
|
264
|
+
"pt-space-lg",
|
|
265
|
+
"pt-space-xl",
|
|
266
|
+
"pt-space-2xl",
|
|
267
|
+
"pb-space-2xs",
|
|
268
|
+
"pb-space-xs",
|
|
269
|
+
"pb-space-sm",
|
|
270
|
+
"pb-space-md",
|
|
271
|
+
"pb-space-lg",
|
|
272
|
+
"pb-space-xl",
|
|
273
|
+
"pb-space-2xl",
|
|
274
|
+
"pl-space-2xs",
|
|
275
|
+
"pl-space-xs",
|
|
276
|
+
"pl-space-sm",
|
|
277
|
+
"pl-space-md",
|
|
278
|
+
"pl-space-lg",
|
|
279
|
+
"pl-space-xl",
|
|
280
|
+
"pl-space-2xl",
|
|
281
|
+
"pr-space-2xs",
|
|
282
|
+
"pr-space-xs",
|
|
283
|
+
"pr-space-sm",
|
|
284
|
+
"pr-space-md",
|
|
285
|
+
"pr-space-lg",
|
|
286
|
+
"pr-space-xl",
|
|
287
|
+
"pr-space-2xl",
|
|
288
|
+
"ps-space-2xs",
|
|
289
|
+
"ps-space-xs",
|
|
290
|
+
"ps-space-sm",
|
|
291
|
+
"ps-space-md",
|
|
292
|
+
"ps-space-lg",
|
|
293
|
+
"ps-space-xl",
|
|
294
|
+
"ps-space-2xl",
|
|
295
|
+
"pe-space-2xs",
|
|
296
|
+
"pe-space-xs",
|
|
297
|
+
"pe-space-sm",
|
|
298
|
+
"pe-space-md",
|
|
299
|
+
"pe-space-lg",
|
|
300
|
+
"pe-space-xl",
|
|
301
|
+
"pe-space-2xl",
|
|
302
|
+
"m-space-2xs",
|
|
303
|
+
"m-space-xs",
|
|
304
|
+
"m-space-sm",
|
|
305
|
+
"m-space-md",
|
|
306
|
+
"m-space-lg",
|
|
307
|
+
"m-space-xl",
|
|
308
|
+
"m-space-2xl",
|
|
309
|
+
"mx-space-2xs",
|
|
310
|
+
"mx-space-xs",
|
|
311
|
+
"mx-space-sm",
|
|
312
|
+
"mx-space-md",
|
|
313
|
+
"mx-space-lg",
|
|
314
|
+
"mx-space-xl",
|
|
315
|
+
"mx-space-2xl",
|
|
316
|
+
"my-space-2xs",
|
|
317
|
+
"my-space-xs",
|
|
318
|
+
"my-space-sm",
|
|
319
|
+
"my-space-md",
|
|
320
|
+
"my-space-lg",
|
|
321
|
+
"my-space-xl",
|
|
322
|
+
"my-space-2xl",
|
|
323
|
+
"mt-space-2xs",
|
|
324
|
+
"mt-space-xs",
|
|
325
|
+
"mt-space-sm",
|
|
326
|
+
"mt-space-md",
|
|
327
|
+
"mt-space-lg",
|
|
328
|
+
"mt-space-xl",
|
|
329
|
+
"mt-space-2xl",
|
|
330
|
+
"mb-space-2xs",
|
|
331
|
+
"mb-space-xs",
|
|
332
|
+
"mb-space-sm",
|
|
333
|
+
"mb-space-md",
|
|
334
|
+
"mb-space-lg",
|
|
335
|
+
"mb-space-xl",
|
|
336
|
+
"mb-space-2xl",
|
|
337
|
+
"ml-space-2xs",
|
|
338
|
+
"ml-space-xs",
|
|
339
|
+
"ml-space-sm",
|
|
340
|
+
"ml-space-md",
|
|
341
|
+
"ml-space-lg",
|
|
342
|
+
"ml-space-xl",
|
|
343
|
+
"ml-space-2xl",
|
|
344
|
+
"mr-space-2xs",
|
|
345
|
+
"mr-space-xs",
|
|
346
|
+
"mr-space-sm",
|
|
347
|
+
"mr-space-md",
|
|
348
|
+
"mr-space-lg",
|
|
349
|
+
"mr-space-xl",
|
|
350
|
+
"mr-space-2xl",
|
|
351
|
+
"ms-space-2xs",
|
|
352
|
+
"ms-space-xs",
|
|
353
|
+
"ms-space-sm",
|
|
354
|
+
"ms-space-md",
|
|
355
|
+
"ms-space-lg",
|
|
356
|
+
"ms-space-xl",
|
|
357
|
+
"ms-space-2xl",
|
|
358
|
+
"me-space-2xs",
|
|
359
|
+
"me-space-xs",
|
|
360
|
+
"me-space-sm",
|
|
361
|
+
"me-space-md",
|
|
362
|
+
"me-space-lg",
|
|
363
|
+
"me-space-xl",
|
|
364
|
+
"me-space-2xl",
|
|
365
|
+
"top-space-2xs",
|
|
366
|
+
"top-space-xs",
|
|
367
|
+
"top-space-sm",
|
|
368
|
+
"top-space-md",
|
|
369
|
+
"top-space-lg",
|
|
370
|
+
"top-space-xl",
|
|
371
|
+
"top-space-2xl",
|
|
372
|
+
"bottom-space-2xs",
|
|
373
|
+
"bottom-space-xs",
|
|
374
|
+
"bottom-space-sm",
|
|
375
|
+
"bottom-space-md",
|
|
376
|
+
"bottom-space-lg",
|
|
377
|
+
"bottom-space-xl",
|
|
378
|
+
"bottom-space-2xl",
|
|
379
|
+
"left-space-2xs",
|
|
380
|
+
"left-space-xs",
|
|
381
|
+
"left-space-sm",
|
|
382
|
+
"left-space-md",
|
|
383
|
+
"left-space-lg",
|
|
384
|
+
"left-space-xl",
|
|
385
|
+
"left-space-2xl",
|
|
386
|
+
"right-space-2xs",
|
|
387
|
+
"right-space-xs",
|
|
388
|
+
"right-space-sm",
|
|
389
|
+
"right-space-md",
|
|
390
|
+
"right-space-lg",
|
|
391
|
+
"right-space-xl",
|
|
392
|
+
"right-space-2xl",
|
|
393
|
+
"start-space-2xs",
|
|
394
|
+
"start-space-xs",
|
|
395
|
+
"start-space-sm",
|
|
396
|
+
"start-space-md",
|
|
397
|
+
"start-space-lg",
|
|
398
|
+
"start-space-xl",
|
|
399
|
+
"start-space-2xl",
|
|
400
|
+
"end-space-2xs",
|
|
401
|
+
"end-space-xs",
|
|
402
|
+
"end-space-sm",
|
|
403
|
+
"end-space-md",
|
|
404
|
+
"end-space-lg",
|
|
405
|
+
"end-space-xl",
|
|
406
|
+
"end-space-2xl",
|
|
407
|
+
"inset-space-2xs",
|
|
408
|
+
"inset-space-xs",
|
|
409
|
+
"inset-space-sm",
|
|
410
|
+
"inset-space-md",
|
|
411
|
+
"inset-space-lg",
|
|
412
|
+
"inset-space-xl",
|
|
413
|
+
"inset-space-2xl",
|
|
414
|
+
"inset-x-space-2xs",
|
|
415
|
+
"inset-x-space-xs",
|
|
416
|
+
"inset-x-space-sm",
|
|
417
|
+
"inset-x-space-md",
|
|
418
|
+
"inset-x-space-lg",
|
|
419
|
+
"inset-x-space-xl",
|
|
420
|
+
"inset-x-space-2xl",
|
|
421
|
+
"inset-y-space-2xs",
|
|
422
|
+
"inset-y-space-xs",
|
|
423
|
+
"inset-y-space-sm",
|
|
424
|
+
"inset-y-space-md",
|
|
425
|
+
"inset-y-space-lg",
|
|
426
|
+
"inset-y-space-xl",
|
|
427
|
+
"inset-y-space-2xl"
|
|
260
428
|
],
|
|
261
429
|
"states": [
|
|
262
430
|
"text-link-color",
|
|
@@ -12,6 +12,20 @@ This recipe uses `themelia-react-ui/features/table`, so install `@tanstack/react
|
|
|
12
12
|
|
|
13
13
|
Verify loading, empty refresh, failure/retry and ready records. Open the row menu with pointer and keyboard, activate Open account, and assert the requested URL. Check narrow overflow and email-link behavior. If you need a presentational table without TanStack features, discover `themelia-react-ui/base/table` and inspect its separate declaration.
|
|
14
14
|
|
|
15
|
+
`enableResizing` enables pointer and keyboard separators on individual/grouped
|
|
16
|
+
headers. Arrow keys follow inherited text direction; Home/End use leaf minimums
|
|
17
|
+
and explicit maximums from your column definitions. The table owns its one named
|
|
18
|
+
scroll region. Verify grouped widths, sticky header rows and first-column behavior
|
|
19
|
+
with real overflow in both directions, rather than adding another focusable wrapper.
|
|
20
|
+
|
|
21
|
+
## Comment attachments
|
|
22
|
+
|
|
23
|
+
`Comments` and `CommentComposer` announce attachment validation/upload errors.
|
|
24
|
+
Use their existing attachment error `strings` for localization. Headless
|
|
25
|
+
`useAttachmentUpload` accepts those same keys through `strings`; render feedback
|
|
26
|
+
from `onError` in your own composer. Failed chips retain retry/remove actions.
|
|
27
|
+
Reset/removal aborts pending uploads; the app owns transport and persistence.
|
|
28
|
+
|
|
15
29
|
## Detail and framing
|
|
16
30
|
|
|
17
31
|
[AccountDetail](../examples/detail.tsx) exports `AccountDetail`, `AccountDetailProps` and `AccountDetailRecord`. Supply `account`, `onEdit(id)` and `onBack()`. Card owns the frame/header/body/footer; Name, Email, Date, Money and Value own formatting and missing-value fallbacks. `balanceMinor` uses `Money unit="minor"`; currency and date values come from the app.
|
|
@@ -63,6 +77,24 @@ that callback stable when its meaning is unchanged. Stabilize these lifecycle
|
|
|
63
77
|
inputs deliberately, not every object. A real record/scope change can replace
|
|
64
78
|
definitions; the app then chooses appropriate destination focus.
|
|
65
79
|
|
|
80
|
+
## Single resource page
|
|
81
|
+
|
|
82
|
+
Use `Page`, `PageHeader` and `PageActions` from `themelia-react-ui/layout/page`
|
|
83
|
+
for the record route's identity, back navigation, content bounds and commands.
|
|
84
|
+
The [layout recipe](../examples/app-layout.tsx) demonstrates that route boundary;
|
|
85
|
+
the [detail recipe](../examples/detail.tsx) demonstrates an independently framed
|
|
86
|
+
record subject with MetadataList and value primitives. Decide whether the record
|
|
87
|
+
needs that independent Card before nesting it under Page. Avoid repeating the
|
|
88
|
+
route heading just to frame the same facts. Page owns gutters; PageViewport owns
|
|
89
|
+
scrolling only. App navigation, record loading/missing/error/retry, permissions,
|
|
90
|
+
edit and delete callbacks remain application responsibilities.
|
|
91
|
+
|
|
92
|
+
Use `WorkspaceLayout` from `themelia-react-ui/layout/workspace` when independently composed record header,
|
|
93
|
+
sidebar/main/rail regions are needed; inspect `features/resource` for complete
|
|
94
|
+
resource coordination. A single record does not automatically need either.
|
|
95
|
+
Read [layout composition](composition.md#application-layouts) for boundary and
|
|
96
|
+
parent-width behavior, then the exact selected declaration for its current props.
|
|
97
|
+
|
|
66
98
|
## Validated editing
|
|
67
99
|
|
|
68
100
|
[AccountEdit](../examples/edit.tsx) exports `AccountEdit`, `AccountEditProps` and `AccountEditValue`. Supply `initial`, `onSave(value): Promise<AccountEditValue>` and `onCancel()`. Mount with `key={initial.id}` when switching records. The draft is local to that mount; resetting the same record's draft deliberately also requires a new key or your own controlled adaptation.
|
|
@@ -23,7 +23,7 @@ try {
|
|
|
23
23
|
const reports = [...files].sort().map(filename => analyzeComposition(fs.readFileSync(filename, 'utf8'), { filename, index, ts }));
|
|
24
24
|
const findings = reports.flatMap(report => report.findings);
|
|
25
25
|
const errors = findings.filter(finding => finding.severity === 'error').length;
|
|
26
|
-
process.stdout.write(JSON.stringify({ package: index.package, version: index.version, files: files.size, errors, warnings: findings.length - errors, findings, unresolved: reports.flatMap(report => report.unresolved), limits: '
|
|
26
|
+
process.stdout.write(JSON.stringify({ package: index.package, version: index.version, files: files.size, errors, warnings: findings.length - errors, findings, unresolved: reports.flatMap(report => report.unresolved), limits: 'Source analysis only: recognized imports and same-file static JSX. External CSS, cross-file wrappers and dynamic values require review. No rendered, interaction, visual-acceptance or production-readiness verdict.' }, null, 2) + '\n');
|
|
27
27
|
process.exitCode = errors ? 1 : 0;
|
|
28
28
|
} catch (error) {
|
|
29
29
|
process.stderr.write(`check-composition: ${error.message}\nRun from the consumer app with its TypeScript development dependency installed.\n`);
|