@heymantle/litho 0.0.15 → 0.0.16
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/AI_COMPONENTS_GUIDE.md +28 -15
- package/AI_INTEGRATION_GUIDE.md +3 -3
- package/AI_PATTERNS_GUIDE.md +59 -25
- package/COMPONENT_QUICK_REFERENCE.md +3 -3
- package/dist/cjs/components/ActionList.js +33 -25
- package/dist/cjs/components/AnnouncementBar.js +115 -18
- package/dist/cjs/components/AnnouncementCard.js +269 -0
- package/dist/cjs/components/AppProvider.js +15 -2
- package/dist/cjs/components/Autocomplete.js +58 -36
- package/dist/cjs/components/Badge.js +28 -14
- package/dist/cjs/components/Banner.js +37 -27
- package/dist/cjs/components/Box.js +50 -38
- package/dist/cjs/components/Button.js +338 -109
- package/dist/cjs/components/ButtonGroup.js +27 -14
- package/dist/cjs/components/Card.js +311 -143
- package/dist/cjs/components/Checkbox.js +55 -47
- package/dist/cjs/components/CheckboxCard.js +222 -0
- package/dist/cjs/components/CheckboxCardGroup.js +384 -0
- package/dist/cjs/components/ChoiceList.js +21 -11
- package/dist/cjs/components/Code.js +22 -8
- package/dist/cjs/components/Collapsible.js +24 -11
- package/dist/cjs/components/ColorField.js +163 -38
- package/dist/cjs/components/ContextualSaveBar.js +13 -6
- package/dist/cjs/components/DatePicker.js +48 -37
- package/dist/cjs/components/Disclosure.js +35 -22
- package/dist/cjs/components/Divider.js +82 -18
- package/dist/cjs/components/DropZone.js +111 -37
- package/dist/cjs/components/EmptyState.js +18 -6
- package/dist/cjs/components/Filters.js +84 -36
- package/dist/cjs/components/FooterHelp.js +14 -4
- package/dist/cjs/components/Form.js +13 -2
- package/dist/cjs/components/Frame.js +57 -22
- package/dist/cjs/components/FrameSaveBar.js +37 -6
- package/dist/cjs/components/Grid.js +31 -15
- package/dist/cjs/components/HorizontalStack.js +38 -25
- package/dist/cjs/components/Icon.js +683 -61
- package/dist/cjs/components/Image.js +35 -22
- package/dist/cjs/components/InlineError.js +19 -10
- package/dist/cjs/components/Label.js +21 -12
- package/dist/cjs/components/Layout.js +33 -24
- package/dist/cjs/components/LayoutSection.js +84 -22
- package/dist/cjs/components/Link.js +35 -22
- package/dist/cjs/components/List.js +28 -12
- package/dist/cjs/components/Listbox.js +53 -31
- package/dist/cjs/components/Loading.js +14 -2
- package/dist/cjs/components/Modal.js +22 -40
- package/dist/cjs/components/Navigation.js +107 -36
- package/dist/cjs/components/Page.js +44 -31
- package/dist/cjs/components/Pagination.js +20 -5
- package/dist/cjs/components/Pane.js +67 -4
- package/dist/cjs/components/Popover.js +37 -21
- package/dist/cjs/components/PopoverManager.js +14 -1
- package/dist/cjs/components/ProgressBar.js +28 -15
- package/dist/cjs/components/RadioButton.js +32 -24
- package/dist/cjs/components/RadioButtonCard.js +92 -67
- package/dist/cjs/components/RadioButtonCardGroup.js +379 -0
- package/dist/cjs/components/RangeSlider.js +34 -26
- package/dist/cjs/components/ResourceList.js +28 -14
- package/dist/cjs/components/Select.js +38 -26
- package/dist/cjs/components/SkeletonText.js +33 -18
- package/dist/cjs/components/Spinner.js +24 -12
- package/dist/cjs/components/Stack.js +131 -71
- package/dist/cjs/components/TabNavigation.js +27 -1
- package/dist/cjs/components/Table.js +58 -18
- package/dist/cjs/components/Tabs.js +52 -23
- package/dist/cjs/components/Tag.js +37 -16
- package/dist/cjs/components/Text.js +32 -18
- package/dist/cjs/components/TextField.js +119 -69
- package/dist/cjs/components/Thumbnail.js +25 -11
- package/dist/cjs/components/TimePicker.js +22 -1
- package/dist/cjs/components/Tip.js +140 -25
- package/dist/cjs/components/ToastNotification.js +107 -34
- package/dist/cjs/components/ToastProvider.js +13 -3
- package/dist/cjs/components/Tooltip.js +50 -41
- package/dist/cjs/components/TopBar.js +83 -9
- package/dist/cjs/components/VerticalStack.js +31 -16
- package/dist/cjs/index.js +24 -0
- package/dist/cjs/stories/Autocomplete.stories.js +10 -10
- package/dist/cjs/stories/Checkbox.stories.js +6 -8
- package/dist/cjs/stories/CheckboxCardGroup.stories.js +459 -0
- package/dist/cjs/stories/Collapsible.stories.js +11 -11
- package/dist/cjs/stories/ColorField.stories.js +2 -3
- package/dist/cjs/stories/ComplexExamples.stories.js +48 -77
- package/dist/cjs/stories/ContextualSaveBar.stories.js +1 -1
- package/dist/cjs/stories/Divider.stories.js +15 -16
- package/dist/cjs/stories/DropZone.stories.js +3 -3
- package/dist/cjs/stories/FooterHelp.stories.js +3 -4
- package/dist/cjs/stories/Form.stories.js +2 -4
- package/dist/cjs/stories/Grid.stories.js +24 -33
- package/dist/cjs/stories/Icon.stories.js +22 -23
- package/dist/cjs/stories/Image.stories.js +12 -15
- package/dist/cjs/stories/InlineError.stories.js +0 -1
- package/dist/cjs/stories/Layout.stories.js +96 -2
- package/dist/cjs/stories/LayoutSection.stories.js +13 -18
- package/dist/cjs/stories/List.stories.js +24 -28
- package/dist/cjs/stories/Listbox.stories.js +2 -2
- package/dist/cjs/stories/Loading.stories.js +21 -25
- package/dist/cjs/stories/Modal.stories.js +0 -1
- package/dist/cjs/stories/Pagination.stories.js +4 -4
- package/dist/cjs/stories/Pane.stories.js +10 -18
- package/dist/cjs/stories/Popover.stories.js +7 -7
- package/dist/cjs/stories/PopoverManager.stories.js +9 -9
- package/dist/cjs/stories/ProgressBar.stories.js +8 -8
- package/dist/cjs/stories/RadioButton.stories.js +2 -2
- package/dist/cjs/stories/RadioButtonCard.stories.js +2 -2
- package/dist/cjs/stories/RadioButtonCardGroup.stories.js +502 -0
- package/dist/cjs/stories/RangeSlider.stories.js +1 -3
- package/dist/cjs/stories/ResourceList.stories.js +13 -13
- package/dist/cjs/stories/Spinner.stories.js +9 -9
- package/dist/cjs/stories/Stack.stories.js +233 -51
- package/dist/cjs/stories/Tabs.stories.js +2 -2
- package/dist/cjs/stories/Tag.stories.js +1 -1
- package/dist/cjs/stories/Thumbnail.stories.js +17 -18
- package/dist/cjs/stories/TimePicker.stories.js +0 -5
- package/dist/cjs/stories/Tip.stories.js +1 -1
- package/dist/esm/components/ActionList.js +33 -25
- package/dist/esm/components/AnnouncementBar.js +115 -18
- package/dist/esm/components/AnnouncementCard.js +254 -0
- package/dist/esm/components/AppProvider.js +15 -2
- package/dist/esm/components/Autocomplete.js +58 -36
- package/dist/esm/components/Badge.js +28 -14
- package/dist/esm/components/Banner.js +37 -27
- package/dist/esm/components/Box.js +50 -38
- package/dist/esm/components/Button.js +338 -109
- package/dist/esm/components/ButtonGroup.js +27 -14
- package/dist/esm/components/Card.js +300 -140
- package/dist/esm/components/Checkbox.js +55 -47
- package/dist/esm/components/CheckboxCard.js +207 -0
- package/dist/esm/components/CheckboxCardGroup.js +370 -0
- package/dist/esm/components/ChoiceList.js +21 -11
- package/dist/esm/components/Code.js +22 -8
- package/dist/esm/components/Collapsible.js +24 -11
- package/dist/esm/components/ColorField.js +165 -40
- package/dist/esm/components/ContextualSaveBar.js +13 -6
- package/dist/esm/components/DatePicker.js +48 -37
- package/dist/esm/components/Disclosure.js +35 -22
- package/dist/esm/components/Divider.js +78 -20
- package/dist/esm/components/DropZone.js +111 -37
- package/dist/esm/components/EmptyState.js +18 -6
- package/dist/esm/components/Filters.js +84 -36
- package/dist/esm/components/FooterHelp.js +14 -4
- package/dist/esm/components/Form.js +13 -2
- package/dist/esm/components/Frame.js +57 -22
- package/dist/esm/components/FrameSaveBar.js +37 -6
- package/dist/esm/components/Grid.js +31 -15
- package/dist/esm/components/HorizontalStack.js +38 -25
- package/dist/esm/components/Icon.js +681 -62
- package/dist/esm/components/Image.js +35 -22
- package/dist/esm/components/InlineError.js +19 -10
- package/dist/esm/components/Label.js +21 -12
- package/dist/esm/components/Layout.js +58 -25
- package/dist/esm/components/LayoutSection.js +84 -22
- package/dist/esm/components/Link.js +35 -22
- package/dist/esm/components/List.js +28 -12
- package/dist/esm/components/Listbox.js +53 -31
- package/dist/esm/components/Loading.js +14 -2
- package/dist/esm/components/Modal.js +69 -41
- package/dist/esm/components/Navigation.js +107 -36
- package/dist/esm/components/Page.js +44 -31
- package/dist/esm/components/Pagination.js +20 -5
- package/dist/esm/components/Pane.js +67 -4
- package/dist/esm/components/Popover.js +37 -21
- package/dist/esm/components/PopoverManager.js +14 -1
- package/dist/esm/components/ProgressBar.js +28 -15
- package/dist/esm/components/RadioButton.js +32 -24
- package/dist/esm/components/RadioButtonCard.js +92 -67
- package/dist/esm/components/RadioButtonCardGroup.js +364 -0
- package/dist/esm/components/RangeSlider.js +34 -26
- package/dist/esm/components/ResourceList.js +28 -14
- package/dist/esm/components/Select.js +38 -26
- package/dist/esm/components/SkeletonText.js +33 -18
- package/dist/esm/components/Spinner.js +24 -12
- package/dist/esm/components/Stack.js +131 -71
- package/dist/esm/components/TabNavigation.js +27 -1
- package/dist/esm/components/Table.js +58 -18
- package/dist/esm/components/Tabs.js +52 -23
- package/dist/esm/components/Tag.js +37 -16
- package/dist/esm/components/Text.js +32 -18
- package/dist/esm/components/TextField.js +119 -69
- package/dist/esm/components/Thumbnail.js +25 -11
- package/dist/esm/components/TimePicker.js +22 -1
- package/dist/esm/components/Tip.js +140 -25
- package/dist/esm/components/ToastNotification.js +107 -34
- package/dist/esm/components/ToastProvider.js +13 -3
- package/dist/esm/components/Tooltip.js +50 -41
- package/dist/esm/components/TopBar.js +83 -9
- package/dist/esm/components/VerticalStack.js +31 -16
- package/dist/esm/index.js +6 -0
- package/dist/esm/stories/Autocomplete.stories.js +10 -10
- package/dist/esm/stories/Checkbox.stories.js +6 -8
- package/dist/esm/stories/CheckboxCardGroup.stories.js +421 -0
- package/dist/esm/stories/Collapsible.stories.js +11 -11
- package/dist/esm/stories/ColorField.stories.js +2 -3
- package/dist/esm/stories/ComplexExamples.stories.js +48 -77
- package/dist/esm/stories/ContextualSaveBar.stories.js +1 -1
- package/dist/esm/stories/Divider.stories.js +15 -16
- package/dist/esm/stories/DropZone.stories.js +3 -3
- package/dist/esm/stories/FooterHelp.stories.js +3 -4
- package/dist/esm/stories/Form.stories.js +2 -4
- package/dist/esm/stories/Grid.stories.js +24 -33
- package/dist/esm/stories/Icon.stories.js +22 -23
- package/dist/esm/stories/Image.stories.js +12 -15
- package/dist/esm/stories/InlineError.stories.js +0 -1
- package/dist/esm/stories/Layout.stories.js +93 -2
- package/dist/esm/stories/LayoutSection.stories.js +13 -18
- package/dist/esm/stories/List.stories.js +24 -28
- package/dist/esm/stories/Listbox.stories.js +2 -2
- package/dist/esm/stories/Loading.stories.js +21 -25
- package/dist/esm/stories/Modal.stories.js +0 -1
- package/dist/esm/stories/Pagination.stories.js +4 -4
- package/dist/esm/stories/Pane.stories.js +10 -18
- package/dist/esm/stories/Popover.stories.js +7 -7
- package/dist/esm/stories/PopoverManager.stories.js +9 -9
- package/dist/esm/stories/ProgressBar.stories.js +8 -8
- package/dist/esm/stories/RadioButton.stories.js +2 -2
- package/dist/esm/stories/RadioButtonCard.stories.js +2 -2
- package/dist/esm/stories/RadioButtonCardGroup.stories.js +461 -0
- package/dist/esm/stories/RangeSlider.stories.js +1 -3
- package/dist/esm/stories/ResourceList.stories.js +13 -13
- package/dist/esm/stories/Spinner.stories.js +9 -9
- package/dist/esm/stories/Stack.stories.js +224 -51
- package/dist/esm/stories/Tabs.stories.js +2 -2
- package/dist/esm/stories/Tag.stories.js +1 -1
- package/dist/esm/stories/Thumbnail.stories.js +17 -18
- package/dist/esm/stories/TimePicker.stories.js +0 -5
- package/dist/esm/stories/Tip.stories.js +1 -1
- package/dist/types/components/ActionList.d.ts +1 -31
- package/dist/types/components/ActionList.d.ts.map +1 -1
- package/dist/types/components/AnnouncementBar.d.ts +1 -19
- package/dist/types/components/AnnouncementBar.d.ts.map +1 -1
- package/dist/types/components/AnnouncementCard.d.ts +3 -0
- package/dist/types/components/AnnouncementCard.d.ts.map +1 -0
- package/dist/types/components/AppProvider.d.ts +14 -1
- package/dist/types/components/AppProvider.d.ts.map +1 -1
- package/dist/types/components/Autocomplete.d.ts +1 -71
- package/dist/types/components/Autocomplete.d.ts.map +1 -1
- package/dist/types/components/Badge.d.ts +1 -19
- package/dist/types/components/Badge.d.ts.map +1 -1
- package/dist/types/components/Banner.d.ts +1 -37
- package/dist/types/components/Banner.d.ts.map +1 -1
- package/dist/types/components/Box.d.ts +1 -68
- package/dist/types/components/Box.d.ts.map +1 -1
- package/dist/types/components/Button.d.ts +1 -131
- package/dist/types/components/Button.d.ts.map +1 -1
- package/dist/types/components/ButtonGroup.d.ts +1 -22
- package/dist/types/components/ButtonGroup.d.ts.map +1 -1
- package/dist/types/components/Card.d.ts +54 -59
- package/dist/types/components/Card.d.ts.map +1 -1
- package/dist/types/components/Checkbox.d.ts +1 -63
- package/dist/types/components/Checkbox.d.ts.map +1 -1
- package/dist/types/components/CheckboxCard.d.ts +3 -0
- package/dist/types/components/CheckboxCard.d.ts.map +1 -0
- package/dist/types/components/CheckboxCardGroup.d.ts +3 -0
- package/dist/types/components/CheckboxCardGroup.d.ts.map +1 -0
- package/dist/types/components/ChoiceList.d.ts +1 -42
- package/dist/types/components/ChoiceList.d.ts.map +1 -1
- package/dist/types/components/Code.d.ts +1 -26
- package/dist/types/components/Code.d.ts.map +1 -1
- package/dist/types/components/Collapsible.d.ts +1 -15
- package/dist/types/components/Collapsible.d.ts.map +1 -1
- package/dist/types/components/ColorField.d.ts +13 -34
- package/dist/types/components/ColorField.d.ts.map +1 -1
- package/dist/types/components/ContextualSaveBar.d.ts +13 -6
- package/dist/types/components/ContextualSaveBar.d.ts.map +1 -1
- package/dist/types/components/DatePicker.d.ts +1 -64
- package/dist/types/components/DatePicker.d.ts.map +1 -1
- package/dist/types/components/Disclosure.d.ts +1 -25
- package/dist/types/components/Disclosure.d.ts.map +1 -1
- package/dist/types/components/Divider.d.ts +1 -19
- package/dist/types/components/Divider.d.ts.map +1 -1
- package/dist/types/components/DropZone.d.ts +1 -62
- package/dist/types/components/DropZone.d.ts.map +1 -1
- package/dist/types/components/EmptyState.d.ts +1 -50
- package/dist/types/components/EmptyState.d.ts.map +1 -1
- package/dist/types/components/Filters.d.ts +13 -68
- package/dist/types/components/Filters.d.ts.map +1 -1
- package/dist/types/components/FooterHelp.d.ts +14 -4
- package/dist/types/components/FooterHelp.d.ts.map +1 -1
- package/dist/types/components/Form.d.ts +13 -2
- package/dist/types/components/Form.d.ts.map +1 -1
- package/dist/types/components/Frame.d.ts +15 -36
- package/dist/types/components/Frame.d.ts.map +1 -1
- package/dist/types/components/FrameSaveBar.d.ts +3 -6
- package/dist/types/components/FrameSaveBar.d.ts.map +1 -1
- package/dist/types/components/Grid.d.ts +5 -21
- package/dist/types/components/Grid.d.ts.map +1 -1
- package/dist/types/components/HorizontalStack.d.ts +1 -34
- package/dist/types/components/HorizontalStack.d.ts.map +1 -1
- package/dist/types/components/Icon.d.ts +1 -41
- package/dist/types/components/Icon.d.ts.map +1 -1
- package/dist/types/components/Image.d.ts +1 -43
- package/dist/types/components/Image.d.ts.map +1 -1
- package/dist/types/components/InlineError.d.ts +1 -20
- package/dist/types/components/InlineError.d.ts.map +1 -1
- package/dist/types/components/Label.d.ts +1 -26
- package/dist/types/components/Label.d.ts.map +1 -1
- package/dist/types/components/Layout.d.ts +24 -15
- package/dist/types/components/Layout.d.ts.map +1 -1
- package/dist/types/components/LayoutSection.d.ts +1 -19
- package/dist/types/components/LayoutSection.d.ts.map +1 -1
- package/dist/types/components/Link.d.ts +1 -37
- package/dist/types/components/Link.d.ts.map +1 -1
- package/dist/types/components/List.d.ts +5 -17
- package/dist/types/components/List.d.ts.map +1 -1
- package/dist/types/components/Listbox.d.ts +1 -32
- package/dist/types/components/Listbox.d.ts.map +1 -1
- package/dist/types/components/Loading.d.ts +14 -2
- package/dist/types/components/Loading.d.ts.map +1 -1
- package/dist/types/components/Modal.d.ts +26 -35
- package/dist/types/components/Modal.d.ts.map +1 -1
- package/dist/types/components/Navigation.d.ts +1 -25
- package/dist/types/components/Navigation.d.ts.map +1 -1
- package/dist/types/components/Page.d.ts +1 -57
- package/dist/types/components/Page.d.ts.map +1 -1
- package/dist/types/components/Pagination.d.ts +13 -3
- package/dist/types/components/Pagination.d.ts.map +1 -1
- package/dist/types/components/Pane.d.ts +55 -3
- package/dist/types/components/Pane.d.ts.map +1 -1
- package/dist/types/components/Popover.d.ts +5 -37
- package/dist/types/components/Popover.d.ts.map +1 -1
- package/dist/types/components/PopoverManager.d.ts.map +1 -1
- package/dist/types/components/ProgressBar.d.ts +1 -22
- package/dist/types/components/ProgressBar.d.ts.map +1 -1
- package/dist/types/components/RadioButton.d.ts +1 -37
- package/dist/types/components/RadioButton.d.ts.map +1 -1
- package/dist/types/components/RadioButtonCard.d.ts +1 -39
- package/dist/types/components/RadioButtonCard.d.ts.map +1 -1
- package/dist/types/components/RadioButtonCardGroup.d.ts +3 -0
- package/dist/types/components/RadioButtonCardGroup.d.ts.map +1 -0
- package/dist/types/components/RangeSlider.d.ts +1 -42
- package/dist/types/components/RangeSlider.d.ts.map +1 -1
- package/dist/types/components/ResourceList.d.ts +5 -30
- package/dist/types/components/ResourceList.d.ts.map +1 -1
- package/dist/types/components/Select.d.ts +1 -46
- package/dist/types/components/Select.d.ts.map +1 -1
- package/dist/types/components/SkeletonText.d.ts +1 -26
- package/dist/types/components/SkeletonText.d.ts.map +1 -1
- package/dist/types/components/Spinner.d.ts +1 -16
- package/dist/types/components/Spinner.d.ts.map +1 -1
- package/dist/types/components/Stack.d.ts +1 -47
- package/dist/types/components/Stack.d.ts.map +1 -1
- package/dist/types/components/TabNavigation.d.ts.map +1 -1
- package/dist/types/components/Table.d.ts +13 -58
- package/dist/types/components/Table.d.ts.map +1 -1
- package/dist/types/components/Tabs.d.ts +3 -41
- package/dist/types/components/Tabs.d.ts.map +1 -1
- package/dist/types/components/Tag.d.ts +1 -24
- package/dist/types/components/Tag.d.ts.map +1 -1
- package/dist/types/components/Text.d.ts +1 -30
- package/dist/types/components/Text.d.ts.map +1 -1
- package/dist/types/components/TextField.d.ts +1 -109
- package/dist/types/components/TextField.d.ts.map +1 -1
- package/dist/types/components/Thumbnail.d.ts +1 -16
- package/dist/types/components/Thumbnail.d.ts.map +1 -1
- package/dist/types/components/TimePicker.d.ts +28 -1
- package/dist/types/components/TimePicker.d.ts.map +1 -1
- package/dist/types/components/Tip.d.ts +1 -21
- package/dist/types/components/Tip.d.ts.map +1 -1
- package/dist/types/components/ToastNotification.d.ts +1 -34
- package/dist/types/components/ToastNotification.d.ts.map +1 -1
- package/dist/types/components/ToastProvider.d.ts +13 -3
- package/dist/types/components/ToastProvider.d.ts.map +1 -1
- package/dist/types/components/Tooltip.d.ts +1 -54
- package/dist/types/components/Tooltip.d.ts.map +1 -1
- package/dist/types/components/TopBar.d.ts +1 -19
- package/dist/types/components/TopBar.d.ts.map +1 -1
- package/dist/types/components/VerticalStack.d.ts +1 -25
- package/dist/types/components/VerticalStack.d.ts.map +1 -1
- package/dist/types/index.d.ts +6 -0
- package/index.css +76 -14
- package/package.json +4 -3
|
@@ -1,6 +1,28 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { tv } from "tailwind-variants";
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* @component Spinner
|
|
5
|
+
*
|
|
6
|
+
* @description An animated loading indicator for inline use within buttons, cards, or sections during asynchronous operations.
|
|
7
|
+
*
|
|
8
|
+
* @usage
|
|
9
|
+
* - DO: Use inline within buttons, cards, or sections to indicate localized loading.
|
|
10
|
+
* - DON'T: Use as a full-page loading indicator; use `Loading` for page-level progress bars.
|
|
11
|
+
*
|
|
12
|
+
* @accessibility
|
|
13
|
+
* - Renders with `role="status"` and an `aria-label`; always provide a descriptive `accessibilityLabel`.
|
|
14
|
+
* - Avoid relying on the animation alone; the `role="status"` ensures screen readers announce loading state.
|
|
15
|
+
*
|
|
16
|
+
* @alternative
|
|
17
|
+
* - If you need a page-level progress bar, use `Loading` instead.
|
|
18
|
+
* - If you need placeholder content while data loads, use `SkeletonText` instead.
|
|
19
|
+
*
|
|
20
|
+
* @param {Object} props - The props object.
|
|
21
|
+
* @param {('small'|'large')} [props.size='large'] - The size of the spinner, either "small" or "large".
|
|
22
|
+
* @param {('default'|'subdued')} [props.color='default'] - The color variant of the spinner.
|
|
23
|
+
* @param {string} [props.accessibilityLabel='Loading...'] - The accessible label for screen readers, describing the spinner's purpose.
|
|
24
|
+
* @returns {JSX.Element} The rendered Spinner component.
|
|
25
|
+
*/ var styles = tv({
|
|
4
26
|
base: "Litho-Spinner",
|
|
5
27
|
variants: {
|
|
6
28
|
size: {
|
|
@@ -19,17 +41,7 @@ var svgStyles = tv({
|
|
|
19
41
|
}
|
|
20
42
|
}
|
|
21
43
|
});
|
|
22
|
-
|
|
23
|
-
* Spinner Component
|
|
24
|
-
*
|
|
25
|
-
* This component renders a loading spinner with customizable size, color, and accessibility label.
|
|
26
|
-
*
|
|
27
|
-
* @param {Object} props - The props object.
|
|
28
|
-
* @param {('small'|'large')} [props.size='large'] - The size of the spinner, either "small" or "large".
|
|
29
|
-
* @param {('default'|'subdued')} [props.color='default'] - The color variant of the spinner.
|
|
30
|
-
* @param {string} [props.accessibilityLabel='Loading...'] - The accessible label for screen readers, describing the spinner's purpose.
|
|
31
|
-
* @returns {JSX.Element} The rendered Spinner component.
|
|
32
|
-
*/ function Spinner() {
|
|
44
|
+
function Spinner() {
|
|
33
45
|
var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
34
46
|
var _props_size = props.size, size = _props_size === void 0 ? "large" : _props_size, _props_color = props.color, color = _props_color === void 0 ? "default" : _props_color, _props_accessibilityLabel = props.accessibilityLabel, accessibilityLabel = _props_accessibilityLabel === void 0 ? "Loading..." : _props_accessibilityLabel;
|
|
35
47
|
var classes = styles({
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
function _define_property(obj, key, value) {
|
|
3
2
|
if (key in obj) {
|
|
4
3
|
Object.defineProperty(obj, key, {
|
|
@@ -80,7 +79,62 @@ function _object_without_properties_loose(source, excluded) {
|
|
|
80
79
|
}
|
|
81
80
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
82
81
|
import { tv } from "tailwind-variants";
|
|
83
|
-
|
|
82
|
+
/**
|
|
83
|
+
* @component Stack
|
|
84
|
+
*
|
|
85
|
+
* @description A flex layout component that arranges children in a row or column with configurable gap, alignment, and wrapping.
|
|
86
|
+
*
|
|
87
|
+
* @usage
|
|
88
|
+
* - DO: Arrange child elements with consistent spacing using the `gap` prop.
|
|
89
|
+
* - DON'T: Use for grid-based layouts (use `Grid` instead).
|
|
90
|
+
*
|
|
91
|
+
* @accessibility
|
|
92
|
+
* - Stack is a layout utility; ensure child content maintains logical reading order.
|
|
93
|
+
*
|
|
94
|
+
* @alternative
|
|
95
|
+
* - If you need explicit horizontal layout, use `Stack` with `horizontal` prop.
|
|
96
|
+
* - If you need responsive layout that switches from vertical to horizontal at a breakpoint, use `Stack` with `horizontal="md"` (or `"sm"`, `"lg"`, etc.).
|
|
97
|
+
* - If you need 2D grid layout, use `Grid`.
|
|
98
|
+
*
|
|
99
|
+
* @param {Object} [props={}] - Component props.
|
|
100
|
+
* @param {string} [props.as='div'] - The HTML element to render. Defaults to `div`.
|
|
101
|
+
* @param {React.ReactNode} [props.children] - Child elements to render inside the stack.
|
|
102
|
+
* @param {boolean|'xs'|'sm'|'md'|'lg'|'xl'} [props.horizontal=false] - Direction control. When `true`, always horizontal (flex-row). When a breakpoint string is passed (e.g. `"md"`), the stack is vertical below that breakpoint and horizontal at/above it. Defaults to `false` (vertical).
|
|
103
|
+
* @param {('none'|'xs'|'sm'|'md'|'lg'|'0'|'px'|'0.5'|'1'|'1.5'|'2'|'3'|'4'|'5'|'6'|'8'|'10')} [props.gap='md'] - Spacing between children. Semantic options: 'none' (0), 'xs' (1), 'sm' (2), 'md' (4), 'lg' (8). Numeric options: '0', 'px', '0.5', '1', '2', '3', '4', '5', '6', '8', '10'. Defaults to 'md'.
|
|
104
|
+
* @param {string} [props.id] - Optional ID for the component.
|
|
105
|
+
* @param {string} [props.className] - Additional custom class names to apply to the component.
|
|
106
|
+
* @param {('start'|'center'|'end'|'stretch'|'baseline')} [props.align='stretch'] - Cross-axis alignment (maps to CSS `align-items`). Controls vertical alignment for horizontal stacks and horizontal alignment for vertical stacks.
|
|
107
|
+
* @param {boolean} [props.wrap=false] - Whether children should wrap to the next line if necessary. Defaults to false.
|
|
108
|
+
* @param {('start'|'center'|'end'|'between'|'evenly'|'around')} [props.justify='start'] - Main axis justification. Controls horizontal justification for horizontal stacks and vertical justification for vertical stacks.
|
|
109
|
+
* @param {boolean} [props.fill=false] - When true and horizontal is active, direct children fill equal space (flex: 1 1 0%). Set to false to let children size naturally. Defaults to false.
|
|
110
|
+
* @param {('1'|'2'|'3'|'4'|'5'|'6'|null)} [props.flex=null] - Flex grow value. Sets `flex-1` through `flex-6` on the stack. Defaults to null (no flex).
|
|
111
|
+
* @param {boolean} [props.fullWidth=false] - When true, applies width: 100% (w-full). Defaults to false.
|
|
112
|
+
* @param {Object} [restProps] - Additional props passed to the root element.
|
|
113
|
+
*
|
|
114
|
+
* @returns {JSX.Element} The rendered Stack component.
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* // Vertical stack (default)
|
|
118
|
+
* <Stack gap="sm" align="center">
|
|
119
|
+
* <div>Item 1</div>
|
|
120
|
+
* <div>Item 2</div>
|
|
121
|
+
* </Stack>
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* // Horizontal stack
|
|
125
|
+
* <Stack horizontal>
|
|
126
|
+
* <div>Item 1</div>
|
|
127
|
+
* <div>Item 2</div>
|
|
128
|
+
* </Stack>
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* // Responsive: vertical on mobile, horizontal at md breakpoint
|
|
132
|
+
* <Stack horizontal="md">
|
|
133
|
+
* <div>Column 1</div>
|
|
134
|
+
* <div>Column 2</div>
|
|
135
|
+
* <div>Column 3</div>
|
|
136
|
+
* </Stack>
|
|
137
|
+
*/ var styles = tv({
|
|
84
138
|
base: "Litho-Stack flex",
|
|
85
139
|
variants: {
|
|
86
140
|
direction: {
|
|
@@ -99,6 +153,7 @@ var styles = tv({
|
|
|
99
153
|
"px": "gap-px",
|
|
100
154
|
"0.5": "gap-0.5",
|
|
101
155
|
"1": "gap-1",
|
|
156
|
+
"1.5": "gap-1.5",
|
|
102
157
|
"2": "gap-2",
|
|
103
158
|
"3": "gap-3",
|
|
104
159
|
"4": "gap-4",
|
|
@@ -107,75 +162,66 @@ var styles = tv({
|
|
|
107
162
|
"8": "gap-8",
|
|
108
163
|
"10": "gap-10"
|
|
109
164
|
},
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
"
|
|
115
|
-
"
|
|
116
|
-
"
|
|
117
|
-
spaceBetween: "justify-between"
|
|
165
|
+
flex: {
|
|
166
|
+
"1": "flex-1",
|
|
167
|
+
"2": "flex-2",
|
|
168
|
+
"3": "flex-3",
|
|
169
|
+
"4": "flex-4",
|
|
170
|
+
"5": "flex-5",
|
|
171
|
+
"6": "flex-6"
|
|
118
172
|
},
|
|
119
|
-
|
|
173
|
+
align: {
|
|
120
174
|
start: "items-start",
|
|
121
175
|
center: "items-center",
|
|
122
176
|
end: "items-end",
|
|
123
|
-
stretch: "items-stretch"
|
|
177
|
+
stretch: "items-stretch",
|
|
178
|
+
baseline: "items-baseline"
|
|
124
179
|
},
|
|
125
|
-
|
|
126
|
-
start: "
|
|
127
|
-
center: "
|
|
128
|
-
end: "
|
|
129
|
-
|
|
180
|
+
justify: {
|
|
181
|
+
start: "justify-start",
|
|
182
|
+
center: "justify-center",
|
|
183
|
+
end: "justify-end",
|
|
184
|
+
between: "justify-between",
|
|
185
|
+
evenly: "justify-evenly",
|
|
186
|
+
stretch: "justify-stretch",
|
|
187
|
+
around: "justify-around"
|
|
130
188
|
},
|
|
131
189
|
wrap: {
|
|
132
190
|
true: "flex-wrap",
|
|
133
191
|
false: "flex-nowrap"
|
|
192
|
+
},
|
|
193
|
+
fullWidth: {
|
|
194
|
+
true: "w-full",
|
|
195
|
+
false: ""
|
|
134
196
|
}
|
|
135
197
|
},
|
|
136
198
|
defaultVariants: {
|
|
137
199
|
direction: "vertical",
|
|
138
200
|
gap: "md",
|
|
139
|
-
align: "
|
|
201
|
+
align: "stretch",
|
|
202
|
+
justify: "start",
|
|
203
|
+
fullWidth: false
|
|
140
204
|
}
|
|
141
205
|
});
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
* @param {Object} [restProps] - Additional props passed to the root element.
|
|
160
|
-
*
|
|
161
|
-
* @returns {JSX.Element} The rendered Stack component.
|
|
162
|
-
*
|
|
163
|
-
* @example
|
|
164
|
-
* // Vertical stack (default)
|
|
165
|
-
* <Stack gap="sm" inlineAlign="center">
|
|
166
|
-
* <div>Item 1</div>
|
|
167
|
-
* <div>Item 2</div>
|
|
168
|
-
* </Stack>
|
|
169
|
-
*
|
|
170
|
-
* @example
|
|
171
|
-
* // Horizontal stack
|
|
172
|
-
* <Stack horizontal gap="md" blockAlign="center" wrap={true}>
|
|
173
|
-
* <div>Item 1</div>
|
|
174
|
-
* <div>Item 2</div>
|
|
175
|
-
* </Stack>
|
|
176
|
-
*/ function Stack() {
|
|
206
|
+
// Static maps for Tailwind JIT scanability — do not construct dynamically
|
|
207
|
+
var responsiveDirectionClasses = {
|
|
208
|
+
xs: "flex-col xs:flex-row",
|
|
209
|
+
sm: "flex-col sm:flex-row",
|
|
210
|
+
md: "flex-col md:flex-row",
|
|
211
|
+
lg: "flex-col lg:flex-row",
|
|
212
|
+
xl: "flex-col xl:flex-row"
|
|
213
|
+
};
|
|
214
|
+
var fillModifierClasses = {
|
|
215
|
+
true: "Litho-Stack--fill",
|
|
216
|
+
xs: "Litho-Stack--fill-xs",
|
|
217
|
+
sm: "Litho-Stack--fill-sm",
|
|
218
|
+
md: "Litho-Stack--fill-md",
|
|
219
|
+
lg: "Litho-Stack--fill-lg",
|
|
220
|
+
xl: "Litho-Stack--fill-xl"
|
|
221
|
+
};
|
|
222
|
+
function Stack() {
|
|
177
223
|
var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
178
|
-
var _props_as = props.as, as = _props_as === void 0 ? "div" : _props_as, children = props.children, _props_horizontal = props.horizontal, horizontal = _props_horizontal === void 0 ? false : _props_horizontal, _props_gap = props.gap, gap = _props_gap === void 0 ? "md" : _props_gap, id = props.id, className = props.className, align = props.align,
|
|
224
|
+
var _props_as = props.as, as = _props_as === void 0 ? "div" : _props_as, children = props.children, _props_horizontal = props.horizontal, horizontal = _props_horizontal === void 0 ? false : _props_horizontal, _props_gap = props.gap, gap = _props_gap === void 0 ? "md" : _props_gap, id = props.id, className = props.className, align = props.align, justify = props.justify, _props_wrap = props.wrap, wrap = _props_wrap === void 0 ? false : _props_wrap, _props_flex = props.flex, flex = _props_flex === void 0 ? null : _props_flex, _props_fill = props.fill, fill = _props_fill === void 0 ? false : _props_fill, _props_fullWidth = props.fullWidth, fullWidth = _props_fullWidth === void 0 ? false : _props_fullWidth, restProps = _object_without_properties(props, [
|
|
179
225
|
"as",
|
|
180
226
|
"children",
|
|
181
227
|
"horizontal",
|
|
@@ -183,29 +229,43 @@ var styles = tv({
|
|
|
183
229
|
"id",
|
|
184
230
|
"className",
|
|
185
231
|
"align",
|
|
186
|
-
"
|
|
187
|
-
"
|
|
188
|
-
"
|
|
232
|
+
"justify",
|
|
233
|
+
"wrap",
|
|
234
|
+
"flex",
|
|
235
|
+
"fill",
|
|
236
|
+
"fullWidth"
|
|
189
237
|
]);
|
|
190
|
-
var
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
238
|
+
var isResponsive = typeof horizontal === "string";
|
|
239
|
+
var isHorizontal = horizontal === true;
|
|
240
|
+
var effectivelyHorizontal = isHorizontal || isResponsive;
|
|
241
|
+
// For boolean horizontal, use tv direction variant
|
|
242
|
+
// For responsive, tv gets "vertical" (flex-col) and responsive classes override at breakpoint
|
|
243
|
+
var direction = isHorizontal ? "horizontal" : "vertical";
|
|
244
|
+
// Horizontal stacks default to center (items-center), vertical to stretch (items-stretch)
|
|
245
|
+
var effectiveAlign = align !== undefined ? align : effectivelyHorizontal ? "center" : "stretch";
|
|
246
|
+
var classes = styles({
|
|
195
247
|
direction: direction,
|
|
196
248
|
gap: gap,
|
|
197
|
-
align:
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
|
|
249
|
+
align: effectiveAlign,
|
|
250
|
+
justify: justify,
|
|
251
|
+
wrap: wrap,
|
|
252
|
+
flex: flex,
|
|
253
|
+
fullWidth: fullWidth
|
|
254
|
+
});
|
|
255
|
+
// Responsive direction classes (e.g. "flex-col md:flex-row")
|
|
256
|
+
var responsiveClasses = isResponsive ? responsiveDirectionClasses[horizontal] : "";
|
|
257
|
+
// Fill modifier class for CSS child targeting
|
|
258
|
+
var fillClass = fill && effectivelyHorizontal ? fillModifierClasses[horizontal] || fillModifierClasses["true"] : "";
|
|
205
259
|
var Element = as;
|
|
260
|
+
var allClasses = [
|
|
261
|
+
classes,
|
|
262
|
+
responsiveClasses,
|
|
263
|
+
fillClass,
|
|
264
|
+
className
|
|
265
|
+
].filter(Boolean).join(" ");
|
|
206
266
|
return /*#__PURE__*/ _jsx(Element, _object_spread_props(_object_spread({
|
|
207
267
|
id: id,
|
|
208
|
-
className:
|
|
268
|
+
className: allClasses
|
|
209
269
|
}, restProps), {
|
|
210
270
|
children: children
|
|
211
271
|
}));
|
|
@@ -53,7 +53,33 @@ import Button from "./Button.js";
|
|
|
53
53
|
import Text from "./Text.js";
|
|
54
54
|
import Spinner from "./Spinner.js";
|
|
55
55
|
import Tooltip from "./Tooltip.js";
|
|
56
|
-
|
|
56
|
+
/**
|
|
57
|
+
* @component TabNavigation
|
|
58
|
+
*
|
|
59
|
+
* @description A URL-based tab navigation component that renders tabs as links, supporting closeable tabs and route-driven active states.
|
|
60
|
+
*
|
|
61
|
+
* @usage
|
|
62
|
+
* - DO: Use for navigation tabs that change the URL/route.
|
|
63
|
+
* - DON'T: Use for in-page content switching without URL changes (use Tabs).
|
|
64
|
+
*
|
|
65
|
+
* @accessibility
|
|
66
|
+
* - Renders as navigation links; ensure each tab link has descriptive text.
|
|
67
|
+
*
|
|
68
|
+
* @alternative
|
|
69
|
+
* - If you need in-page content tabs without URL routing, use `Tabs`. If you need a sidebar nav, use `Navigation`.
|
|
70
|
+
*
|
|
71
|
+
* @param {Object} props - Component properties.
|
|
72
|
+
* @param {Array<Object>} [props.tabs=[]] - Array of tab objects to display.
|
|
73
|
+
* @param {string} props.tabs[].id - Unique identifier for the tab.
|
|
74
|
+
* @param {string} props.tabs[].title - Display title for the tab.
|
|
75
|
+
* @param {boolean} [props.tabs[].loading] - Whether the tab is in a loading state.
|
|
76
|
+
* @param {Object} [props.tabs[].readStatus] - Read status indicator for the tab.
|
|
77
|
+
* @param {string} [props.activeTabId] - The ID of the currently active tab.
|
|
78
|
+
* @param {Function} [props.onTabClick] - Callback fired when a tab is clicked, receives the tab ID.
|
|
79
|
+
* @param {Function} [props.onTabClose] - Callback fired when a tab's close button is clicked, receives the tab ID.
|
|
80
|
+
* @param {string} [props.className=""] - Additional CSS class names for the container.
|
|
81
|
+
* @returns {JSX.Element} The rendered TabNavigation component.
|
|
82
|
+
*/ var AVG_CHAR_WIDTH = 5.5;
|
|
57
83
|
var tabStyles = tv({
|
|
58
84
|
base: "relative group cursor-pointer rounded-t-sm items-center px-2 pt-2 gap-0.5 overflow-hidden min-w-[60px] max-w-[160px] pointer-coarse:pb-1 pointer-coarse:pt-3 transition-colors",
|
|
59
85
|
variants: {
|
|
@@ -163,19 +163,21 @@ import { SelectionType } from "../utilities/useIndexResourceState.js";
|
|
|
163
163
|
import { useMobile } from "../utilities/useMobile.js";
|
|
164
164
|
import { useMounted } from "../utilities/useMounted.js";
|
|
165
165
|
import useTableScrollState from "../utilities/useTableScrollState.js";
|
|
166
|
-
var TableContext = /*#__PURE__*/ createContext({});
|
|
167
|
-
var TableWrapperContext = /*#__PURE__*/ createContext({});
|
|
168
166
|
/**
|
|
169
|
-
* @
|
|
170
|
-
*
|
|
171
|
-
* @
|
|
172
|
-
*
|
|
173
|
-
* @
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
|
|
178
|
-
*
|
|
167
|
+
* @component Table
|
|
168
|
+
*
|
|
169
|
+
* @description A data table component with sortable columns, selectable rows, sticky headers, and pagination support.
|
|
170
|
+
*
|
|
171
|
+
* @usage
|
|
172
|
+
* - DO: Display structured tabular data with columns, sorting, and optional row selection.
|
|
173
|
+
* - DON'T: Use for layout purposes (use Grid).
|
|
174
|
+
*
|
|
175
|
+
* @accessibility
|
|
176
|
+
* - Renders a semantic `<table>` with proper `<thead>` and `<tbody>`; ensure column headers describe data clearly.
|
|
177
|
+
*
|
|
178
|
+
* @alternative
|
|
179
|
+
* - If you need a simple list without columns, use `ResourceList`.
|
|
180
|
+
* - If you need a layout grid, use `Grid`.
|
|
179
181
|
*
|
|
180
182
|
* @param {Object} props - Component props.
|
|
181
183
|
* @param {Array<TableHeading|string|React.ReactNode>} [props.headings=[]] - Column headings. Can be strings, React nodes, or configuration objects.
|
|
@@ -202,6 +204,17 @@ var TableWrapperContext = /*#__PURE__*/ createContext({});
|
|
|
202
204
|
* @param {Function} [props.onSelectionChange] - Callback for handling selection changes.
|
|
203
205
|
* @param {boolean} [props.loading=false] - Whether the table is loading.
|
|
204
206
|
* @returns {React.ReactElement} The rendered Table component.
|
|
207
|
+
*/ var TableContext = /*#__PURE__*/ createContext({});
|
|
208
|
+
var TableWrapperContext = /*#__PURE__*/ createContext({});
|
|
209
|
+
/**
|
|
210
|
+
* @typedef {Object} TableHeading
|
|
211
|
+
* @property {string|React.ReactNode} title - The title content of the heading.
|
|
212
|
+
* @property {boolean} [sortable=false] - Whether the column is sortable.
|
|
213
|
+
* @property {"start" | "end" | "left" | "right" | "center"} [alignment="start"] - Alignment of the heading content.
|
|
214
|
+
* @property {boolean} [hidden=false] - Whether the heading is hidden.
|
|
215
|
+
* @property {string|React.ReactNode} [tooltip] - Tooltip content for the heading.
|
|
216
|
+
* @property {string|React.ReactNode} [tooltipContent] - Alternative tooltip content for the heading.
|
|
217
|
+
* @property {Function} [onAction] - Callback function when the heading is clicked.
|
|
205
218
|
*/ function Table() {
|
|
206
219
|
var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
207
220
|
var tmp = props.headings, _headings = tmp === void 0 ? [] : tmp, _props_headingStyle = props.headingStyle, headingStyle = _props_headingStyle === void 0 ? "default" : _props_headingStyle, _props_stickyHeader = props.stickyHeader, stickyHeader = _props_stickyHeader === void 0 ? true : _props_stickyHeader, _props_rows = props.rows, rows = _props_rows === void 0 ? [] : _props_rows, tmp1 = props.footers, _footers = tmp1 === void 0 ? [] : tmp1, _props_verticalAlign = props.verticalAlign, verticalAlign = _props_verticalAlign === void 0 ? "middle" : _props_verticalAlign, tmp2 = props.fixedFirstColumns, _fixedFirstColumns = tmp2 === void 0 ? 0 : tmp2, _props_fixedLastColumns = props.fixedLastColumns, fixedLastColumns = _props_fixedLastColumns === void 0 ? 0 : _props_fixedLastColumns, initialSortColumnIndex = props.initialSortColumnIndex, _props_defaultSortDirection = props.defaultSortDirection, defaultSortDirection = _props_defaultSortDirection === void 0 ? "ascending" : _props_defaultSortDirection, onSort = props.onSort, _props_increasedTableDensity = props.increasedTableDensity, increasedTableDensity = _props_increasedTableDensity === void 0 ? false : _props_increasedTableDensity, firstColumnMinWidth = props.firstColumnMinWidth, _props_bordered = props.bordered, bordered = _props_bordered === void 0 ? false : _props_bordered, _props_topBorder = props.topBorder, topBorder = _props_topBorder === void 0 ? true : _props_topBorder, _props_bulkActions = props.bulkActions, bulkActions = _props_bulkActions === void 0 ? [] : _props_bulkActions, _props_promotedBulkActions = props.promotedBulkActions, promotedBulkActions = _props_promotedBulkActions === void 0 ? [] : _props_promotedBulkActions, emptyState = props.emptyState, _children = props.children, paginatedSelectAllActionText = props.paginatedSelectAllActionText, _props_resourceName = props.resourceName, resourceName = _props_resourceName === void 0 ? {
|
|
@@ -462,13 +475,23 @@ var TableWrapperContext = /*#__PURE__*/ createContext({});
|
|
|
462
475
|
if (isSortable) handleSort(sortIndex);
|
|
463
476
|
else if (heading.onAction) heading.onAction();
|
|
464
477
|
};
|
|
465
|
-
var labelContent = /*#__PURE__*/ _jsxs("div", {
|
|
478
|
+
var labelContent = /*#__PURE__*/ _jsxs("div", _object_spread_props(_object_spread({
|
|
466
479
|
className: styles.headingLabelStyles({
|
|
467
480
|
alignment: alignment,
|
|
468
481
|
sortable: !!isSortable,
|
|
469
482
|
interactive: !!isInteractive
|
|
470
483
|
}),
|
|
471
|
-
onClick: isInteractive ? handleClick : undefined
|
|
484
|
+
onClick: isInteractive ? handleClick : undefined
|
|
485
|
+
}, isInteractive ? {
|
|
486
|
+
role: "button",
|
|
487
|
+
tabIndex: 0,
|
|
488
|
+
onKeyDown: function(e) {
|
|
489
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
490
|
+
e.preventDefault();
|
|
491
|
+
handleClick();
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
} : {}), {
|
|
472
495
|
children: [
|
|
473
496
|
[
|
|
474
497
|
"right",
|
|
@@ -483,7 +506,7 @@ var TableWrapperContext = /*#__PURE__*/ createContext({});
|
|
|
483
506
|
"center"
|
|
484
507
|
].includes(alignment) && sortContent
|
|
485
508
|
]
|
|
486
|
-
});
|
|
509
|
+
}));
|
|
487
510
|
var hasTooltip = (heading.tooltip || heading.tooltipContent) && !isCovered;
|
|
488
511
|
return /*#__PURE__*/ _jsx(HeadingCell, {
|
|
489
512
|
className: styles.headingStyles({
|
|
@@ -678,6 +701,14 @@ var TableWrapperContext = /*#__PURE__*/ createContext({});
|
|
|
678
701
|
return handleSelectionChange(isAllSelected ? SelectionType.Page : SelectionType.All, true);
|
|
679
702
|
},
|
|
680
703
|
className: "rounded-md block text-sm font-medium cursor-pointer px-2 py-1 hover",
|
|
704
|
+
role: "button",
|
|
705
|
+
tabIndex: 0,
|
|
706
|
+
onKeyDown: function(e) {
|
|
707
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
708
|
+
e.preventDefault();
|
|
709
|
+
handleSelectionChange(isAllSelected ? SelectionType.Page : SelectionType.All, true);
|
|
710
|
+
}
|
|
711
|
+
},
|
|
681
712
|
children: isAllSelected ? "Undo" : paginatedSelectAllActionText || "Select all"
|
|
682
713
|
})
|
|
683
714
|
]
|
|
@@ -966,7 +997,14 @@ Table.displayName = "Table";
|
|
|
966
997
|
Table.Row = Row;
|
|
967
998
|
Table.Row.displayName = "Table.Row";
|
|
968
999
|
/**
|
|
969
|
-
*
|
|
1000
|
+
* @component Table.Cell
|
|
1001
|
+
*
|
|
1002
|
+
* @usage
|
|
1003
|
+
* - DO: Use for custom cell content within table rows.
|
|
1004
|
+
*
|
|
1005
|
+
* @accessibility
|
|
1006
|
+
* - Renders as `<td>`.
|
|
1007
|
+
*
|
|
970
1008
|
* @param {Object} props - Cell properties.
|
|
971
1009
|
* @param {string} [props.alignment="start"] - Text alignment.
|
|
972
1010
|
* @param {boolean} [props.selectionCell=false] - Whether this is a selection cell.
|
|
@@ -1024,8 +1062,10 @@ Table.Row.displayName = "Table.Row";
|
|
|
1024
1062
|
Table.Cell = Cell;
|
|
1025
1063
|
Table.Cell.displayName = "Table.Cell";
|
|
1026
1064
|
/**
|
|
1027
|
-
*
|
|
1028
|
-
*
|
|
1065
|
+
* @component Table.Footer
|
|
1066
|
+
*
|
|
1067
|
+
* @usage
|
|
1068
|
+
* - DO: Use for summary or pagination content below the table.
|
|
1029
1069
|
*
|
|
1030
1070
|
* @param {Object} props - The component props.
|
|
1031
1071
|
* @param {boolean} props.hasNextPage - Whether there is a next page.
|
|
@@ -107,30 +107,27 @@ import Popover from "./Popover.js";
|
|
|
107
107
|
import { CaretDownMinor, CaretUpMinor } from "@shopify/polaris-icons";
|
|
108
108
|
import * as PolarisIcons from "@shopify/polaris-icons";
|
|
109
109
|
import Badge from "./Badge.js";
|
|
110
|
-
var styles = tv({
|
|
111
|
-
base: "Litho-Tabs flex overflow-x-hidden whitespace-nowrap",
|
|
112
|
-
variants: {
|
|
113
|
-
borderBottom: {
|
|
114
|
-
true: "border-b",
|
|
115
|
-
false: ""
|
|
116
|
-
},
|
|
117
|
-
padded: {
|
|
118
|
-
true: "p-2",
|
|
119
|
-
false: ""
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
var containerStyles = tv({
|
|
124
|
-
base: "Litho-Tabs__TabContainer flex flex-1 overflow-x-hidden whitespace-nowrap space-x-1"
|
|
125
|
-
});
|
|
126
110
|
/**
|
|
127
|
-
*
|
|
111
|
+
* @component Tabs
|
|
112
|
+
*
|
|
113
|
+
* @description An in-page tab switcher that renders a horizontal tab bar for toggling between content panels without URL changes.
|
|
114
|
+
*
|
|
115
|
+
* @usage
|
|
116
|
+
* - DO: Switch between related content views within the same page.
|
|
117
|
+
* - DON'T: Use for URL-based routing (use TabNavigation).
|
|
118
|
+
*
|
|
119
|
+
* @accessibility
|
|
120
|
+
* - Implements tablist/tab/tabpanel ARIA roles; supports keyboard arrow navigation between tabs.
|
|
121
|
+
*
|
|
122
|
+
* @alternative
|
|
123
|
+
* - If you need URL-based tab navigation, use `TabNavigation`. If you need collapsible sections, use `Collapsible`.
|
|
128
124
|
*
|
|
129
125
|
* @param {Object} props - Component props.
|
|
130
126
|
* @param {Object[]} props.tabs - List of tabs to display.
|
|
131
127
|
* @param {string} props.tabs[].id - Unique identifier for the tab.
|
|
132
128
|
* @param {string} props.tabs[].content - Content or label to display for the tab.
|
|
133
129
|
* @param {string} [props.tabs[].icon] - Optional icon to display for the tab.
|
|
130
|
+
* @param {boolean} [props.tabs[].showIconOnMobile=true] - When false, the tab icon is hidden on mobile and only shown at md (≥800px) breakpoint.
|
|
134
131
|
* @param {boolean} [props.tabs[].disclosure=false] - Whether the tab is part of a "More" disclosure group.
|
|
135
132
|
* @param {number} props.selected - Index of the currently selected tab.
|
|
136
133
|
* @param {Function} props.onSelect - Callback fired when a tab is selected, receives the tab's index.
|
|
@@ -144,7 +141,23 @@ var containerStyles = tv({
|
|
|
144
141
|
* @param {number} [props.badgeCount] - The number of badges to display for the tab.
|
|
145
142
|
* @param {string} [props.badgeStatus="default"] - The status of the badge.
|
|
146
143
|
* @returns {JSX.Element} The Tabs component.
|
|
147
|
-
*/
|
|
144
|
+
*/ var styles = tv({
|
|
145
|
+
base: "Litho-Tabs flex overflow-x-hidden whitespace-nowrap",
|
|
146
|
+
variants: {
|
|
147
|
+
borderBottom: {
|
|
148
|
+
true: "border-b",
|
|
149
|
+
false: ""
|
|
150
|
+
},
|
|
151
|
+
padded: {
|
|
152
|
+
true: "p-2",
|
|
153
|
+
false: ""
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
var containerStyles = tv({
|
|
158
|
+
base: "Litho-Tabs__TabContainer flex flex-1 overflow-x-hidden whitespace-nowrap space-x-1"
|
|
159
|
+
});
|
|
160
|
+
function Tabs() {
|
|
148
161
|
var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
149
162
|
var tmp = props.tabs, _tabs = tmp === void 0 ? [] : tmp, _selectedIndex = props.selected, onSelect = props.onSelect, fullWidth = props.fullWidth, _props_disclosureText = props.disclosureText, disclosureText = _props_disclosureText === void 0 ? "More" : _props_disclosureText, _props_disclosure = props.disclosure, disclosure = _props_disclosure === void 0 ? false : _props_disclosure, _props_activeDisclosure = props.activeDisclosure, activeDisclosure = _props_activeDisclosure === void 0 ? false : _props_activeDisclosure, _props_padded = props.padded, padded = _props_padded === void 0 ? true : _props_padded, _props_borderBottom = props.borderBottom, borderBottom = _props_borderBottom === void 0 ? true : _props_borderBottom, _props_simpleTabs = props.simpleTabs, simpleTabs = _props_simpleTabs === void 0 ? false : _props_simpleTabs;
|
|
150
163
|
var selectedIndex = parseInt(_selectedIndex);
|
|
@@ -253,6 +266,7 @@ var containerStyles = tv({
|
|
|
253
266
|
},
|
|
254
267
|
disclosure: disclosure && tab.disclosure,
|
|
255
268
|
icon: tab.icon,
|
|
269
|
+
showIconOnMobile: tab.showIconOnMobile,
|
|
256
270
|
fullWidth: fullWidth,
|
|
257
271
|
hidden: tab.hidden,
|
|
258
272
|
simple: simpleTabs,
|
|
@@ -359,6 +373,7 @@ var tabStyles = tv({
|
|
|
359
373
|
* @param {boolean} [props.selected] - Whether this tab is currently selected.
|
|
360
374
|
* @param {number} [props.index] - The index position of this tab in the tabs array.
|
|
361
375
|
* @param {string|React.ReactNode} [props.icon] - Icon to display. Can be a Polaris icon name string or a custom React node.
|
|
376
|
+
* @param {boolean} [props.showIconOnMobile=true] - When false, the tab icon is hidden on mobile and only shown at md (≥800px) breakpoint.
|
|
362
377
|
* @param {Function} [props.onSelect] - Callback fired when the tab is selected, receives the tab's index.
|
|
363
378
|
* @param {Function} [props.onClick] - Custom click handler that overrides the default onSelect behavior.
|
|
364
379
|
* @param {React.ReactNode} [props.children] - The content/label to display inside the tab.
|
|
@@ -373,7 +388,7 @@ var tabStyles = tv({
|
|
|
373
388
|
* @returns {JSX.Element} The Tab component.
|
|
374
389
|
*/ function Tab() {
|
|
375
390
|
var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
376
|
-
var id = props.id, active = props.active, selected = props.selected, index = props.index, icon = props.icon, onSelect = props.onSelect, onClick = props.onClick, children = props.children, fullWidth = props.fullWidth, hidden = props.hidden, simple = props.simple, _props_disclosure = props.disclosure, disclosure = _props_disclosure === void 0 ? false : _props_disclosure, _props_alwaysShowDisclosureIcon = props.alwaysShowDisclosureIcon, alwaysShowDisclosureIcon = _props_alwaysShowDisclosureIcon === void 0 ? false : _props_alwaysShowDisclosureIcon, _props_disabled = props.disabled, disabled = _props_disabled === void 0 ? false : _props_disabled, _props_badgeStatus = props.badgeStatus, badgeStatus = _props_badgeStatus === void 0 ? "default" : _props_badgeStatus, badgeCount = props.badgeCount;
|
|
391
|
+
var id = props.id, active = props.active, selected = props.selected, index = props.index, icon = props.icon, _props_showIconOnMobile = props.showIconOnMobile, showIconOnMobile = _props_showIconOnMobile === void 0 ? true : _props_showIconOnMobile, onSelect = props.onSelect, onClick = props.onClick, children = props.children, fullWidth = props.fullWidth, hidden = props.hidden, simple = props.simple, _props_disclosure = props.disclosure, disclosure = _props_disclosure === void 0 ? false : _props_disclosure, _props_alwaysShowDisclosureIcon = props.alwaysShowDisclosureIcon, alwaysShowDisclosureIcon = _props_alwaysShowDisclosureIcon === void 0 ? false : _props_alwaysShowDisclosureIcon, _props_disabled = props.disabled, disabled = _props_disabled === void 0 ? false : _props_disabled, _props_badgeStatus = props.badgeStatus, badgeStatus = _props_badgeStatus === void 0 ? "default" : _props_badgeStatus, badgeCount = props.badgeCount;
|
|
377
392
|
var polarisIcon = typeof icon === "string" ? PolarisIcons[icon] : PolarisIcons[icon === null || icon === void 0 ? void 0 : icon.displayName];
|
|
378
393
|
var showDisclosure = disclosure && (selected || alwaysShowDisclosureIcon);
|
|
379
394
|
var tabClasses = tabStyles({
|
|
@@ -390,18 +405,32 @@ var tabStyles = tv({
|
|
|
390
405
|
onClick: onClick ? onClick : onSelect ? function() {
|
|
391
406
|
return onSelect(index);
|
|
392
407
|
} : undefined,
|
|
408
|
+
role: "tab",
|
|
409
|
+
tabIndex: disabled ? -1 : 0,
|
|
410
|
+
"aria-selected": selected,
|
|
411
|
+
onKeyDown: function(e) {
|
|
412
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
413
|
+
e.preventDefault();
|
|
414
|
+
if (onClick) onClick();
|
|
415
|
+
else if (onSelect) onSelect(index);
|
|
416
|
+
}
|
|
417
|
+
},
|
|
393
418
|
children: [
|
|
394
419
|
icon && !!polarisIcon && /*#__PURE__*/ _jsx("span", {
|
|
395
|
-
className: "Litho-Tabs__Tab-Icon mr-1",
|
|
420
|
+
className: "Litho-Tabs__Tab-Icon mr-1 ".concat(showIconOnMobile ? "" : "hidden @md:inline-flex"),
|
|
396
421
|
children: /*#__PURE__*/ _jsx(Icon, {
|
|
397
422
|
source: polarisIcon,
|
|
398
423
|
color: selected && simple ? "default" : selected ? "primary" : "subdued",
|
|
399
424
|
size: simple ? "lg" : undefined
|
|
400
425
|
})
|
|
401
426
|
}),
|
|
402
|
-
icon &&
|
|
403
|
-
className: "Litho-Tabs__Tab-Icon ".concat(simple ? "mr-0" : "mr-1"),
|
|
404
|
-
children:
|
|
427
|
+
icon && !polarisIcon && /*#__PURE__*/ _jsx("span", {
|
|
428
|
+
className: "Litho-Tabs__Tab-Icon ".concat(simple ? "mr-0" : "mr-1", " ").concat(showIconOnMobile ? "" : "hidden @md:inline-flex"),
|
|
429
|
+
children: /*#__PURE__*/ _jsx(Icon, {
|
|
430
|
+
source: icon,
|
|
431
|
+
color: selected && simple ? "default" : selected ? "primary" : "subdued",
|
|
432
|
+
size: simple ? "lg" : undefined
|
|
433
|
+
})
|
|
405
434
|
}),
|
|
406
435
|
/*#__PURE__*/ _jsx("span", {
|
|
407
436
|
className: "Litho-Tabs__Tab-Content block min-h-5 leading-5",
|