@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
|
@@ -10,7 +10,29 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _jsxruntime = require("react/jsx-runtime");
|
|
12
12
|
var _tailwindvariants = require("tailwind-variants");
|
|
13
|
-
|
|
13
|
+
/**
|
|
14
|
+
* @component Spinner
|
|
15
|
+
*
|
|
16
|
+
* @description An animated loading indicator for inline use within buttons, cards, or sections during asynchronous operations.
|
|
17
|
+
*
|
|
18
|
+
* @usage
|
|
19
|
+
* - DO: Use inline within buttons, cards, or sections to indicate localized loading.
|
|
20
|
+
* - DON'T: Use as a full-page loading indicator; use `Loading` for page-level progress bars.
|
|
21
|
+
*
|
|
22
|
+
* @accessibility
|
|
23
|
+
* - Renders with `role="status"` and an `aria-label`; always provide a descriptive `accessibilityLabel`.
|
|
24
|
+
* - Avoid relying on the animation alone; the `role="status"` ensures screen readers announce loading state.
|
|
25
|
+
*
|
|
26
|
+
* @alternative
|
|
27
|
+
* - If you need a page-level progress bar, use `Loading` instead.
|
|
28
|
+
* - If you need placeholder content while data loads, use `SkeletonText` instead.
|
|
29
|
+
*
|
|
30
|
+
* @param {Object} props - The props object.
|
|
31
|
+
* @param {('small'|'large')} [props.size='large'] - The size of the spinner, either "small" or "large".
|
|
32
|
+
* @param {('default'|'subdued')} [props.color='default'] - The color variant of the spinner.
|
|
33
|
+
* @param {string} [props.accessibilityLabel='Loading...'] - The accessible label for screen readers, describing the spinner's purpose.
|
|
34
|
+
* @returns {JSX.Element} The rendered Spinner component.
|
|
35
|
+
*/ var styles = (0, _tailwindvariants.tv)({
|
|
14
36
|
base: "Litho-Spinner",
|
|
15
37
|
variants: {
|
|
16
38
|
size: {
|
|
@@ -29,17 +51,7 @@ var svgStyles = (0, _tailwindvariants.tv)({
|
|
|
29
51
|
}
|
|
30
52
|
}
|
|
31
53
|
});
|
|
32
|
-
|
|
33
|
-
* Spinner Component
|
|
34
|
-
*
|
|
35
|
-
* This component renders a loading spinner with customizable size, color, and accessibility label.
|
|
36
|
-
*
|
|
37
|
-
* @param {Object} props - The props object.
|
|
38
|
-
* @param {('small'|'large')} [props.size='large'] - The size of the spinner, either "small" or "large".
|
|
39
|
-
* @param {('default'|'subdued')} [props.color='default'] - The color variant of the spinner.
|
|
40
|
-
* @param {string} [props.accessibilityLabel='Loading...'] - The accessible label for screen readers, describing the spinner's purpose.
|
|
41
|
-
* @returns {JSX.Element} The rendered Spinner component.
|
|
42
|
-
*/ function Spinner() {
|
|
54
|
+
function Spinner() {
|
|
43
55
|
var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
44
56
|
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;
|
|
45
57
|
var classes = styles({
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
"use strict";
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
3
|
value: true
|
|
@@ -90,7 +89,62 @@ function _object_without_properties_loose(source, excluded) {
|
|
|
90
89
|
}
|
|
91
90
|
return target;
|
|
92
91
|
}
|
|
93
|
-
|
|
92
|
+
/**
|
|
93
|
+
* @component Stack
|
|
94
|
+
*
|
|
95
|
+
* @description A flex layout component that arranges children in a row or column with configurable gap, alignment, and wrapping.
|
|
96
|
+
*
|
|
97
|
+
* @usage
|
|
98
|
+
* - DO: Arrange child elements with consistent spacing using the `gap` prop.
|
|
99
|
+
* - DON'T: Use for grid-based layouts (use `Grid` instead).
|
|
100
|
+
*
|
|
101
|
+
* @accessibility
|
|
102
|
+
* - Stack is a layout utility; ensure child content maintains logical reading order.
|
|
103
|
+
*
|
|
104
|
+
* @alternative
|
|
105
|
+
* - If you need explicit horizontal layout, use `Stack` with `horizontal` prop.
|
|
106
|
+
* - If you need responsive layout that switches from vertical to horizontal at a breakpoint, use `Stack` with `horizontal="md"` (or `"sm"`, `"lg"`, etc.).
|
|
107
|
+
* - If you need 2D grid layout, use `Grid`.
|
|
108
|
+
*
|
|
109
|
+
* @param {Object} [props={}] - Component props.
|
|
110
|
+
* @param {string} [props.as='div'] - The HTML element to render. Defaults to `div`.
|
|
111
|
+
* @param {React.ReactNode} [props.children] - Child elements to render inside the stack.
|
|
112
|
+
* @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).
|
|
113
|
+
* @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'.
|
|
114
|
+
* @param {string} [props.id] - Optional ID for the component.
|
|
115
|
+
* @param {string} [props.className] - Additional custom class names to apply to the component.
|
|
116
|
+
* @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.
|
|
117
|
+
* @param {boolean} [props.wrap=false] - Whether children should wrap to the next line if necessary. Defaults to false.
|
|
118
|
+
* @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.
|
|
119
|
+
* @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.
|
|
120
|
+
* @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).
|
|
121
|
+
* @param {boolean} [props.fullWidth=false] - When true, applies width: 100% (w-full). Defaults to false.
|
|
122
|
+
* @param {Object} [restProps] - Additional props passed to the root element.
|
|
123
|
+
*
|
|
124
|
+
* @returns {JSX.Element} The rendered Stack component.
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* // Vertical stack (default)
|
|
128
|
+
* <Stack gap="sm" align="center">
|
|
129
|
+
* <div>Item 1</div>
|
|
130
|
+
* <div>Item 2</div>
|
|
131
|
+
* </Stack>
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* // Horizontal stack
|
|
135
|
+
* <Stack horizontal>
|
|
136
|
+
* <div>Item 1</div>
|
|
137
|
+
* <div>Item 2</div>
|
|
138
|
+
* </Stack>
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* // Responsive: vertical on mobile, horizontal at md breakpoint
|
|
142
|
+
* <Stack horizontal="md">
|
|
143
|
+
* <div>Column 1</div>
|
|
144
|
+
* <div>Column 2</div>
|
|
145
|
+
* <div>Column 3</div>
|
|
146
|
+
* </Stack>
|
|
147
|
+
*/ var styles = (0, _tailwindvariants.tv)({
|
|
94
148
|
base: "Litho-Stack flex",
|
|
95
149
|
variants: {
|
|
96
150
|
direction: {
|
|
@@ -109,6 +163,7 @@ var styles = (0, _tailwindvariants.tv)({
|
|
|
109
163
|
"px": "gap-px",
|
|
110
164
|
"0.5": "gap-0.5",
|
|
111
165
|
"1": "gap-1",
|
|
166
|
+
"1.5": "gap-1.5",
|
|
112
167
|
"2": "gap-2",
|
|
113
168
|
"3": "gap-3",
|
|
114
169
|
"4": "gap-4",
|
|
@@ -117,75 +172,66 @@ var styles = (0, _tailwindvariants.tv)({
|
|
|
117
172
|
"8": "gap-8",
|
|
118
173
|
"10": "gap-10"
|
|
119
174
|
},
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
"
|
|
125
|
-
"
|
|
126
|
-
"
|
|
127
|
-
spaceBetween: "justify-between"
|
|
175
|
+
flex: {
|
|
176
|
+
"1": "flex-1",
|
|
177
|
+
"2": "flex-2",
|
|
178
|
+
"3": "flex-3",
|
|
179
|
+
"4": "flex-4",
|
|
180
|
+
"5": "flex-5",
|
|
181
|
+
"6": "flex-6"
|
|
128
182
|
},
|
|
129
|
-
|
|
183
|
+
align: {
|
|
130
184
|
start: "items-start",
|
|
131
185
|
center: "items-center",
|
|
132
186
|
end: "items-end",
|
|
133
|
-
stretch: "items-stretch"
|
|
187
|
+
stretch: "items-stretch",
|
|
188
|
+
baseline: "items-baseline"
|
|
134
189
|
},
|
|
135
|
-
|
|
136
|
-
start: "
|
|
137
|
-
center: "
|
|
138
|
-
end: "
|
|
139
|
-
|
|
190
|
+
justify: {
|
|
191
|
+
start: "justify-start",
|
|
192
|
+
center: "justify-center",
|
|
193
|
+
end: "justify-end",
|
|
194
|
+
between: "justify-between",
|
|
195
|
+
evenly: "justify-evenly",
|
|
196
|
+
stretch: "justify-stretch",
|
|
197
|
+
around: "justify-around"
|
|
140
198
|
},
|
|
141
199
|
wrap: {
|
|
142
200
|
true: "flex-wrap",
|
|
143
201
|
false: "flex-nowrap"
|
|
202
|
+
},
|
|
203
|
+
fullWidth: {
|
|
204
|
+
true: "w-full",
|
|
205
|
+
false: ""
|
|
144
206
|
}
|
|
145
207
|
},
|
|
146
208
|
defaultVariants: {
|
|
147
209
|
direction: "vertical",
|
|
148
210
|
gap: "md",
|
|
149
|
-
align: "
|
|
211
|
+
align: "stretch",
|
|
212
|
+
justify: "start",
|
|
213
|
+
fullWidth: false
|
|
150
214
|
}
|
|
151
215
|
});
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
* @param {Object} [restProps] - Additional props passed to the root element.
|
|
170
|
-
*
|
|
171
|
-
* @returns {JSX.Element} The rendered Stack component.
|
|
172
|
-
*
|
|
173
|
-
* @example
|
|
174
|
-
* // Vertical stack (default)
|
|
175
|
-
* <Stack gap="sm" inlineAlign="center">
|
|
176
|
-
* <div>Item 1</div>
|
|
177
|
-
* <div>Item 2</div>
|
|
178
|
-
* </Stack>
|
|
179
|
-
*
|
|
180
|
-
* @example
|
|
181
|
-
* // Horizontal stack
|
|
182
|
-
* <Stack horizontal gap="md" blockAlign="center" wrap={true}>
|
|
183
|
-
* <div>Item 1</div>
|
|
184
|
-
* <div>Item 2</div>
|
|
185
|
-
* </Stack>
|
|
186
|
-
*/ function Stack() {
|
|
216
|
+
// Static maps for Tailwind JIT scanability — do not construct dynamically
|
|
217
|
+
var responsiveDirectionClasses = {
|
|
218
|
+
xs: "flex-col xs:flex-row",
|
|
219
|
+
sm: "flex-col sm:flex-row",
|
|
220
|
+
md: "flex-col md:flex-row",
|
|
221
|
+
lg: "flex-col lg:flex-row",
|
|
222
|
+
xl: "flex-col xl:flex-row"
|
|
223
|
+
};
|
|
224
|
+
var fillModifierClasses = {
|
|
225
|
+
true: "Litho-Stack--fill",
|
|
226
|
+
xs: "Litho-Stack--fill-xs",
|
|
227
|
+
sm: "Litho-Stack--fill-sm",
|
|
228
|
+
md: "Litho-Stack--fill-md",
|
|
229
|
+
lg: "Litho-Stack--fill-lg",
|
|
230
|
+
xl: "Litho-Stack--fill-xl"
|
|
231
|
+
};
|
|
232
|
+
function Stack() {
|
|
187
233
|
var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
188
|
-
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,
|
|
234
|
+
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, [
|
|
189
235
|
"as",
|
|
190
236
|
"children",
|
|
191
237
|
"horizontal",
|
|
@@ -193,29 +239,43 @@ var styles = (0, _tailwindvariants.tv)({
|
|
|
193
239
|
"id",
|
|
194
240
|
"className",
|
|
195
241
|
"align",
|
|
196
|
-
"
|
|
197
|
-
"
|
|
198
|
-
"
|
|
242
|
+
"justify",
|
|
243
|
+
"wrap",
|
|
244
|
+
"flex",
|
|
245
|
+
"fill",
|
|
246
|
+
"fullWidth"
|
|
199
247
|
]);
|
|
200
|
-
var
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
248
|
+
var isResponsive = typeof horizontal === "string";
|
|
249
|
+
var isHorizontal = horizontal === true;
|
|
250
|
+
var effectivelyHorizontal = isHorizontal || isResponsive;
|
|
251
|
+
// For boolean horizontal, use tv direction variant
|
|
252
|
+
// For responsive, tv gets "vertical" (flex-col) and responsive classes override at breakpoint
|
|
253
|
+
var direction = isHorizontal ? "horizontal" : "vertical";
|
|
254
|
+
// Horizontal stacks default to center (items-center), vertical to stretch (items-stretch)
|
|
255
|
+
var effectiveAlign = align !== undefined ? align : effectivelyHorizontal ? "center" : "stretch";
|
|
256
|
+
var classes = styles({
|
|
205
257
|
direction: direction,
|
|
206
258
|
gap: gap,
|
|
207
|
-
align:
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
|
|
259
|
+
align: effectiveAlign,
|
|
260
|
+
justify: justify,
|
|
261
|
+
wrap: wrap,
|
|
262
|
+
flex: flex,
|
|
263
|
+
fullWidth: fullWidth
|
|
264
|
+
});
|
|
265
|
+
// Responsive direction classes (e.g. "flex-col md:flex-row")
|
|
266
|
+
var responsiveClasses = isResponsive ? responsiveDirectionClasses[horizontal] : "";
|
|
267
|
+
// Fill modifier class for CSS child targeting
|
|
268
|
+
var fillClass = fill && effectivelyHorizontal ? fillModifierClasses[horizontal] || fillModifierClasses["true"] : "";
|
|
215
269
|
var Element = as;
|
|
270
|
+
var allClasses = [
|
|
271
|
+
classes,
|
|
272
|
+
responsiveClasses,
|
|
273
|
+
fillClass,
|
|
274
|
+
className
|
|
275
|
+
].filter(Boolean).join(" ");
|
|
216
276
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)(Element, _object_spread_props(_object_spread({
|
|
217
277
|
id: id,
|
|
218
|
-
className:
|
|
278
|
+
className: allClasses
|
|
219
279
|
}, restProps), {
|
|
220
280
|
children: children
|
|
221
281
|
}));
|
|
@@ -68,7 +68,33 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
68
68
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
69
69
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
70
70
|
}
|
|
71
|
-
|
|
71
|
+
/**
|
|
72
|
+
* @component TabNavigation
|
|
73
|
+
*
|
|
74
|
+
* @description A URL-based tab navigation component that renders tabs as links, supporting closeable tabs and route-driven active states.
|
|
75
|
+
*
|
|
76
|
+
* @usage
|
|
77
|
+
* - DO: Use for navigation tabs that change the URL/route.
|
|
78
|
+
* - DON'T: Use for in-page content switching without URL changes (use Tabs).
|
|
79
|
+
*
|
|
80
|
+
* @accessibility
|
|
81
|
+
* - Renders as navigation links; ensure each tab link has descriptive text.
|
|
82
|
+
*
|
|
83
|
+
* @alternative
|
|
84
|
+
* - If you need in-page content tabs without URL routing, use `Tabs`. If you need a sidebar nav, use `Navigation`.
|
|
85
|
+
*
|
|
86
|
+
* @param {Object} props - Component properties.
|
|
87
|
+
* @param {Array<Object>} [props.tabs=[]] - Array of tab objects to display.
|
|
88
|
+
* @param {string} props.tabs[].id - Unique identifier for the tab.
|
|
89
|
+
* @param {string} props.tabs[].title - Display title for the tab.
|
|
90
|
+
* @param {boolean} [props.tabs[].loading] - Whether the tab is in a loading state.
|
|
91
|
+
* @param {Object} [props.tabs[].readStatus] - Read status indicator for the tab.
|
|
92
|
+
* @param {string} [props.activeTabId] - The ID of the currently active tab.
|
|
93
|
+
* @param {Function} [props.onTabClick] - Callback fired when a tab is clicked, receives the tab ID.
|
|
94
|
+
* @param {Function} [props.onTabClose] - Callback fired when a tab's close button is clicked, receives the tab ID.
|
|
95
|
+
* @param {string} [props.className=""] - Additional CSS class names for the container.
|
|
96
|
+
* @returns {JSX.Element} The rendered TabNavigation component.
|
|
97
|
+
*/ var AVG_CHAR_WIDTH = 5.5;
|
|
72
98
|
var tabStyles = (0, _tailwindvariants.tv)({
|
|
73
99
|
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",
|
|
74
100
|
variants: {
|
|
@@ -218,19 +218,21 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
218
218
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
219
219
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
220
220
|
}
|
|
221
|
-
var TableContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
222
|
-
var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
223
221
|
/**
|
|
224
|
-
* @
|
|
225
|
-
*
|
|
226
|
-
* @
|
|
227
|
-
*
|
|
228
|
-
* @
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
|
|
233
|
-
*
|
|
222
|
+
* @component Table
|
|
223
|
+
*
|
|
224
|
+
* @description A data table component with sortable columns, selectable rows, sticky headers, and pagination support.
|
|
225
|
+
*
|
|
226
|
+
* @usage
|
|
227
|
+
* - DO: Display structured tabular data with columns, sorting, and optional row selection.
|
|
228
|
+
* - DON'T: Use for layout purposes (use Grid).
|
|
229
|
+
*
|
|
230
|
+
* @accessibility
|
|
231
|
+
* - Renders a semantic `<table>` with proper `<thead>` and `<tbody>`; ensure column headers describe data clearly.
|
|
232
|
+
*
|
|
233
|
+
* @alternative
|
|
234
|
+
* - If you need a simple list without columns, use `ResourceList`.
|
|
235
|
+
* - If you need a layout grid, use `Grid`.
|
|
234
236
|
*
|
|
235
237
|
* @param {Object} props - Component props.
|
|
236
238
|
* @param {Array<TableHeading|string|React.ReactNode>} [props.headings=[]] - Column headings. Can be strings, React nodes, or configuration objects.
|
|
@@ -257,6 +259,17 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
|
257
259
|
* @param {Function} [props.onSelectionChange] - Callback for handling selection changes.
|
|
258
260
|
* @param {boolean} [props.loading=false] - Whether the table is loading.
|
|
259
261
|
* @returns {React.ReactElement} The rendered Table component.
|
|
262
|
+
*/ var TableContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
263
|
+
var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
264
|
+
/**
|
|
265
|
+
* @typedef {Object} TableHeading
|
|
266
|
+
* @property {string|React.ReactNode} title - The title content of the heading.
|
|
267
|
+
* @property {boolean} [sortable=false] - Whether the column is sortable.
|
|
268
|
+
* @property {"start" | "end" | "left" | "right" | "center"} [alignment="start"] - Alignment of the heading content.
|
|
269
|
+
* @property {boolean} [hidden=false] - Whether the heading is hidden.
|
|
270
|
+
* @property {string|React.ReactNode} [tooltip] - Tooltip content for the heading.
|
|
271
|
+
* @property {string|React.ReactNode} [tooltipContent] - Alternative tooltip content for the heading.
|
|
272
|
+
* @property {Function} [onAction] - Callback function when the heading is clicked.
|
|
260
273
|
*/ function Table() {
|
|
261
274
|
var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
262
275
|
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 ? {
|
|
@@ -517,13 +530,23 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
|
517
530
|
if (isSortable) handleSort(sortIndex);
|
|
518
531
|
else if (heading.onAction) heading.onAction();
|
|
519
532
|
};
|
|
520
|
-
var labelContent = /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
533
|
+
var labelContent = /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", _object_spread_props(_object_spread({
|
|
521
534
|
className: _Table.styles.headingLabelStyles({
|
|
522
535
|
alignment: alignment,
|
|
523
536
|
sortable: !!isSortable,
|
|
524
537
|
interactive: !!isInteractive
|
|
525
538
|
}),
|
|
526
|
-
onClick: isInteractive ? handleClick : undefined
|
|
539
|
+
onClick: isInteractive ? handleClick : undefined
|
|
540
|
+
}, isInteractive ? {
|
|
541
|
+
role: "button",
|
|
542
|
+
tabIndex: 0,
|
|
543
|
+
onKeyDown: function(e) {
|
|
544
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
545
|
+
e.preventDefault();
|
|
546
|
+
handleClick();
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
} : {}), {
|
|
527
550
|
children: [
|
|
528
551
|
[
|
|
529
552
|
"right",
|
|
@@ -538,7 +561,7 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
|
538
561
|
"center"
|
|
539
562
|
].includes(alignment) && sortContent
|
|
540
563
|
]
|
|
541
|
-
});
|
|
564
|
+
}));
|
|
542
565
|
var hasTooltip = (heading.tooltip || heading.tooltipContent) && !isCovered;
|
|
543
566
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)(HeadingCell, {
|
|
544
567
|
className: _Table.styles.headingStyles({
|
|
@@ -733,6 +756,14 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
|
733
756
|
return handleSelectionChange(isAllSelected ? _useIndexResourceState.SelectionType.Page : _useIndexResourceState.SelectionType.All, true);
|
|
734
757
|
},
|
|
735
758
|
className: "rounded-md block text-sm font-medium cursor-pointer px-2 py-1 hover",
|
|
759
|
+
role: "button",
|
|
760
|
+
tabIndex: 0,
|
|
761
|
+
onKeyDown: function(e) {
|
|
762
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
763
|
+
e.preventDefault();
|
|
764
|
+
handleSelectionChange(isAllSelected ? _useIndexResourceState.SelectionType.Page : _useIndexResourceState.SelectionType.All, true);
|
|
765
|
+
}
|
|
766
|
+
},
|
|
736
767
|
children: isAllSelected ? "Undo" : paginatedSelectAllActionText || "Select all"
|
|
737
768
|
})
|
|
738
769
|
]
|
|
@@ -1021,7 +1052,14 @@ Table.displayName = "Table";
|
|
|
1021
1052
|
Table.Row = Row;
|
|
1022
1053
|
Table.Row.displayName = "Table.Row";
|
|
1023
1054
|
/**
|
|
1024
|
-
*
|
|
1055
|
+
* @component Table.Cell
|
|
1056
|
+
*
|
|
1057
|
+
* @usage
|
|
1058
|
+
* - DO: Use for custom cell content within table rows.
|
|
1059
|
+
*
|
|
1060
|
+
* @accessibility
|
|
1061
|
+
* - Renders as `<td>`.
|
|
1062
|
+
*
|
|
1025
1063
|
* @param {Object} props - Cell properties.
|
|
1026
1064
|
* @param {string} [props.alignment="start"] - Text alignment.
|
|
1027
1065
|
* @param {boolean} [props.selectionCell=false] - Whether this is a selection cell.
|
|
@@ -1079,8 +1117,10 @@ Table.Row.displayName = "Table.Row";
|
|
|
1079
1117
|
Table.Cell = Cell;
|
|
1080
1118
|
Table.Cell.displayName = "Table.Cell";
|
|
1081
1119
|
/**
|
|
1082
|
-
*
|
|
1083
|
-
*
|
|
1120
|
+
* @component Table.Footer
|
|
1121
|
+
*
|
|
1122
|
+
* @usage
|
|
1123
|
+
* - DO: Use for summary or pagination content below the table.
|
|
1084
1124
|
*
|
|
1085
1125
|
* @param {Object} props - The component props.
|
|
1086
1126
|
* @param {boolean} props.hasNextPage - Whether there is a next page.
|
|
@@ -162,30 +162,27 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
162
162
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
163
163
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
164
164
|
}
|
|
165
|
-
var styles = (0, _tailwindvariants.tv)({
|
|
166
|
-
base: "Litho-Tabs flex overflow-x-hidden whitespace-nowrap",
|
|
167
|
-
variants: {
|
|
168
|
-
borderBottom: {
|
|
169
|
-
true: "border-b",
|
|
170
|
-
false: ""
|
|
171
|
-
},
|
|
172
|
-
padded: {
|
|
173
|
-
true: "p-2",
|
|
174
|
-
false: ""
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
var containerStyles = (0, _tailwindvariants.tv)({
|
|
179
|
-
base: "Litho-Tabs__TabContainer flex flex-1 overflow-x-hidden whitespace-nowrap space-x-1"
|
|
180
|
-
});
|
|
181
165
|
/**
|
|
182
|
-
*
|
|
166
|
+
* @component Tabs
|
|
167
|
+
*
|
|
168
|
+
* @description An in-page tab switcher that renders a horizontal tab bar for toggling between content panels without URL changes.
|
|
169
|
+
*
|
|
170
|
+
* @usage
|
|
171
|
+
* - DO: Switch between related content views within the same page.
|
|
172
|
+
* - DON'T: Use for URL-based routing (use TabNavigation).
|
|
173
|
+
*
|
|
174
|
+
* @accessibility
|
|
175
|
+
* - Implements tablist/tab/tabpanel ARIA roles; supports keyboard arrow navigation between tabs.
|
|
176
|
+
*
|
|
177
|
+
* @alternative
|
|
178
|
+
* - If you need URL-based tab navigation, use `TabNavigation`. If you need collapsible sections, use `Collapsible`.
|
|
183
179
|
*
|
|
184
180
|
* @param {Object} props - Component props.
|
|
185
181
|
* @param {Object[]} props.tabs - List of tabs to display.
|
|
186
182
|
* @param {string} props.tabs[].id - Unique identifier for the tab.
|
|
187
183
|
* @param {string} props.tabs[].content - Content or label to display for the tab.
|
|
188
184
|
* @param {string} [props.tabs[].icon] - Optional icon to display for the tab.
|
|
185
|
+
* @param {boolean} [props.tabs[].showIconOnMobile=true] - When false, the tab icon is hidden on mobile and only shown at md (≥800px) breakpoint.
|
|
189
186
|
* @param {boolean} [props.tabs[].disclosure=false] - Whether the tab is part of a "More" disclosure group.
|
|
190
187
|
* @param {number} props.selected - Index of the currently selected tab.
|
|
191
188
|
* @param {Function} props.onSelect - Callback fired when a tab is selected, receives the tab's index.
|
|
@@ -199,7 +196,23 @@ var containerStyles = (0, _tailwindvariants.tv)({
|
|
|
199
196
|
* @param {number} [props.badgeCount] - The number of badges to display for the tab.
|
|
200
197
|
* @param {string} [props.badgeStatus="default"] - The status of the badge.
|
|
201
198
|
* @returns {JSX.Element} The Tabs component.
|
|
202
|
-
*/
|
|
199
|
+
*/ var styles = (0, _tailwindvariants.tv)({
|
|
200
|
+
base: "Litho-Tabs flex overflow-x-hidden whitespace-nowrap",
|
|
201
|
+
variants: {
|
|
202
|
+
borderBottom: {
|
|
203
|
+
true: "border-b",
|
|
204
|
+
false: ""
|
|
205
|
+
},
|
|
206
|
+
padded: {
|
|
207
|
+
true: "p-2",
|
|
208
|
+
false: ""
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
var containerStyles = (0, _tailwindvariants.tv)({
|
|
213
|
+
base: "Litho-Tabs__TabContainer flex flex-1 overflow-x-hidden whitespace-nowrap space-x-1"
|
|
214
|
+
});
|
|
215
|
+
function Tabs() {
|
|
203
216
|
var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
204
217
|
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;
|
|
205
218
|
var selectedIndex = parseInt(_selectedIndex);
|
|
@@ -308,6 +321,7 @@ var containerStyles = (0, _tailwindvariants.tv)({
|
|
|
308
321
|
},
|
|
309
322
|
disclosure: disclosure && tab.disclosure,
|
|
310
323
|
icon: tab.icon,
|
|
324
|
+
showIconOnMobile: tab.showIconOnMobile,
|
|
311
325
|
fullWidth: fullWidth,
|
|
312
326
|
hidden: tab.hidden,
|
|
313
327
|
simple: simpleTabs,
|
|
@@ -414,6 +428,7 @@ var tabStyles = (0, _tailwindvariants.tv)({
|
|
|
414
428
|
* @param {boolean} [props.selected] - Whether this tab is currently selected.
|
|
415
429
|
* @param {number} [props.index] - The index position of this tab in the tabs array.
|
|
416
430
|
* @param {string|React.ReactNode} [props.icon] - Icon to display. Can be a Polaris icon name string or a custom React node.
|
|
431
|
+
* @param {boolean} [props.showIconOnMobile=true] - When false, the tab icon is hidden on mobile and only shown at md (≥800px) breakpoint.
|
|
417
432
|
* @param {Function} [props.onSelect] - Callback fired when the tab is selected, receives the tab's index.
|
|
418
433
|
* @param {Function} [props.onClick] - Custom click handler that overrides the default onSelect behavior.
|
|
419
434
|
* @param {React.ReactNode} [props.children] - The content/label to display inside the tab.
|
|
@@ -428,7 +443,7 @@ var tabStyles = (0, _tailwindvariants.tv)({
|
|
|
428
443
|
* @returns {JSX.Element} The Tab component.
|
|
429
444
|
*/ function Tab() {
|
|
430
445
|
var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
431
|
-
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;
|
|
446
|
+
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;
|
|
432
447
|
var polarisIcon = typeof icon === "string" ? _polarisicons[icon] : _polarisicons[icon === null || icon === void 0 ? void 0 : icon.displayName];
|
|
433
448
|
var showDisclosure = disclosure && (selected || alwaysShowDisclosureIcon);
|
|
434
449
|
var tabClasses = tabStyles({
|
|
@@ -445,18 +460,32 @@ var tabStyles = (0, _tailwindvariants.tv)({
|
|
|
445
460
|
onClick: onClick ? onClick : onSelect ? function() {
|
|
446
461
|
return onSelect(index);
|
|
447
462
|
} : undefined,
|
|
463
|
+
role: "tab",
|
|
464
|
+
tabIndex: disabled ? -1 : 0,
|
|
465
|
+
"aria-selected": selected,
|
|
466
|
+
onKeyDown: function(e) {
|
|
467
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
468
|
+
e.preventDefault();
|
|
469
|
+
if (onClick) onClick();
|
|
470
|
+
else if (onSelect) onSelect(index);
|
|
471
|
+
}
|
|
472
|
+
},
|
|
448
473
|
children: [
|
|
449
474
|
icon && !!polarisIcon && /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
|
|
450
|
-
className: "Litho-Tabs__Tab-Icon mr-1",
|
|
475
|
+
className: "Litho-Tabs__Tab-Icon mr-1 ".concat(showIconOnMobile ? "" : "hidden @md:inline-flex"),
|
|
451
476
|
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Icon.default, {
|
|
452
477
|
source: polarisIcon,
|
|
453
478
|
color: selected && simple ? "default" : selected ? "primary" : "subdued",
|
|
454
479
|
size: simple ? "lg" : undefined
|
|
455
480
|
})
|
|
456
481
|
}),
|
|
457
|
-
icon &&
|
|
458
|
-
className: "Litho-Tabs__Tab-Icon ".concat(simple ? "mr-0" : "mr-1"),
|
|
459
|
-
children:
|
|
482
|
+
icon && !polarisIcon && /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
|
|
483
|
+
className: "Litho-Tabs__Tab-Icon ".concat(simple ? "mr-0" : "mr-1", " ").concat(showIconOnMobile ? "" : "hidden @md:inline-flex"),
|
|
484
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Icon.default, {
|
|
485
|
+
source: icon,
|
|
486
|
+
color: selected && simple ? "default" : selected ? "primary" : "subdued",
|
|
487
|
+
size: simple ? "lg" : undefined
|
|
488
|
+
})
|
|
460
489
|
}),
|
|
461
490
|
/*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
|
|
462
491
|
className: "Litho-Tabs__Tab-Content block min-h-5 leading-5",
|