@heymantle/litho 0.0.14 → 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/README.md +52 -0
- 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 +57 -13
- package/dist/cjs/components/Divider.js +82 -18
- package/dist/cjs/components/DropZone.js +194 -68
- 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 +37 -26
- 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 +32 -39
- 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 +63 -30
- 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 +85 -29
- package/dist/cjs/components/Tabs.js +84 -24
- 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/playwright.config.js +114 -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/cjs/styles/Table.js +2 -7
- package/dist/cjs/tests/visual/stories.spec.js +637 -0
- package/dist/cjs/utilities/dates.js +7 -7
- 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 +50 -6
- package/dist/esm/components/Divider.js +78 -20
- package/dist/esm/components/DropZone.js +194 -68
- 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 +62 -27
- 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 +79 -40
- 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 +63 -30
- 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 +85 -29
- package/dist/esm/components/Tabs.js +84 -24
- 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/playwright.config.js +104 -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/esm/styles/Table.js +2 -7
- package/dist/esm/tests/visual/stories.spec.js +633 -0
- package/dist/esm/utilities/dates.js +7 -7
- 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 +3 -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 -35
- 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 +40 -34
- 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/dist/types/styles/Table.d.ts.map +1 -1
- package/index.css +76 -14
- package/package.json +15 -5
|
@@ -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: {
|
|
@@ -28,6 +28,7 @@ var _Text = /*#__PURE__*/ _interop_require_default(require("./Text"));
|
|
|
28
28
|
var _Tooltip = /*#__PURE__*/ _interop_require_default(require("./Tooltip"));
|
|
29
29
|
var _Table = require("../styles/Table");
|
|
30
30
|
var _useIndexResourceState = require("../utilities/useIndexResourceState");
|
|
31
|
+
var _useMobile = require("../utilities/useMobile");
|
|
31
32
|
var _useMounted = require("../utilities/useMounted");
|
|
32
33
|
var _useTableScrollState = /*#__PURE__*/ _interop_require_default(require("../utilities/useTableScrollState"));
|
|
33
34
|
function _array_like_to_array(arr, len) {
|
|
@@ -217,19 +218,21 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
217
218
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
218
219
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
219
220
|
}
|
|
220
|
-
var TableContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
221
|
-
var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
222
221
|
/**
|
|
223
|
-
* @
|
|
224
|
-
*
|
|
225
|
-
* @
|
|
226
|
-
*
|
|
227
|
-
* @
|
|
228
|
-
*
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
-
|
|
232
|
-
*
|
|
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`.
|
|
233
236
|
*
|
|
234
237
|
* @param {Object} props - Component props.
|
|
235
238
|
* @param {Array<TableHeading|string|React.ReactNode>} [props.headings=[]] - Column headings. Can be strings, React nodes, or configuration objects.
|
|
@@ -256,6 +259,17 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
|
256
259
|
* @param {Function} [props.onSelectionChange] - Callback for handling selection changes.
|
|
257
260
|
* @param {boolean} [props.loading=false] - Whether the table is loading.
|
|
258
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.
|
|
259
273
|
*/ function Table() {
|
|
260
274
|
var props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
261
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 ? {
|
|
@@ -502,6 +516,8 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
|
502
516
|
var alignment = cellAlignment[indexAdjusted];
|
|
503
517
|
var isSortable = sortable && sortable.length > 0 && sortable[indexAdjusted];
|
|
504
518
|
var sortIndex = selectable ? indexAdjusted - 1 : indexAdjusted;
|
|
519
|
+
// Check if this cell is covered by a fixed overlay
|
|
520
|
+
var isCovered = !fixed && !reverseColumns && (fixedFirstColumns > 0 && indexAdjusted < fixedFirstColumns || fixedLastColumns > 0 && indexAdjusted >= headings.length - fixedLastColumns);
|
|
505
521
|
var sortContent = isSortable ? /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
506
522
|
className: "min-h-5 ".concat(sort.index === sortIndex ? "opacity-100" : "opacity-0 group-hover:opacity-100"),
|
|
507
523
|
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Icon.default, {
|
|
@@ -514,13 +530,23 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
|
514
530
|
if (isSortable) handleSort(sortIndex);
|
|
515
531
|
else if (heading.onAction) heading.onAction();
|
|
516
532
|
};
|
|
517
|
-
var labelContent = /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
533
|
+
var labelContent = /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", _object_spread_props(_object_spread({
|
|
518
534
|
className: _Table.styles.headingLabelStyles({
|
|
519
535
|
alignment: alignment,
|
|
520
536
|
sortable: !!isSortable,
|
|
521
537
|
interactive: !!isInteractive
|
|
522
538
|
}),
|
|
523
|
-
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
|
+
} : {}), {
|
|
524
550
|
children: [
|
|
525
551
|
[
|
|
526
552
|
"right",
|
|
@@ -535,7 +561,8 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
|
535
561
|
"center"
|
|
536
562
|
].includes(alignment) && sortContent
|
|
537
563
|
]
|
|
538
|
-
});
|
|
564
|
+
}));
|
|
565
|
+
var hasTooltip = (heading.tooltip || heading.tooltipContent) && !isCovered;
|
|
539
566
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)(HeadingCell, {
|
|
540
567
|
className: _Table.styles.headingStyles({
|
|
541
568
|
hidden: hideCell,
|
|
@@ -553,7 +580,7 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
|
553
580
|
className: _Table.styles.headingLabelContainerStyles({
|
|
554
581
|
alignment: alignment
|
|
555
582
|
}),
|
|
556
|
-
children: heading.hidden ? null :
|
|
583
|
+
children: heading.hidden ? null : hasTooltip ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_Tooltip.default, {
|
|
557
584
|
content: heading.tooltip || heading.tooltipContent,
|
|
558
585
|
preferredPosition: "above",
|
|
559
586
|
children: labelContent
|
|
@@ -669,12 +696,16 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
|
669
696
|
value: {
|
|
670
697
|
columnsToRender: columnsToRender,
|
|
671
698
|
reverseColumns: reverseColumns,
|
|
672
|
-
hideCellsOnMobile: hideCellsOnMobile
|
|
699
|
+
hideCellsOnMobile: hideCellsOnMobile,
|
|
700
|
+
isFixedOverlay: fixed,
|
|
701
|
+
fixedFirstColumns: fixedFirstColumns,
|
|
702
|
+
fixedLastColumns: fixedLastColumns
|
|
673
703
|
},
|
|
674
704
|
children: /*#__PURE__*/ (0, _jsxruntime.jsxs)("table", {
|
|
675
705
|
className: _Table.styles.tableStyles(),
|
|
676
706
|
children: [
|
|
677
707
|
hasHeadings && renderHeadings({
|
|
708
|
+
fixed: fixed,
|
|
678
709
|
hidden: true,
|
|
679
710
|
columnsToRender: columnsToRender,
|
|
680
711
|
reverseColumns: reverseColumns,
|
|
@@ -725,6 +756,14 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
|
725
756
|
return handleSelectionChange(isAllSelected ? _useIndexResourceState.SelectionType.Page : _useIndexResourceState.SelectionType.All, true);
|
|
726
757
|
},
|
|
727
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
|
+
},
|
|
728
767
|
children: isAllSelected ? "Undo" : paginatedSelectAllActionText || "Select all"
|
|
729
768
|
})
|
|
730
769
|
]
|
|
@@ -807,7 +846,8 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
|
807
846
|
increasedTableDensity: increasedTableDensity,
|
|
808
847
|
tableContainerRef: tableContainerRef,
|
|
809
848
|
cellAlignment: cellAlignment,
|
|
810
|
-
noBodyCellPadding: noBodyCellPadding
|
|
849
|
+
noBodyCellPadding: noBodyCellPadding,
|
|
850
|
+
columnWidths: columnWidths
|
|
811
851
|
},
|
|
812
852
|
children: /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
813
853
|
"data-id": idRef.current,
|
|
@@ -858,8 +898,7 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
|
858
898
|
children: renderTable({
|
|
859
899
|
classes: "relative overflow-hidden",
|
|
860
900
|
fixed: true,
|
|
861
|
-
columnsToRender: fixedFirstColumns
|
|
862
|
-
hideCellsOnMobile: true
|
|
901
|
+
columnsToRender: fixedFirstColumns
|
|
863
902
|
})
|
|
864
903
|
}) : /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
865
904
|
className: _Table.styles.overflowShadowStyles({
|
|
@@ -877,8 +916,7 @@ var TableWrapperContext = /*#__PURE__*/ (0, _react.createContext)({});
|
|
|
877
916
|
classes: "relative overflow-hidden",
|
|
878
917
|
fixed: true,
|
|
879
918
|
columnsToRender: fixedLastColumns,
|
|
880
|
-
reverseColumns: true
|
|
881
|
-
hideCellsOnMobile: true
|
|
919
|
+
reverseColumns: true
|
|
882
920
|
})
|
|
883
921
|
}) : /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
884
922
|
className: _Table.styles.overflowShadowStyles({
|
|
@@ -1014,7 +1052,14 @@ Table.displayName = "Table";
|
|
|
1014
1052
|
Table.Row = Row;
|
|
1015
1053
|
Table.Row.displayName = "Table.Row";
|
|
1016
1054
|
/**
|
|
1017
|
-
*
|
|
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
|
+
*
|
|
1018
1063
|
* @param {Object} props - Cell properties.
|
|
1019
1064
|
* @param {string} [props.alignment="start"] - Text alignment.
|
|
1020
1065
|
* @param {boolean} [props.selectionCell=false] - Whether this is a selection cell.
|
|
@@ -1023,8 +1068,11 @@ Table.Row.displayName = "Table.Row";
|
|
|
1023
1068
|
*/ function Cell(param) {
|
|
1024
1069
|
var tmp = param.alignment, _alignment = tmp === void 0 ? "start" : tmp, children = param.children, _param_selectionCell = param.selectionCell, selectionCell = _param_selectionCell === void 0 ? false : _param_selectionCell;
|
|
1025
1070
|
var _useContext = (0, _react.useContext)(TableContext), cellAlignment = _useContext.cellAlignment, increasedTableDensity = _useContext.increasedTableDensity, selectable = _useContext.selectable, noBodyCellPadding = _useContext.noBodyCellPadding;
|
|
1026
|
-
var _useContext1 = (0, _react.useContext)(TableWrapperContext), hideCellsOnMobile = _useContext1.hideCellsOnMobile, reverseColumns = _useContext1.reverseColumns, columnsToRender = _useContext1.columnsToRender;
|
|
1071
|
+
var _useContext1 = (0, _react.useContext)(TableWrapperContext), hideCellsOnMobile = _useContext1.hideCellsOnMobile, reverseColumns = _useContext1.reverseColumns, columnsToRender = _useContext1.columnsToRender, isFixedOverlay = _useContext1.isFixedOverlay, fixedFirstColumns = _useContext1.fixedFirstColumns, fixedLastColumns = _useContext1.fixedLastColumns;
|
|
1072
|
+
var isMobile = (0, _useMobile.useMobile)();
|
|
1027
1073
|
var columnCount = (cellAlignment === null || cellAlignment === void 0 ? void 0 : cellAlignment.length) || 0;
|
|
1074
|
+
// Use state instead of ref so changes trigger re-render
|
|
1075
|
+
var _useState = _sliced_to_array((0, _react.useState)(-1), 2), cellIndex = _useState[0], setCellIndex = _useState[1];
|
|
1028
1076
|
var cellIndexRef = (0, _react.useRef)(null);
|
|
1029
1077
|
var setCellRef = (0, _react.useCallback)(function(node) {
|
|
1030
1078
|
if (!node || cellIndexRef.current !== null) return;
|
|
@@ -1032,16 +1080,21 @@ Table.Row.displayName = "Table.Row";
|
|
|
1032
1080
|
if ((parentRow === null || parentRow === void 0 ? void 0 : parentRow.tagName) === "TR") {
|
|
1033
1081
|
var totalCells = parentRow.children.length;
|
|
1034
1082
|
var index = node.cellIndex;
|
|
1035
|
-
|
|
1083
|
+
var calculatedIndex = reverseColumns ? totalCells - columnsToRender + index - (totalCells - columnCount) : index;
|
|
1084
|
+
cellIndexRef.current = calculatedIndex;
|
|
1085
|
+
setCellIndex(calculatedIndex);
|
|
1036
1086
|
}
|
|
1037
1087
|
}, [
|
|
1038
1088
|
reverseColumns,
|
|
1039
1089
|
columnsToRender,
|
|
1040
1090
|
columnCount
|
|
1041
1091
|
]);
|
|
1042
|
-
var _cellIndexRef_current;
|
|
1043
|
-
var cellIndex = (_cellIndexRef_current = cellIndexRef.current) !== null && _cellIndexRef_current !== void 0 ? _cellIndexRef_current : -1;
|
|
1044
1092
|
var alignment = (cellAlignment === null || cellAlignment === void 0 ? void 0 : cellAlignment[cellIndex]) || _alignment;
|
|
1093
|
+
// Check if this cell is covered by a fixed overlay
|
|
1094
|
+
// When cellIndex is unknown (-1), conservatively assume the cell might be covered
|
|
1095
|
+
// if there are any fixed columns. This prevents duplicate popovers during the
|
|
1096
|
+
// brief window between initial render and when cellIndex is calculated.
|
|
1097
|
+
var isCoveredByFixedOverlay = !isFixedOverlay && !reverseColumns && (cellIndex === -1 ? fixedFirstColumns > 0 || fixedLastColumns > 0 : fixedFirstColumns > 0 && cellIndex < fixedFirstColumns || fixedLastColumns > 0 && cellIndex >= columnCount - fixedLastColumns);
|
|
1045
1098
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)("td", {
|
|
1046
1099
|
ref: setCellRef,
|
|
1047
1100
|
className: _Table.styles.cellStyles({
|
|
@@ -1052,6 +1105,7 @@ Table.Row.displayName = "Table.Row";
|
|
|
1052
1105
|
tableIsSelectable: selectable,
|
|
1053
1106
|
noBodyCellPadding: noBodyCellPadding
|
|
1054
1107
|
}),
|
|
1108
|
+
inert: !isMobile && isCoveredByFixedOverlay || undefined,
|
|
1055
1109
|
children: /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
1056
1110
|
className: _Table.styles.cellContentStyles({
|
|
1057
1111
|
alignment: alignment
|
|
@@ -1063,8 +1117,10 @@ Table.Row.displayName = "Table.Row";
|
|
|
1063
1117
|
Table.Cell = Cell;
|
|
1064
1118
|
Table.Cell.displayName = "Table.Cell";
|
|
1065
1119
|
/**
|
|
1066
|
-
*
|
|
1067
|
-
*
|
|
1120
|
+
* @component Table.Footer
|
|
1121
|
+
*
|
|
1122
|
+
* @usage
|
|
1123
|
+
* - DO: Use for summary or pagination content below the table.
|
|
1068
1124
|
*
|
|
1069
1125
|
* @param {Object} props - The component props.
|
|
1070
1126
|
* @param {boolean} props.hasNextPage - Whether there is a next page.
|