@ankhorage/zora 0.9.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +80 -34
- package/dist/components/badge/Badge.d.ts +1 -1
- package/dist/components/badge/Badge.d.ts.map +1 -1
- package/dist/components/badge/Badge.js +3 -1
- package/dist/components/badge/Badge.js.map +1 -1
- package/dist/components/badge/types.d.ts +2 -1
- package/dist/components/badge/types.d.ts.map +1 -1
- package/dist/components/badge/types.js.map +1 -1
- package/dist/components/button/Button.d.ts +1 -1
- package/dist/components/button/Button.d.ts.map +1 -1
- package/dist/components/button/Button.js +3 -1
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/button/types.d.ts +2 -1
- package/dist/components/button/types.d.ts.map +1 -1
- package/dist/components/button/types.js.map +1 -1
- package/dist/components/card/Card.d.ts +1 -1
- package/dist/components/card/Card.d.ts.map +1 -1
- package/dist/components/card/Card.js +3 -1
- package/dist/components/card/Card.js.map +1 -1
- package/dist/components/card/types.d.ts +2 -1
- package/dist/components/card/types.d.ts.map +1 -1
- package/dist/components/card/types.js.map +1 -1
- package/dist/components/checkbox/Checkbox.d.ts +4 -0
- package/dist/components/checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/checkbox/Checkbox.js +8 -0
- package/dist/components/checkbox/Checkbox.js.map +1 -0
- package/dist/components/checkbox/CheckboxGroup.d.ts +1 -1
- package/dist/components/checkbox/CheckboxGroup.d.ts.map +1 -1
- package/dist/components/checkbox/CheckboxGroup.js +3 -1
- package/dist/components/checkbox/CheckboxGroup.js.map +1 -1
- package/dist/components/checkbox/index.d.ts +2 -3
- package/dist/components/checkbox/index.d.ts.map +1 -1
- package/dist/components/checkbox/index.js +1 -1
- package/dist/components/checkbox/index.js.map +1 -1
- package/dist/components/checkbox/types.d.ts +5 -2
- package/dist/components/checkbox/types.d.ts.map +1 -1
- package/dist/components/checkbox/types.js.map +1 -1
- package/dist/components/drawer/Drawer.d.ts +1 -1
- package/dist/components/drawer/Drawer.d.ts.map +1 -1
- package/dist/components/drawer/Drawer.js +3 -1
- package/dist/components/drawer/Drawer.js.map +1 -1
- package/dist/components/drawer/types.d.ts +2 -1
- package/dist/components/drawer/types.d.ts.map +1 -1
- package/dist/components/drawer/types.js.map +1 -1
- package/dist/components/form/Form.d.ts +1 -1
- package/dist/components/form/Form.d.ts.map +1 -1
- package/dist/components/form/Form.js +3 -1
- package/dist/components/form/Form.js.map +1 -1
- package/dist/components/form/FormActions.d.ts +1 -1
- package/dist/components/form/FormActions.d.ts.map +1 -1
- package/dist/components/form/FormActions.js +3 -1
- package/dist/components/form/FormActions.js.map +1 -1
- package/dist/components/form/FormError.d.ts +1 -1
- package/dist/components/form/FormError.d.ts.map +1 -1
- package/dist/components/form/FormError.js +6 -3
- package/dist/components/form/FormError.js.map +1 -1
- package/dist/components/form/FormField.d.ts +1 -1
- package/dist/components/form/FormField.d.ts.map +1 -1
- package/dist/components/form/FormField.js +5 -3
- package/dist/components/form/FormField.js.map +1 -1
- package/dist/components/form/types.d.ts +6 -9
- package/dist/components/form/types.d.ts.map +1 -1
- package/dist/components/form/types.js.map +1 -1
- package/dist/components/heading/Heading.d.ts +1 -1
- package/dist/components/heading/Heading.d.ts.map +1 -1
- package/dist/components/heading/Heading.js +3 -1
- package/dist/components/heading/Heading.js.map +1 -1
- package/dist/components/heading/types.d.ts +2 -2
- package/dist/components/heading/types.d.ts.map +1 -1
- package/dist/components/heading/types.js.map +1 -1
- package/dist/components/icon/Icon.d.ts +4 -2
- package/dist/components/icon/Icon.d.ts.map +1 -1
- package/dist/components/icon/Icon.js +3 -1
- package/dist/components/icon/Icon.js.map +1 -1
- package/dist/components/icon-button/IconButton.d.ts +1 -1
- package/dist/components/icon-button/IconButton.d.ts.map +1 -1
- package/dist/components/icon-button/IconButton.js +3 -1
- package/dist/components/icon-button/IconButton.js.map +1 -1
- package/dist/components/icon-button/types.d.ts +2 -1
- package/dist/components/icon-button/types.d.ts.map +1 -1
- package/dist/components/icon-button/types.js.map +1 -1
- package/dist/components/input/Input.d.ts +1 -1
- package/dist/components/input/Input.d.ts.map +1 -1
- package/dist/components/input/Input.js +5 -2
- package/dist/components/input/Input.js.map +1 -1
- package/dist/components/input/types.d.ts +2 -1
- package/dist/components/input/types.d.ts.map +1 -1
- package/dist/components/input/types.js.map +1 -1
- package/dist/components/modal/Modal.d.ts +1 -1
- package/dist/components/modal/Modal.d.ts.map +1 -1
- package/dist/components/modal/Modal.js +3 -1
- package/dist/components/modal/Modal.js.map +1 -1
- package/dist/components/modal/types.d.ts +2 -1
- package/dist/components/modal/types.d.ts.map +1 -1
- package/dist/components/modal/types.js.map +1 -1
- package/dist/components/radio/Radio.d.ts +4 -0
- package/dist/components/radio/Radio.d.ts.map +1 -0
- package/dist/components/radio/Radio.js +8 -0
- package/dist/components/radio/Radio.js.map +1 -0
- package/dist/components/radio/RadioGroup.d.ts +1 -1
- package/dist/components/radio/RadioGroup.d.ts.map +1 -1
- package/dist/components/radio/RadioGroup.js +3 -1
- package/dist/components/radio/RadioGroup.js.map +1 -1
- package/dist/components/radio/index.d.ts +2 -3
- package/dist/components/radio/index.d.ts.map +1 -1
- package/dist/components/radio/index.js +1 -1
- package/dist/components/radio/index.js.map +1 -1
- package/dist/components/radio/types.d.ts +5 -2
- package/dist/components/radio/types.d.ts.map +1 -1
- package/dist/components/radio/types.js.map +1 -1
- package/dist/components/select/Select.d.ts +1 -1
- package/dist/components/select/Select.d.ts.map +1 -1
- package/dist/components/select/Select.js +6 -3
- package/dist/components/select/Select.js.map +1 -1
- package/dist/components/select/types.d.ts +2 -2
- package/dist/components/select/types.d.ts.map +1 -1
- package/dist/components/select/types.js.map +1 -1
- package/dist/components/tabs/Tabs.d.ts +1 -1
- package/dist/components/tabs/Tabs.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.js +6 -3
- package/dist/components/tabs/Tabs.js.map +1 -1
- package/dist/components/tabs/types.d.ts +2 -2
- package/dist/components/tabs/types.d.ts.map +1 -1
- package/dist/components/tabs/types.js.map +1 -1
- package/dist/components/text/Text.d.ts +1 -1
- package/dist/components/text/Text.d.ts.map +1 -1
- package/dist/components/text/Text.js +3 -1
- package/dist/components/text/Text.js.map +1 -1
- package/dist/components/text/types.d.ts +2 -2
- package/dist/components/text/types.d.ts.map +1 -1
- package/dist/components/text/types.js.map +1 -1
- package/dist/components/textarea/Textarea.d.ts +1 -1
- package/dist/components/textarea/Textarea.d.ts.map +1 -1
- package/dist/components/textarea/Textarea.js +5 -2
- package/dist/components/textarea/Textarea.js.map +1 -1
- package/dist/components/textarea/types.d.ts +2 -1
- package/dist/components/textarea/types.d.ts.map +1 -1
- package/dist/components/textarea/types.js.map +1 -1
- package/dist/components/toolbar/Toolbar.d.ts +1 -1
- package/dist/components/toolbar/Toolbar.d.ts.map +1 -1
- package/dist/components/toolbar/Toolbar.js +3 -1
- package/dist/components/toolbar/Toolbar.js.map +1 -1
- package/dist/components/toolbar/ToolbarAction.d.ts +1 -1
- package/dist/components/toolbar/ToolbarAction.d.ts.map +1 -1
- package/dist/components/toolbar/ToolbarAction.js +3 -1
- package/dist/components/toolbar/ToolbarAction.js.map +1 -1
- package/dist/components/toolbar/types.d.ts +3 -4
- package/dist/components/toolbar/types.d.ts.map +1 -1
- package/dist/components/toolbar/types.js.map +1 -1
- package/dist/foundation/Box.d.ts +7 -0
- package/dist/foundation/Box.d.ts.map +1 -0
- package/dist/foundation/Box.js +8 -0
- package/dist/foundation/Box.js.map +1 -0
- package/dist/foundation/Center.d.ts +7 -0
- package/dist/foundation/Center.d.ts.map +1 -0
- package/dist/foundation/Center.js +8 -0
- package/dist/foundation/Center.js.map +1 -0
- package/dist/foundation/Container.d.ts +7 -0
- package/dist/foundation/Container.d.ts.map +1 -0
- package/dist/foundation/Container.js +8 -0
- package/dist/foundation/Container.js.map +1 -0
- package/dist/foundation/Divider.d.ts +7 -0
- package/dist/foundation/Divider.d.ts.map +1 -0
- package/dist/foundation/Divider.js +8 -0
- package/dist/foundation/Divider.js.map +1 -0
- package/dist/foundation/Grid.d.ts +7 -0
- package/dist/foundation/Grid.d.ts.map +1 -0
- package/dist/foundation/Grid.js +8 -0
- package/dist/foundation/Grid.js.map +1 -0
- package/dist/foundation/Inline.d.ts +7 -0
- package/dist/foundation/Inline.d.ts.map +1 -0
- package/dist/foundation/Inline.js +8 -0
- package/dist/foundation/Inline.js.map +1 -0
- package/dist/foundation/Show.d.ts +7 -0
- package/dist/foundation/Show.d.ts.map +1 -0
- package/dist/foundation/Show.js +8 -0
- package/dist/foundation/Show.js.map +1 -0
- package/dist/foundation/Spacer.d.ts +7 -0
- package/dist/foundation/Spacer.d.ts.map +1 -0
- package/dist/foundation/Spacer.js +8 -0
- package/dist/foundation/Spacer.js.map +1 -0
- package/dist/foundation/Stack.d.ts +7 -0
- package/dist/foundation/Stack.d.ts.map +1 -0
- package/dist/foundation/Stack.js +8 -0
- package/dist/foundation/Stack.js.map +1 -0
- package/dist/foundation/Surface.d.ts +8 -0
- package/dist/foundation/Surface.d.ts.map +1 -0
- package/dist/foundation/Surface.js +8 -0
- package/dist/foundation/Surface.js.map +1 -0
- package/dist/foundation/index.d.ts +20 -2
- package/dist/foundation/index.d.ts.map +1 -1
- package/dist/foundation/index.js +10 -1
- package/dist/foundation/index.js.map +1 -1
- package/dist/layout/app-shell/AppShell.d.ts +1 -1
- package/dist/layout/app-shell/AppShell.d.ts.map +1 -1
- package/dist/layout/app-shell/AppShell.js +3 -1
- package/dist/layout/app-shell/AppShell.js.map +1 -1
- package/dist/layout/app-shell/types.d.ts +2 -2
- package/dist/layout/app-shell/types.d.ts.map +1 -1
- package/dist/layout/app-shell/types.js.map +1 -1
- package/dist/layout/auth-layout/AuthLayout.d.ts +1 -1
- package/dist/layout/auth-layout/AuthLayout.d.ts.map +1 -1
- package/dist/layout/auth-layout/AuthLayout.js +3 -1
- package/dist/layout/auth-layout/AuthLayout.js.map +1 -1
- package/dist/layout/auth-layout/types.d.ts +2 -2
- package/dist/layout/auth-layout/types.d.ts.map +1 -1
- package/dist/layout/auth-layout/types.js.map +1 -1
- package/dist/layout/page/Page.d.ts +1 -1
- package/dist/layout/page/Page.d.ts.map +1 -1
- package/dist/layout/page/Page.js +3 -1
- package/dist/layout/page/Page.js.map +1 -1
- package/dist/layout/page/types.d.ts +2 -2
- package/dist/layout/page/types.d.ts.map +1 -1
- package/dist/layout/page/types.js.map +1 -1
- package/dist/layout/page-header/PageHeader.d.ts +1 -1
- package/dist/layout/page-header/PageHeader.d.ts.map +1 -1
- package/dist/layout/page-header/PageHeader.js +3 -1
- package/dist/layout/page-header/PageHeader.js.map +1 -1
- package/dist/layout/page-header/types.d.ts +2 -2
- package/dist/layout/page-header/types.d.ts.map +1 -1
- package/dist/layout/page-header/types.js.map +1 -1
- package/dist/layout/page-section/PageSection.d.ts +1 -1
- package/dist/layout/page-section/PageSection.d.ts.map +1 -1
- package/dist/layout/page-section/PageSection.js +3 -1
- package/dist/layout/page-section/PageSection.js.map +1 -1
- package/dist/layout/page-section/types.d.ts +2 -2
- package/dist/layout/page-section/types.d.ts.map +1 -1
- package/dist/layout/page-section/types.js.map +1 -1
- package/dist/layout/settings-layout/SettingsLayout.d.ts +1 -1
- package/dist/layout/settings-layout/SettingsLayout.d.ts.map +1 -1
- package/dist/layout/settings-layout/SettingsLayout.js +3 -1
- package/dist/layout/settings-layout/SettingsLayout.js.map +1 -1
- package/dist/layout/settings-layout/types.d.ts +2 -2
- package/dist/layout/settings-layout/types.d.ts.map +1 -1
- package/dist/layout/settings-layout/types.js.map +1 -1
- package/dist/layout/sidebar-layout/SidebarLayout.d.ts +1 -1
- package/dist/layout/sidebar-layout/SidebarLayout.d.ts.map +1 -1
- package/dist/layout/sidebar-layout/SidebarLayout.js +3 -1
- package/dist/layout/sidebar-layout/SidebarLayout.js.map +1 -1
- package/dist/layout/sidebar-layout/types.d.ts +2 -2
- package/dist/layout/sidebar-layout/types.d.ts.map +1 -1
- package/dist/layout/sidebar-layout/types.js.map +1 -1
- package/dist/layout/topbar-layout/TopbarLayout.d.ts +1 -1
- package/dist/layout/topbar-layout/TopbarLayout.d.ts.map +1 -1
- package/dist/layout/topbar-layout/TopbarLayout.js +3 -1
- package/dist/layout/topbar-layout/TopbarLayout.js.map +1 -1
- package/dist/layout/topbar-layout/types.d.ts +2 -2
- package/dist/layout/topbar-layout/types.d.ts.map +1 -1
- package/dist/layout/topbar-layout/types.js.map +1 -1
- package/dist/patterns/auth/ForgotPasswordForm.d.ts +1 -1
- package/dist/patterns/auth/ForgotPasswordForm.d.ts.map +1 -1
- package/dist/patterns/auth/ForgotPasswordForm.js +3 -1
- package/dist/patterns/auth/ForgotPasswordForm.js.map +1 -1
- package/dist/patterns/auth/OtpForm.d.ts +1 -1
- package/dist/patterns/auth/OtpForm.d.ts.map +1 -1
- package/dist/patterns/auth/OtpForm.js +3 -1
- package/dist/patterns/auth/OtpForm.js.map +1 -1
- package/dist/patterns/auth/SignInForm.d.ts +1 -1
- package/dist/patterns/auth/SignInForm.d.ts.map +1 -1
- package/dist/patterns/auth/SignInForm.js +3 -1
- package/dist/patterns/auth/SignInForm.js.map +1 -1
- package/dist/patterns/auth/SignUpForm.d.ts +1 -1
- package/dist/patterns/auth/SignUpForm.d.ts.map +1 -1
- package/dist/patterns/auth/SignUpForm.js +3 -1
- package/dist/patterns/auth/SignUpForm.js.map +1 -1
- package/dist/patterns/auth/types.d.ts +2 -2
- package/dist/patterns/auth/types.d.ts.map +1 -1
- package/dist/patterns/auth/types.js.map +1 -1
- package/dist/patterns/collection-editor/CollectionEditor.d.ts +1 -1
- package/dist/patterns/collection-editor/CollectionEditor.d.ts.map +1 -1
- package/dist/patterns/collection-editor/CollectionEditor.js +3 -1
- package/dist/patterns/collection-editor/CollectionEditor.js.map +1 -1
- package/dist/patterns/collection-editor/types.d.ts +2 -2
- package/dist/patterns/collection-editor/types.d.ts.map +1 -1
- package/dist/patterns/collection-editor/types.js.map +1 -1
- package/dist/patterns/confirm-dialog/ConfirmDialog.d.ts +1 -1
- package/dist/patterns/confirm-dialog/ConfirmDialog.d.ts.map +1 -1
- package/dist/patterns/confirm-dialog/ConfirmDialog.js +3 -1
- package/dist/patterns/confirm-dialog/ConfirmDialog.js.map +1 -1
- package/dist/patterns/confirm-dialog/types.d.ts +2 -2
- package/dist/patterns/confirm-dialog/types.d.ts.map +1 -1
- package/dist/patterns/confirm-dialog/types.js.map +1 -1
- package/dist/patterns/disclosure-section/DisclosureSection.d.ts +1 -1
- package/dist/patterns/disclosure-section/DisclosureSection.d.ts.map +1 -1
- package/dist/patterns/disclosure-section/DisclosureSection.js +3 -1
- package/dist/patterns/disclosure-section/DisclosureSection.js.map +1 -1
- package/dist/patterns/disclosure-section/types.d.ts +2 -2
- package/dist/patterns/disclosure-section/types.d.ts.map +1 -1
- package/dist/patterns/disclosure-section/types.js.map +1 -1
- package/dist/patterns/empty-state/EmptyState.d.ts +1 -1
- package/dist/patterns/empty-state/EmptyState.d.ts.map +1 -1
- package/dist/patterns/empty-state/EmptyState.js +3 -1
- package/dist/patterns/empty-state/EmptyState.js.map +1 -1
- package/dist/patterns/empty-state/types.d.ts +2 -2
- package/dist/patterns/empty-state/types.d.ts.map +1 -1
- package/dist/patterns/empty-state/types.js.map +1 -1
- package/dist/patterns/form-field/FormField.d.ts +1 -1
- package/dist/patterns/form-field/FormField.d.ts.map +1 -1
- package/dist/patterns/form-field/FormField.js +3 -1
- package/dist/patterns/form-field/FormField.js.map +1 -1
- package/dist/patterns/form-field/types.d.ts +2 -1
- package/dist/patterns/form-field/types.d.ts.map +1 -1
- package/dist/patterns/form-field/types.js.map +1 -1
- package/dist/patterns/inspector-field/InspectorField.d.ts +1 -1
- package/dist/patterns/inspector-field/InspectorField.d.ts.map +1 -1
- package/dist/patterns/inspector-field/InspectorField.js +3 -1
- package/dist/patterns/inspector-field/InspectorField.js.map +1 -1
- package/dist/patterns/inspector-field/types.d.ts +2 -2
- package/dist/patterns/inspector-field/types.d.ts.map +1 -1
- package/dist/patterns/inspector-field/types.js.map +1 -1
- package/dist/patterns/notice/Notice.d.ts +1 -1
- package/dist/patterns/notice/Notice.d.ts.map +1 -1
- package/dist/patterns/notice/Notice.js +3 -1
- package/dist/patterns/notice/Notice.js.map +1 -1
- package/dist/patterns/notice/types.d.ts +2 -2
- package/dist/patterns/notice/types.d.ts.map +1 -1
- package/dist/patterns/notice/types.js.map +1 -1
- package/dist/patterns/panel/Panel.d.ts +1 -1
- package/dist/patterns/panel/Panel.d.ts.map +1 -1
- package/dist/patterns/panel/Panel.js +3 -1
- package/dist/patterns/panel/Panel.js.map +1 -1
- package/dist/patterns/panel/types.d.ts +2 -2
- package/dist/patterns/panel/types.d.ts.map +1 -1
- package/dist/patterns/panel/types.js.map +1 -1
- package/dist/patterns/responsive-panel/ResponsivePanel.d.ts +1 -1
- package/dist/patterns/responsive-panel/ResponsivePanel.d.ts.map +1 -1
- package/dist/patterns/responsive-panel/ResponsivePanel.js +3 -1
- package/dist/patterns/responsive-panel/ResponsivePanel.js.map +1 -1
- package/dist/patterns/responsive-panel/types.d.ts +2 -2
- package/dist/patterns/responsive-panel/types.d.ts.map +1 -1
- package/dist/patterns/responsive-panel/types.js.map +1 -1
- package/dist/patterns/section-header/SectionHeader.d.ts +1 -1
- package/dist/patterns/section-header/SectionHeader.d.ts.map +1 -1
- package/dist/patterns/section-header/SectionHeader.js +3 -1
- package/dist/patterns/section-header/SectionHeader.js.map +1 -1
- package/dist/patterns/section-header/types.d.ts +2 -2
- package/dist/patterns/section-header/types.d.ts.map +1 -1
- package/dist/patterns/section-header/types.js.map +1 -1
- package/dist/patterns/settings-row/SettingsRow.d.ts +1 -1
- package/dist/patterns/settings-row/SettingsRow.d.ts.map +1 -1
- package/dist/patterns/settings-row/SettingsRow.js +3 -1
- package/dist/patterns/settings-row/SettingsRow.js.map +1 -1
- package/dist/patterns/settings-row/types.d.ts +2 -2
- package/dist/patterns/settings-row/types.d.ts.map +1 -1
- package/dist/patterns/settings-row/types.js.map +1 -1
- package/dist/patterns/switch-field/SwitchField.d.ts +1 -1
- package/dist/patterns/switch-field/SwitchField.d.ts.map +1 -1
- package/dist/patterns/switch-field/SwitchField.js +3 -1
- package/dist/patterns/switch-field/SwitchField.js.map +1 -1
- package/dist/patterns/switch-field/types.d.ts +2 -2
- package/dist/patterns/switch-field/types.d.ts.map +1 -1
- package/dist/patterns/switch-field/types.js.map +1 -1
- package/dist/patterns/tile-grid/PaletteItem.d.ts +1 -1
- package/dist/patterns/tile-grid/PaletteItem.d.ts.map +1 -1
- package/dist/patterns/tile-grid/PaletteItem.js +6 -3
- package/dist/patterns/tile-grid/PaletteItem.js.map +1 -1
- package/dist/patterns/tile-grid/TileGrid.d.ts +1 -1
- package/dist/patterns/tile-grid/TileGrid.d.ts.map +1 -1
- package/dist/patterns/tile-grid/TileGrid.js +3 -1
- package/dist/patterns/tile-grid/TileGrid.js.map +1 -1
- package/dist/patterns/tile-grid/types.d.ts +3 -4
- package/dist/patterns/tile-grid/types.d.ts.map +1 -1
- package/dist/patterns/tile-grid/types.js.map +1 -1
- package/dist/patterns/tree-view/TreeItem.d.ts +3 -2
- package/dist/patterns/tree-view/TreeItem.d.ts.map +1 -1
- package/dist/patterns/tree-view/TreeItem.js +4 -2
- package/dist/patterns/tree-view/TreeItem.js.map +1 -1
- package/dist/patterns/tree-view/TreeView.d.ts +1 -1
- package/dist/patterns/tree-view/TreeView.d.ts.map +1 -1
- package/dist/patterns/tree-view/TreeView.js +3 -1
- package/dist/patterns/tree-view/TreeView.js.map +1 -1
- package/dist/patterns/tree-view/types.d.ts +2 -2
- package/dist/patterns/tree-view/types.d.ts.map +1 -1
- package/dist/patterns/tree-view/types.js.map +1 -1
- package/dist/theme/ZoraBaseProps.d.ts +18 -0
- package/dist/theme/ZoraBaseProps.d.ts.map +1 -0
- package/dist/theme/ZoraBaseProps.js +2 -0
- package/dist/theme/ZoraBaseProps.js.map +1 -0
- package/dist/theme/ZoraProvider.d.ts.map +1 -1
- package/dist/theme/ZoraProvider.js +8 -4
- package/dist/theme/ZoraProvider.js.map +1 -1
- package/dist/theme/ZoraThemeRuntimeContext.d.ts +9 -0
- package/dist/theme/ZoraThemeRuntimeContext.d.ts.map +1 -0
- package/dist/theme/ZoraThemeRuntimeContext.js +10 -0
- package/dist/theme/ZoraThemeRuntimeContext.js.map +1 -0
- package/dist/theme/ZoraThemeScope.d.ts +9 -0
- package/dist/theme/ZoraThemeScope.d.ts.map +1 -0
- package/dist/theme/ZoraThemeScope.js +41 -0
- package/dist/theme/ZoraThemeScope.js.map +1 -0
- package/dist/theme/index.d.ts +4 -0
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +2 -0
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/resolveZoraScopedThemeId.d.ts +6 -0
- package/dist/theme/resolveZoraScopedThemeId.d.ts.map +1 -0
- package/dist/theme/resolveZoraScopedThemeId.js +15 -0
- package/dist/theme/resolveZoraScopedThemeId.js.map +1 -0
- package/dist/theme/withZoraThemeScope.d.ts +4 -0
- package/dist/theme/withZoraThemeScope.d.ts.map +1 -0
- package/dist/theme/withZoraThemeScope.js +16 -0
- package/dist/theme/withZoraThemeScope.js.map +1 -0
- package/package.json +1 -1
- package/src/components/badge/Badge.tsx +12 -1
- package/src/components/badge/types.ts +5 -4
- package/src/components/button/Button.tsx +11 -1
- package/src/components/button/types.ts +3 -4
- package/src/components/card/Card.tsx +6 -1
- package/src/components/card/types.ts +3 -1
- package/src/components/checkbox/Checkbox.tsx +11 -0
- package/src/components/checkbox/CheckboxGroup.tsx +6 -1
- package/src/components/checkbox/index.ts +2 -3
- package/src/components/checkbox/types.ts +13 -5
- package/src/components/drawer/Drawer.tsx +13 -1
- package/src/components/drawer/types.ts +9 -4
- package/src/components/form/Form.tsx +6 -1
- package/src/components/form/FormActions.tsx +6 -1
- package/src/components/form/FormError.tsx +7 -3
- package/src/components/form/FormField.tsx +24 -3
- package/src/components/form/types.ts +12 -12
- package/src/components/heading/Heading.tsx +6 -1
- package/src/components/heading/types.ts +3 -2
- package/src/components/icon/Icon.tsx +7 -2
- package/src/components/icon-button/IconButton.tsx +6 -1
- package/src/components/icon-button/types.ts +2 -1
- package/src/components/input/Input.tsx +13 -2
- package/src/components/input/types.ts +8 -4
- package/src/components/modal/Modal.tsx +6 -1
- package/src/components/modal/types.ts +5 -4
- package/src/components/radio/Radio.tsx +11 -0
- package/src/components/radio/RadioGroup.tsx +6 -1
- package/src/components/radio/index.ts +2 -3
- package/src/components/radio/types.ts +12 -5
- package/src/components/select/Select.tsx +9 -3
- package/src/components/select/types.ts +3 -2
- package/src/components/tabs/Tabs.tsx +9 -3
- package/src/components/tabs/types.ts +2 -2
- package/src/components/text/Text.tsx +6 -1
- package/src/components/text/types.ts +3 -2
- package/src/components/textarea/Textarea.tsx +13 -2
- package/src/components/textarea/types.ts +8 -4
- package/src/components/toolbar/Toolbar.tsx +6 -1
- package/src/components/toolbar/ToolbarAction.tsx +9 -1
- package/src/components/toolbar/types.ts +4 -4
- package/src/foundation/Box.tsx +13 -0
- package/src/foundation/Center.tsx +16 -0
- package/src/foundation/Container.tsx +17 -0
- package/src/foundation/Divider.tsx +17 -0
- package/src/foundation/Grid.tsx +13 -0
- package/src/foundation/Inline.tsx +16 -0
- package/src/foundation/Show.tsx +13 -0
- package/src/foundation/Spacer.tsx +16 -0
- package/src/foundation/Stack.tsx +13 -0
- package/src/foundation/Surface.tsx +20 -0
- package/src/foundation/index.test.ts +2 -2
- package/src/foundation/index.ts +20 -25
- package/src/layout/app-shell/AppShell.tsx +6 -1
- package/src/layout/app-shell/types.ts +3 -2
- package/src/layout/auth-layout/AuthLayout.tsx +6 -1
- package/src/layout/auth-layout/types.ts +3 -2
- package/src/layout/page/Page.tsx +12 -1
- package/src/layout/page/types.ts +2 -2
- package/src/layout/page-header/PageHeader.tsx +6 -1
- package/src/layout/page-header/types.ts +3 -2
- package/src/layout/page-section/PageSection.tsx +12 -1
- package/src/layout/page-section/types.ts +3 -2
- package/src/layout/settings-layout/SettingsLayout.tsx +6 -1
- package/src/layout/settings-layout/types.ts +3 -2
- package/src/layout/sidebar-layout/SidebarLayout.tsx +6 -1
- package/src/layout/sidebar-layout/types.ts +3 -2
- package/src/layout/topbar-layout/TopbarLayout.tsx +11 -1
- package/src/layout/topbar-layout/types.ts +3 -2
- package/src/patterns/auth/ForgotPasswordForm.tsx +6 -1
- package/src/patterns/auth/OtpForm.tsx +6 -1
- package/src/patterns/auth/SignInForm.tsx +6 -1
- package/src/patterns/auth/SignUpForm.tsx +6 -1
- package/src/patterns/auth/types.ts +2 -2
- package/src/patterns/collection-editor/CollectionEditor.tsx +6 -1
- package/src/patterns/collection-editor/types.ts +3 -2
- package/src/patterns/confirm-dialog/ConfirmDialog.tsx +6 -1
- package/src/patterns/confirm-dialog/types.ts +2 -2
- package/src/patterns/disclosure-section/DisclosureSection.tsx +6 -1
- package/src/patterns/disclosure-section/types.ts +3 -2
- package/src/patterns/empty-state/EmptyState.tsx +6 -1
- package/src/patterns/empty-state/types.ts +2 -2
- package/src/patterns/form-field/FormField.tsx +12 -1
- package/src/patterns/form-field/types.ts +9 -4
- package/src/patterns/inspector-field/InspectorField.tsx +11 -1
- package/src/patterns/inspector-field/types.ts +3 -2
- package/src/patterns/notice/Notice.tsx +6 -1
- package/src/patterns/notice/types.ts +2 -2
- package/src/patterns/panel/Panel.tsx +4 -1
- package/src/patterns/panel/types.ts +2 -2
- package/src/patterns/responsive-panel/ResponsivePanel.tsx +6 -1
- package/src/patterns/responsive-panel/types.ts +3 -2
- package/src/patterns/section-header/SectionHeader.tsx +6 -1
- package/src/patterns/section-header/types.ts +3 -2
- package/src/patterns/settings-row/SettingsRow.tsx +6 -1
- package/src/patterns/settings-row/types.ts +3 -2
- package/src/patterns/switch-field/SwitchField.tsx +6 -1
- package/src/patterns/switch-field/types.ts +3 -2
- package/src/patterns/tile-grid/PaletteItem.tsx +9 -3
- package/src/patterns/tile-grid/TileGrid.tsx +6 -1
- package/src/patterns/tile-grid/types.ts +4 -4
- package/src/patterns/tree-view/TreeItem.tsx +10 -3
- package/src/patterns/tree-view/TreeView.tsx +6 -1
- package/src/patterns/tree-view/types.ts +3 -2
- package/src/theme/ZoraBaseProps.ts +20 -0
- package/src/theme/ZoraProvider.tsx +9 -4
- package/src/theme/ZoraThemeRuntimeContext.tsx +18 -0
- package/src/theme/ZoraThemeScope.tsx +74 -0
- package/src/theme/index.ts +4 -0
- package/src/theme/resolveZoraScopedThemeId.test.ts +47 -0
- package/src/theme/resolveZoraScopedThemeId.ts +25 -0
- package/src/theme/themeScopeStructure.test.ts +220 -0
- package/src/theme/withZoraThemeScope.tsx +26 -0
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Replace themeScopeStructure.test.ts with real behavior tests once the ZORA component test strategy is decided.
|
|
3
|
+
*/
|
|
4
|
+
import { readdirSync, readFileSync, statSync } from 'node:fs';
|
|
5
|
+
import { join } from 'node:path';
|
|
6
|
+
|
|
7
|
+
import { describe, expect, it } from 'bun:test';
|
|
8
|
+
|
|
9
|
+
const themeDir = import.meta.dir;
|
|
10
|
+
const srcDir = join(themeDir, '..');
|
|
11
|
+
|
|
12
|
+
function readSource(...segments: readonly string[]) {
|
|
13
|
+
return readFileSync(join(themeDir, ...segments), 'utf8');
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function collectSourceFiles(rootDir: string) {
|
|
17
|
+
const files: string[] = [];
|
|
18
|
+
|
|
19
|
+
function visit(current: string) {
|
|
20
|
+
for (const entry of readdirSync(current)) {
|
|
21
|
+
const full = join(current, entry);
|
|
22
|
+
const stat = statSync(full);
|
|
23
|
+
if (stat.isDirectory()) {
|
|
24
|
+
visit(full);
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (full.endsWith('.test.ts') || full.endsWith('.test.tsx')) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (full.endsWith('.ts') || full.endsWith('.tsx')) {
|
|
33
|
+
files.push(full);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
visit(rootDir);
|
|
39
|
+
return files;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const zoraProviderSource = readSource('ZoraProvider.tsx');
|
|
43
|
+
const themeScopeSource = readSource('ZoraThemeScope.tsx');
|
|
44
|
+
const hocSource = readSource('withZoraThemeScope.tsx');
|
|
45
|
+
|
|
46
|
+
const scopeGuardDirs = [
|
|
47
|
+
join(srcDir, 'components'),
|
|
48
|
+
join(srcDir, 'patterns'),
|
|
49
|
+
join(srcDir, 'layout'),
|
|
50
|
+
join(srcDir, 'foundation'),
|
|
51
|
+
] as const;
|
|
52
|
+
|
|
53
|
+
const scopeGuardFiles = scopeGuardDirs.flatMap(collectSourceFiles);
|
|
54
|
+
|
|
55
|
+
const scopedComponentFiles = [
|
|
56
|
+
join(srcDir, 'components', 'badge', 'Badge.tsx'),
|
|
57
|
+
join(srcDir, 'components', 'button', 'Button.tsx'),
|
|
58
|
+
join(srcDir, 'components', 'card', 'Card.tsx'),
|
|
59
|
+
join(srcDir, 'components', 'checkbox', 'Checkbox.tsx'),
|
|
60
|
+
join(srcDir, 'components', 'checkbox', 'CheckboxGroup.tsx'),
|
|
61
|
+
join(srcDir, 'components', 'drawer', 'Drawer.tsx'),
|
|
62
|
+
join(srcDir, 'components', 'form', 'Form.tsx'),
|
|
63
|
+
join(srcDir, 'components', 'form', 'FormActions.tsx'),
|
|
64
|
+
join(srcDir, 'components', 'form', 'FormError.tsx'),
|
|
65
|
+
join(srcDir, 'components', 'form', 'FormField.tsx'),
|
|
66
|
+
join(srcDir, 'components', 'heading', 'Heading.tsx'),
|
|
67
|
+
join(srcDir, 'components', 'icon', 'Icon.tsx'),
|
|
68
|
+
join(srcDir, 'components', 'icon-button', 'IconButton.tsx'),
|
|
69
|
+
join(srcDir, 'components', 'input', 'Input.tsx'),
|
|
70
|
+
join(srcDir, 'components', 'modal', 'Modal.tsx'),
|
|
71
|
+
join(srcDir, 'components', 'radio', 'Radio.tsx'),
|
|
72
|
+
join(srcDir, 'components', 'radio', 'RadioGroup.tsx'),
|
|
73
|
+
join(srcDir, 'components', 'select', 'Select.tsx'),
|
|
74
|
+
join(srcDir, 'components', 'tabs', 'Tabs.tsx'),
|
|
75
|
+
join(srcDir, 'components', 'text', 'Text.tsx'),
|
|
76
|
+
join(srcDir, 'components', 'textarea', 'Textarea.tsx'),
|
|
77
|
+
join(srcDir, 'components', 'toolbar', 'Toolbar.tsx'),
|
|
78
|
+
join(srcDir, 'components', 'toolbar', 'ToolbarAction.tsx'),
|
|
79
|
+
|
|
80
|
+
join(srcDir, 'layout', 'app-shell', 'AppShell.tsx'),
|
|
81
|
+
join(srcDir, 'layout', 'auth-layout', 'AuthLayout.tsx'),
|
|
82
|
+
join(srcDir, 'layout', 'page', 'Page.tsx'),
|
|
83
|
+
join(srcDir, 'layout', 'page-header', 'PageHeader.tsx'),
|
|
84
|
+
join(srcDir, 'layout', 'page-section', 'PageSection.tsx'),
|
|
85
|
+
join(srcDir, 'layout', 'settings-layout', 'SettingsLayout.tsx'),
|
|
86
|
+
join(srcDir, 'layout', 'sidebar-layout', 'SidebarLayout.tsx'),
|
|
87
|
+
join(srcDir, 'layout', 'topbar-layout', 'TopbarLayout.tsx'),
|
|
88
|
+
|
|
89
|
+
join(srcDir, 'patterns', 'auth', 'ForgotPasswordForm.tsx'),
|
|
90
|
+
join(srcDir, 'patterns', 'auth', 'OtpForm.tsx'),
|
|
91
|
+
join(srcDir, 'patterns', 'auth', 'SignInForm.tsx'),
|
|
92
|
+
join(srcDir, 'patterns', 'auth', 'SignUpForm.tsx'),
|
|
93
|
+
join(srcDir, 'patterns', 'collection-editor', 'CollectionEditor.tsx'),
|
|
94
|
+
join(srcDir, 'patterns', 'confirm-dialog', 'ConfirmDialog.tsx'),
|
|
95
|
+
join(srcDir, 'patterns', 'disclosure-section', 'DisclosureSection.tsx'),
|
|
96
|
+
join(srcDir, 'patterns', 'empty-state', 'EmptyState.tsx'),
|
|
97
|
+
join(srcDir, 'patterns', 'form-field', 'FormField.tsx'),
|
|
98
|
+
join(srcDir, 'patterns', 'inspector-field', 'InspectorField.tsx'),
|
|
99
|
+
join(srcDir, 'patterns', 'notice', 'Notice.tsx'),
|
|
100
|
+
join(srcDir, 'patterns', 'panel', 'Panel.tsx'),
|
|
101
|
+
join(srcDir, 'patterns', 'responsive-panel', 'ResponsivePanel.tsx'),
|
|
102
|
+
join(srcDir, 'patterns', 'section-header', 'SectionHeader.tsx'),
|
|
103
|
+
join(srcDir, 'patterns', 'settings-row', 'SettingsRow.tsx'),
|
|
104
|
+
join(srcDir, 'patterns', 'switch-field', 'SwitchField.tsx'),
|
|
105
|
+
join(srcDir, 'patterns', 'tile-grid', 'PaletteItem.tsx'),
|
|
106
|
+
join(srcDir, 'patterns', 'tile-grid', 'TileGrid.tsx'),
|
|
107
|
+
join(srcDir, 'patterns', 'tree-view', 'TreeItem.tsx'),
|
|
108
|
+
join(srcDir, 'patterns', 'tree-view', 'TreeView.tsx'),
|
|
109
|
+
|
|
110
|
+
join(srcDir, 'foundation', 'Box.tsx'),
|
|
111
|
+
join(srcDir, 'foundation', 'Center.tsx'),
|
|
112
|
+
join(srcDir, 'foundation', 'Container.tsx'),
|
|
113
|
+
join(srcDir, 'foundation', 'Divider.tsx'),
|
|
114
|
+
join(srcDir, 'foundation', 'Grid.tsx'),
|
|
115
|
+
join(srcDir, 'foundation', 'Inline.tsx'),
|
|
116
|
+
join(srcDir, 'foundation', 'Show.tsx'),
|
|
117
|
+
join(srcDir, 'foundation', 'Spacer.tsx'),
|
|
118
|
+
join(srcDir, 'foundation', 'Stack.tsx'),
|
|
119
|
+
join(srcDir, 'foundation', 'Surface.tsx'),
|
|
120
|
+
] as const;
|
|
121
|
+
|
|
122
|
+
const scopedPropTypeFiles = [
|
|
123
|
+
join(srcDir, 'components', 'badge', 'types.ts'),
|
|
124
|
+
join(srcDir, 'components', 'button', 'types.ts'),
|
|
125
|
+
join(srcDir, 'components', 'card', 'types.ts'),
|
|
126
|
+
join(srcDir, 'components', 'checkbox', 'types.ts'),
|
|
127
|
+
join(srcDir, 'components', 'drawer', 'types.ts'),
|
|
128
|
+
join(srcDir, 'components', 'form', 'types.ts'),
|
|
129
|
+
join(srcDir, 'components', 'heading', 'types.ts'),
|
|
130
|
+
join(srcDir, 'components', 'icon', 'Icon.tsx'),
|
|
131
|
+
join(srcDir, 'components', 'icon-button', 'types.ts'),
|
|
132
|
+
join(srcDir, 'components', 'input', 'types.ts'),
|
|
133
|
+
join(srcDir, 'components', 'modal', 'types.ts'),
|
|
134
|
+
join(srcDir, 'components', 'radio', 'types.ts'),
|
|
135
|
+
join(srcDir, 'components', 'select', 'types.ts'),
|
|
136
|
+
join(srcDir, 'components', 'tabs', 'types.ts'),
|
|
137
|
+
join(srcDir, 'components', 'text', 'types.ts'),
|
|
138
|
+
join(srcDir, 'components', 'textarea', 'types.ts'),
|
|
139
|
+
join(srcDir, 'components', 'toolbar', 'types.ts'),
|
|
140
|
+
|
|
141
|
+
join(srcDir, 'layout', 'app-shell', 'types.ts'),
|
|
142
|
+
join(srcDir, 'layout', 'auth-layout', 'types.ts'),
|
|
143
|
+
join(srcDir, 'layout', 'page', 'types.ts'),
|
|
144
|
+
join(srcDir, 'layout', 'page-header', 'types.ts'),
|
|
145
|
+
join(srcDir, 'layout', 'page-section', 'types.ts'),
|
|
146
|
+
join(srcDir, 'layout', 'settings-layout', 'types.ts'),
|
|
147
|
+
join(srcDir, 'layout', 'sidebar-layout', 'types.ts'),
|
|
148
|
+
join(srcDir, 'layout', 'topbar-layout', 'types.ts'),
|
|
149
|
+
|
|
150
|
+
join(srcDir, 'patterns', 'auth', 'types.ts'),
|
|
151
|
+
join(srcDir, 'patterns', 'collection-editor', 'types.ts'),
|
|
152
|
+
join(srcDir, 'patterns', 'confirm-dialog', 'types.ts'),
|
|
153
|
+
join(srcDir, 'patterns', 'disclosure-section', 'types.ts'),
|
|
154
|
+
join(srcDir, 'patterns', 'empty-state', 'types.ts'),
|
|
155
|
+
join(srcDir, 'patterns', 'form-field', 'types.ts'),
|
|
156
|
+
join(srcDir, 'patterns', 'inspector-field', 'types.ts'),
|
|
157
|
+
join(srcDir, 'patterns', 'notice', 'types.ts'),
|
|
158
|
+
join(srcDir, 'patterns', 'panel', 'types.ts'),
|
|
159
|
+
join(srcDir, 'patterns', 'responsive-panel', 'types.ts'),
|
|
160
|
+
join(srcDir, 'patterns', 'section-header', 'types.ts'),
|
|
161
|
+
join(srcDir, 'patterns', 'settings-row', 'types.ts'),
|
|
162
|
+
join(srcDir, 'patterns', 'switch-field', 'types.ts'),
|
|
163
|
+
join(srcDir, 'patterns', 'tile-grid', 'types.ts'),
|
|
164
|
+
join(srcDir, 'patterns', 'tree-view', 'types.ts'),
|
|
165
|
+
] as const;
|
|
166
|
+
|
|
167
|
+
describe('theme scope structure', () => {
|
|
168
|
+
it('keeps ZoraProvider lightweight (no extra ResponsiveProvider nesting)', () => {
|
|
169
|
+
expect(zoraProviderSource).toMatch(/ThemeProvider/);
|
|
170
|
+
expect(zoraProviderSource).toMatch(/ZoraThemeRuntimeContext\.Provider/);
|
|
171
|
+
expect(zoraProviderSource).not.toMatch(/ResponsiveProvider/);
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
it('implements nested scopes without nesting Surface ThemeProvider', () => {
|
|
175
|
+
expect(themeScopeSource).toMatch(/ThemeContext\.Provider/);
|
|
176
|
+
expect(themeScopeSource).toMatch(/createTheme\(/);
|
|
177
|
+
expect(themeScopeSource).not.toMatch(/ThemeProvider/);
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
it('wraps components only when mode/themeId overrides are present', () => {
|
|
181
|
+
expect(hocSource).toMatch(/props\.mode === undefined/);
|
|
182
|
+
expect(hocSource).toMatch(/props\.themeId === undefined/);
|
|
183
|
+
expect(hocSource).toMatch(/<ZoraThemeScope/);
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
it('adopts the inner + HOC pattern across the public surface', () => {
|
|
187
|
+
for (const filePath of scopedComponentFiles) {
|
|
188
|
+
const source = readFileSync(filePath, 'utf8');
|
|
189
|
+
expect(source).toMatch(/themeId: _themeId/);
|
|
190
|
+
expect(source).toMatch(/mode: _mode/);
|
|
191
|
+
expect(source).toMatch(/withZoraThemeScope/);
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
it('adds ZoraBaseProps to public component prop types', () => {
|
|
196
|
+
for (const filePath of scopedPropTypeFiles) {
|
|
197
|
+
const source = readFileSync(filePath, 'utf8');
|
|
198
|
+
expect(source).toMatch(/ZoraBaseProps/);
|
|
199
|
+
expect(source).toMatch(/extends\s+ZoraBaseProps/);
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
it('does not implement theme scoping outside the theme module', () => {
|
|
204
|
+
for (const filePath of scopeGuardFiles) {
|
|
205
|
+
const source = readFileSync(filePath, 'utf8');
|
|
206
|
+
expect(source).not.toMatch(/ThemeContext\.Provider/);
|
|
207
|
+
expect(source).not.toMatch(/ThemeProvider/);
|
|
208
|
+
expect(source).not.toMatch(/<ZoraThemeScope/);
|
|
209
|
+
expect(source).not.toMatch(/createTheme\(/);
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
it('does not introduce a hook override API', () => {
|
|
214
|
+
const srcFiles = collectSourceFiles(srcDir);
|
|
215
|
+
for (const filePath of srcFiles) {
|
|
216
|
+
const source = readFileSync(filePath, 'utf8');
|
|
217
|
+
expect(source).not.toMatch(/useZoraTheme\(\s*\{/);
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import type { ZoraBaseProps } from './ZoraBaseProps';
|
|
4
|
+
import { ZoraThemeScope } from './ZoraThemeScope';
|
|
5
|
+
|
|
6
|
+
export function withZoraThemeScope<P extends ZoraBaseProps>(
|
|
7
|
+
Component: (props: P) => React.ReactElement | null,
|
|
8
|
+
): (props: P) => React.ReactElement | null {
|
|
9
|
+
const Wrapped = (props: P) => {
|
|
10
|
+
if (props.mode === undefined && props.themeId === undefined) {
|
|
11
|
+
return React.createElement(Component, props);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<ZoraThemeScope mode={props.mode} themeId={props.themeId}>
|
|
16
|
+
{React.createElement(Component, props)}
|
|
17
|
+
</ZoraThemeScope>
|
|
18
|
+
);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const name =
|
|
22
|
+
(Component as { displayName?: string }).displayName ?? (Component.name || 'Component');
|
|
23
|
+
(Wrapped as { displayName?: string }).displayName = `withZoraThemeScope(${name})`;
|
|
24
|
+
|
|
25
|
+
return Wrapped;
|
|
26
|
+
}
|