@protonradio/proton-ui 0.11.12 → 0.11.13-beta.1

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.
Files changed (162) hide show
  1. package/README.md +148 -148
  2. package/dist/components/ActionMenu/ActionMenu.cjs.js +1 -1
  3. package/dist/components/ActionMenu/ActionMenu.cjs.js.map +1 -1
  4. package/dist/components/ActionMenu/ActionMenu.es.js.map +1 -1
  5. package/dist/components/Badge/Badge.cjs.js.map +1 -1
  6. package/dist/components/Badge/Badge.es.js.map +1 -1
  7. package/dist/components/Banner/Banner.cjs.js +1 -1
  8. package/dist/components/Banner/Banner.cjs.js.map +1 -1
  9. package/dist/components/Banner/Banner.es.js.map +1 -1
  10. package/dist/components/Button/Button.cjs.js +1 -1
  11. package/dist/components/Button/Button.cjs.js.map +1 -1
  12. package/dist/components/Button/Button.es.js.map +1 -1
  13. package/dist/components/ButtonGroup/ButtonGroup.cjs.js +1 -1
  14. package/dist/components/ButtonGroup/ButtonGroup.cjs.js.map +1 -1
  15. package/dist/components/ButtonGroup/ButtonGroup.es.js.map +1 -1
  16. package/dist/components/ButtonWithSelect/ButtonWithSelect.cjs.js.map +1 -1
  17. package/dist/components/ButtonWithSelect/ButtonWithSelect.es.js +13 -13
  18. package/dist/components/ButtonWithSelect/ButtonWithSelect.es.js.map +1 -1
  19. package/dist/components/DataTable/DataTable.cjs.js +1 -1
  20. package/dist/components/DataTable/DataTable.cjs.js.map +1 -1
  21. package/dist/components/DataTable/DataTable.es.js.map +1 -1
  22. package/dist/components/Dialog/Dialog.cjs.js +1 -1
  23. package/dist/components/Dialog/Dialog.cjs.js.map +1 -1
  24. package/dist/components/Dialog/Dialog.es.js.map +1 -1
  25. package/dist/components/Elevation/Elevation.cjs.js.map +1 -1
  26. package/dist/components/Elevation/Elevation.es.js.map +1 -1
  27. package/dist/components/Icon/Icon.cjs.js.map +1 -1
  28. package/dist/components/Icon/Icon.es.js.map +1 -1
  29. package/dist/components/ImageBackground/ImageBackground.cjs.js.map +1 -1
  30. package/dist/components/ImageBackground/ImageBackground.es.js.map +1 -1
  31. package/dist/components/Input/BaseInput/Input.cjs.js +1 -1
  32. package/dist/components/Input/BaseInput/Input.cjs.js.map +1 -1
  33. package/dist/components/Input/BaseInput/Input.es.js.map +1 -1
  34. package/dist/components/Input/CopyInput/CopyInput.cjs.js.map +1 -1
  35. package/dist/components/Input/CopyInput/CopyInput.es.js.map +1 -1
  36. package/dist/components/Input/SearchInput/SearchInput.cjs.js +1 -1
  37. package/dist/components/Input/SearchInput/SearchInput.cjs.js.map +1 -1
  38. package/dist/components/Input/SearchInput/SearchInput.es.js +1 -1
  39. package/dist/components/Input/SearchInput/SearchInput.es.js.map +1 -1
  40. package/dist/components/Menu/MenuTrigger.cjs.js +1 -1
  41. package/dist/components/Menu/MenuTrigger.cjs.js.map +1 -1
  42. package/dist/components/Menu/MenuTrigger.es.js.map +1 -1
  43. package/dist/components/Menu/PopoverMenu.cjs.js.map +1 -1
  44. package/dist/components/Menu/PopoverMenu.es.js.map +1 -1
  45. package/dist/components/Modal/Modal.cjs.js +1 -1
  46. package/dist/components/Modal/Modal.cjs.js.map +1 -1
  47. package/dist/components/Modal/Modal.es.js.map +1 -1
  48. package/dist/components/Popover/Popover.cjs.js.map +1 -1
  49. package/dist/components/Popover/Popover.es.js.map +1 -1
  50. package/dist/components/ScreenOverlay/ScreenOverlay.cjs.js.map +1 -1
  51. package/dist/components/ScreenOverlay/ScreenOverlay.es.js.map +1 -1
  52. package/dist/components/Select/Select.cjs.js.map +1 -1
  53. package/dist/components/Select/Select.es.js.map +1 -1
  54. package/dist/components/Switch/Switch.cjs.js +1 -1
  55. package/dist/components/Switch/Switch.cjs.js.map +1 -1
  56. package/dist/components/Switch/Switch.es.js.map +1 -1
  57. package/dist/components/Table/Collection/CompoundComponents.cjs.js.map +1 -1
  58. package/dist/components/Table/Collection/CompoundComponents.es.js.map +1 -1
  59. package/dist/components/Table/Collection/collectionParser.cjs.js +1 -1
  60. package/dist/components/Table/Collection/collectionParser.cjs.js.map +1 -1
  61. package/dist/components/Table/Collection/collectionParser.es.js.map +1 -1
  62. package/dist/components/Table/Collection/useTableCollection.cjs.js +1 -1
  63. package/dist/components/Table/Collection/useTableCollection.cjs.js.map +1 -1
  64. package/dist/components/Table/Collection/useTableCollection.es.js.map +1 -1
  65. package/dist/components/Table/Table.cjs.js.map +1 -1
  66. package/dist/components/Table/Table.es.js.map +1 -1
  67. package/dist/components/Text/TextEllipsis/TextEllipsis.cjs.js.map +1 -1
  68. package/dist/components/Text/TextEllipsis/TextEllipsis.es.js.map +1 -1
  69. package/dist/components/Text/TextEmphasis/TextEmphasis.cjs.js +1 -1
  70. package/dist/components/Text/TextEmphasis/TextEmphasis.cjs.js.map +1 -1
  71. package/dist/components/Text/TextEmphasis/TextEmphasis.es.js +15 -15
  72. package/dist/components/Text/TextEmphasis/TextEmphasis.es.js.map +1 -1
  73. package/dist/components/ThemeProvider.cjs.js +1 -1
  74. package/dist/components/ThemeProvider.cjs.js.map +1 -1
  75. package/dist/components/ThemeProvider.es.js.map +1 -1
  76. package/dist/components/Tombstone/Tombstone.cjs.js.map +1 -1
  77. package/dist/components/Tombstone/Tombstone.es.js.map +1 -1
  78. package/dist/components/Tooltip/Tooltip.cjs.js +1 -1
  79. package/dist/components/Tooltip/Tooltip.cjs.js.map +1 -1
  80. package/dist/components/Tooltip/Tooltip.es.js +71 -56
  81. package/dist/components/Tooltip/Tooltip.es.js.map +1 -1
  82. package/dist/components/Waveform/Waveform.cjs.js +1 -1
  83. package/dist/components/Waveform/Waveform.cjs.js.map +1 -1
  84. package/dist/components/Waveform/Waveform.es.js.map +1 -1
  85. package/dist/components/Waveform/WaveformBar.cjs.js.map +1 -1
  86. package/dist/components/Waveform/WaveformBar.es.js.map +1 -1
  87. package/dist/constants/breakpoint.cjs.js.map +1 -1
  88. package/dist/constants/breakpoint.es.js.map +1 -1
  89. package/dist/constants/placement.cjs.js.map +1 -1
  90. package/dist/constants/placement.es.js.map +1 -1
  91. package/dist/design/colors.cjs.js.map +1 -1
  92. package/dist/design/colors.es.js.map +1 -1
  93. package/dist/design/darkTheme/colors.cjs.js.map +1 -1
  94. package/dist/design/darkTheme/colors.es.js.map +1 -1
  95. package/dist/design/darkTheme/stylesheet.cjs.js.map +1 -1
  96. package/dist/design/darkTheme/stylesheet.es.js.map +1 -1
  97. package/dist/design/generateStylesheet.cjs.js.map +1 -1
  98. package/dist/design/generateStylesheet.es.js.map +1 -1
  99. package/dist/design/lightTheme/colors.cjs.js.map +1 -1
  100. package/dist/design/lightTheme/colors.es.js.map +1 -1
  101. package/dist/design/lightTheme/stylesheet.cjs.js.map +1 -1
  102. package/dist/design/lightTheme/stylesheet.es.js.map +1 -1
  103. package/dist/design/theme.cjs.js.map +1 -1
  104. package/dist/design/theme.es.js.map +1 -1
  105. package/dist/hooks/useBreakpoint.cjs.js +1 -1
  106. package/dist/hooks/useBreakpoint.cjs.js.map +1 -1
  107. package/dist/hooks/useBreakpoint.es.js.map +1 -1
  108. package/dist/hooks/useIsClosing.cjs.js +1 -1
  109. package/dist/hooks/useIsClosing.cjs.js.map +1 -1
  110. package/dist/hooks/useIsClosing.es.js.map +1 -1
  111. package/dist/hooks/useLockBodyScroll.cjs.js.map +1 -1
  112. package/dist/hooks/useLockBodyScroll.es.js.map +1 -1
  113. package/dist/hooks/usePalette.cjs.js.map +1 -1
  114. package/dist/hooks/usePalette.es.js.map +1 -1
  115. package/dist/icons.svg +10 -10
  116. package/dist/index.cjs.js +1 -1
  117. package/dist/index.d.ts +52 -25
  118. package/dist/index.es.js +6 -6
  119. package/dist/node_modules/@react-aria/focus/dist/FocusScope.cjs.js +1 -1
  120. package/dist/node_modules/@react-aria/form/dist/useFormValidation.cjs.js +1 -1
  121. package/dist/node_modules/@react-aria/i18n/dist/context.cjs.js +1 -1
  122. package/dist/node_modules/@react-aria/i18n/dist/context.es.js +3 -3
  123. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.cjs.js +1 -1
  124. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.cjs.js +1 -1
  125. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.cjs.js.map +1 -1
  126. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.es.js +20 -30
  127. package/dist/node_modules/@react-aria/interactions/dist/useFocusable.es.js.map +1 -1
  128. package/dist/node_modules/@react-aria/interactions/dist/usePress.cjs.js +2 -2
  129. package/dist/node_modules/@react-aria/overlays/dist/Overlay.cjs.js +1 -1
  130. package/dist/node_modules/@react-aria/ssr/dist/SSRProvider.es.js.map +1 -1
  131. package/dist/node_modules/@react-stately/form/dist/useFormValidationState.cjs.js +1 -1
  132. package/dist/node_modules/@react-stately/radio/dist/useRadioGroupState.cjs.js +1 -1
  133. package/dist/node_modules/@react-stately/utils/dist/useControlledState.cjs.js +1 -1
  134. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.js +5 -5
  135. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js +14 -14
  136. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.es.js +2 -2
  137. package/dist/style.css +1 -1
  138. package/dist/utils/color2k.cjs.js.map +1 -1
  139. package/dist/utils/color2k.es.js.map +1 -1
  140. package/dist/utils/copy.cjs.js.map +1 -1
  141. package/dist/utils/copy.es.js.map +1 -1
  142. package/dist/utils/image.cjs.js.map +1 -1
  143. package/dist/utils/image.es.js.map +1 -1
  144. package/dist/utils/navigation.cjs.js.map +1 -1
  145. package/dist/utils/navigation.es.js.map +1 -1
  146. package/dist/utils/palette.cjs.js.map +1 -1
  147. package/dist/utils/palette.es.js.map +1 -1
  148. package/dist/utils/string.cjs.js.map +1 -1
  149. package/dist/utils/string.es.js.map +1 -1
  150. package/package.json +140 -140
  151. package/dist/node_modules/react-aria-components/dist/OverlayArrow.cjs.js +0 -2
  152. package/dist/node_modules/react-aria-components/dist/OverlayArrow.cjs.js.map +0 -1
  153. package/dist/node_modules/react-aria-components/dist/OverlayArrow.es.js +0 -37
  154. package/dist/node_modules/react-aria-components/dist/OverlayArrow.es.js.map +0 -1
  155. package/dist/node_modules/react-aria-components/dist/Tooltip.cjs.js +0 -2
  156. package/dist/node_modules/react-aria-components/dist/Tooltip.cjs.js.map +0 -1
  157. package/dist/node_modules/react-aria-components/dist/Tooltip.es.js +0 -98
  158. package/dist/node_modules/react-aria-components/dist/Tooltip.es.js.map +0 -1
  159. package/dist/node_modules/react-aria-components/dist/utils.cjs.js +0 -2
  160. package/dist/node_modules/react-aria-components/dist/utils.cjs.js.map +0 -1
  161. package/dist/node_modules/react-aria-components/dist/utils.es.js +0 -89
  162. package/dist/node_modules/react-aria-components/dist/utils.es.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Select.es.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n forwardRef,\n ReactNode,\n RefObject,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { Select as RadixSelect } from \"radix-ui\";\n\nimport { BREAKPOINTS } from \"../../constants\";\nimport { useBreakpoint } from \"../../hooks/useBreakpoint\";\nimport { csx } from \"../../utils\";\nimport { ActionMenu, ActionMenuAction } from \"../ActionMenu/ActionMenu\";\n\nimport \"./Select.css\";\nimport \"../Menu/Menu.css\";\nimport { useTheme } from \"../ThemeProvider\";\n\ninterface SelectButtonProps {\n disabled?: boolean;\n isOpen?: boolean;\n children?: ReactNode;\n onClick?: () => void;\n isRounded?: boolean;\n}\n\nconst SelectButton = forwardRef<HTMLButtonElement, SelectButtonProps>(\n (\n { disabled, isOpen, children, onClick, isRounded, ...props },\n ref: RefObject<HTMLButtonElement>\n ) => {\n return (\n <button\n {...props}\n ref={ref}\n disabled={disabled}\n onClick={onClick}\n className={csx(\n \"proton-Select__trigger\",\n disabled && \"proton-Select__trigger--disabled\",\n !isOpen && \"proton-Select__trigger--closed\",\n isOpen && \"proton-Select__trigger--opened\",\n isRounded && \"proton-Select__trigger--rounded\"\n )}\n >\n {children}\n </button>\n );\n }\n);\nSelectButton.displayName = \"ProtonUISelectButton\";\n\nexport interface SelectItem {\n /** The label to display for the item */\n label: string;\n\n /** The key of the item */\n key: string;\n\n /** The URL to navigate to when the item is clicked, turns item into an a tag */\n to?: string;\n}\n\nexport interface SelectProps {\n /** Array of keys that should be disabled\n * @example [\"Thing 1\", \"Thing 2\"]\n */\n disabledKeys?: string[];\n\n /** The key of the default selected item */\n defaultSelectedKey?: string;\n\n /** Test ID for the select */\n \"data-testid\"?: string;\n\n /** Whether the select is disabled */\n isDisabled?: boolean;\n\n /** Array of items to display\n * @example [{ key: \"thing-1\", label: \"Thing 1\" }, { key: \"thing-2\", label: \"Thing 2\" }]\n * @see {@link SelectItem}\n */\n items: SelectItem[];\n\n /** Whether the select button is rounded\n * @default false\n */\n isRounded?: boolean;\n\n /** Label to display above the select\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label#text\n */\n label?: string;\n\n /** The name of the select field */\n name: string;\n\n /** Callback fired when the menu closes */\n onClose?: () => void;\n\n /** Callback fired when the menu opens */\n onOpen?: () => void;\n\n /** Callback fired when selection changes */\n onSelectionChange?: (key: string) => void;\n\n /** Currently selected key */\n selectedKey?: string;\n}\n\n/**\n * A dropdown select menu that opens a popover on desktop and an action menu on mobile.\n * Supports controlled and uncontrolled modes.\n *\n * API:\n * - {@link SelectProps}\n */\nexport function Select({\n label,\n name,\n isDisabled,\n disabledKeys,\n selectedKey,\n onSelectionChange,\n defaultSelectedKey,\n onOpen, \n onClose,\n items,\n isRounded = false,\n \"data-testid\": testId,\n}: SelectProps) {\n const [isOpen, setIsOpen] = useState(false);\n const [internalSelectedKey, setInternalSelectedKey] = useState(\n selectedKey || defaultSelectedKey || \"\"\n );\n const { className: themeClass, style: themeStyle } = useTheme();\n const isMobile = useBreakpoint(BREAKPOINTS.MEDIUM);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const hiddenInputRef = useRef<HTMLInputElement>(null);\n\n // Handle controlled vs uncontrolled state\n const currentSelectedKey =\n selectedKey !== undefined ? selectedKey : internalSelectedKey;\n const selectedItem = items.find((item) => item.key === currentSelectedKey);\n\n const handleValueChange = (value: string) => {\n if (selectedKey === undefined) {\n setInternalSelectedKey(value);\n }\n onSelectionChange?.(value);\n\n // Update hidden input for form submission\n if (hiddenInputRef.current) {\n hiddenInputRef.current.value = value;\n hiddenInputRef.current.dispatchEvent(\n new Event(\"change\", { bubbles: true })\n );\n }\n };\n\n const handleOpenChange = (open: boolean) => {\n setIsOpen(open);\n if (open) {\n onOpen?.();\n } else {\n onClose?.();\n }\n };\n\n // Update internal state when controlled selectedKey changes\n useEffect(() => {\n if (selectedKey !== undefined) {\n setInternalSelectedKey(selectedKey);\n }\n }, [selectedKey]);\n\n const actionItems: ActionMenuAction[] = items.map((item) => ({\n key: item.key,\n label: item.label,\n to: item.to,\n onAction: () => {\n handleValueChange(item.key);\n setIsOpen(false);\n },\n }));\n\n if (isMobile) {\n return (\n <div\n className=\"proton-Select\"\n aria-label={label || name}\n aria-disabled={isDisabled}\n >\n {label && (\n <div className=\"proton-Select__label\" data-testid=\"select-label\">\n {label}\n </div>\n )}\n\n {/* Hidden input for form submission */}\n <input\n ref={hiddenInputRef}\n type=\"hidden\"\n name={name}\n value={currentSelectedKey}\n data-testid=\"hidden-select-container\"\n />\n\n <SelectButton\n isOpen={isOpen}\n isRounded={isRounded}\n ref={triggerRef}\n disabled={isDisabled}\n data-testid={testId}\n onClick={() => setIsOpen(true)}\n >\n <div className=\"proton-Select__value\">\n {selectedItem ? selectedItem.label : \"Select an option\"}\n </div>\n <div\n className={csx(\n \"proton-Select__trigger_icon\",\n isOpen && \"proton-Select__trigger_icon--flipped\"\n )}\n aria-hidden=\"true\"\n >\n <svg id=\"caret-down\" viewBox=\"0 0 512 512\">\n <title>{isOpen ? \"caret down\" : \"caret up\"}</title>\n <path\n fill=\"currentColor\"\n d=\"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7L86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"\n />\n </svg>\n </div>\n </SelectButton>\n\n <ActionMenu\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n actions={actionItems}\n selectedKeys={[currentSelectedKey]}\n disabledKeys={disabledKeys}\n />\n </div>\n );\n }\n\n return (\n <div\n className=\"proton-Select\"\n aria-label={label || name}\n aria-disabled={isDisabled}\n >\n {label && (\n <div className=\"proton-Select__label\" data-testid=\"select-label\">\n {label}\n </div>\n )}\n\n {/* Hidden input for form submission */}\n <input\n ref={hiddenInputRef}\n type=\"hidden\"\n name={name}\n value={currentSelectedKey}\n data-testid=\"hidden-select-container\"\n />\n\n <RadixSelect.Root\n value={currentSelectedKey}\n onValueChange={handleValueChange}\n onOpenChange={handleOpenChange}\n disabled={isDisabled}\n >\n <RadixSelect.Trigger asChild>\n <SelectButton\n isRounded={isRounded}\n isOpen={isOpen}\n ref={triggerRef}\n disabled={isDisabled}\n data-testid={testId}\n >\n <RadixSelect.Value\n className=\"proton-Select__value\"\n placeholder=\"Select an option\"\n >\n {selectedItem ? selectedItem.label : \"Select an option\"}\n </RadixSelect.Value>\n <RadixSelect.Icon asChild>\n <div\n className={csx(\n \"proton-Select__trigger_icon\",\n isOpen && \"proton-Select__trigger_icon--flipped\"\n )}\n aria-hidden=\"true\"\n >\n <svg id=\"caret-down\" viewBox=\"0 0 512 512\">\n <title>{isOpen ? \"caret down\" : \"caret up\"}</title>\n <path\n fill=\"currentColor\"\n d=\"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7L86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"\n />\n </svg>\n </div>\n </RadixSelect.Icon>\n </SelectButton>\n </RadixSelect.Trigger>\n\n <RadixSelect.Portal>\n <RadixSelect.Content\n className={csx(\n \"proton-Menu\",\n \"proton-MenuTrigger__menu\",\n themeClass\n )}\n style={themeStyle as React.CSSProperties}\n position=\"popper\"\n >\n <RadixSelect.Viewport>\n {items.map((item) => (\n <RadixSelect.Item\n key={item.key}\n value={item.key}\n disabled={disabledKeys?.includes(item.key)}\n className=\"proton-Menu__item\"\n >\n <RadixSelect.ItemText>{item.label}</RadixSelect.ItemText>\n </RadixSelect.Item>\n ))}\n </RadixSelect.Viewport>\n </RadixSelect.Content>\n </RadixSelect.Portal>\n </RadixSelect.Root>\n </div>\n );\n}\n\nSelect.displayName = \"ProtonUISelect\";\n"],"names":["SelectButton","forwardRef","disabled","isOpen","children","onClick","isRounded","props","ref","jsx","csx","Select","label","name","isDisabled","disabledKeys","selectedKey","onSelectionChange","defaultSelectedKey","onOpen","onClose","items","testId","setIsOpen","useState","internalSelectedKey","setInternalSelectedKey","themeClass","themeStyle","useTheme","isMobile","useBreakpoint","BREAKPOINTS","triggerRef","useRef","hiddenInputRef","currentSelectedKey","selectedItem","item","handleValueChange","value","handleOpenChange","open","useEffect","actionItems","jsxs","ActionMenu","RadixSelect"],"mappings":"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"}
1
+ {"version":3,"file":"Select.es.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport {\r\n forwardRef,\r\n ReactNode,\r\n RefObject,\r\n useEffect,\r\n useRef,\r\n useState,\r\n} from \"react\";\r\nimport { Select as RadixSelect } from \"radix-ui\";\r\n\r\nimport { BREAKPOINTS } from \"../../constants\";\r\nimport { useBreakpoint } from \"../../hooks/useBreakpoint\";\r\nimport { csx } from \"../../utils\";\r\nimport { ActionMenu, ActionMenuAction } from \"../ActionMenu/ActionMenu\";\r\n\r\nimport \"./Select.css\";\r\nimport \"../Menu/Menu.css\";\r\nimport { useTheme } from \"../ThemeProvider\";\r\n\r\ninterface SelectButtonProps {\r\n disabled?: boolean;\r\n isOpen?: boolean;\r\n children?: ReactNode;\r\n onClick?: () => void;\r\n isRounded?: boolean;\r\n}\r\n\r\nconst SelectButton = forwardRef<HTMLButtonElement, SelectButtonProps>(\r\n (\r\n { disabled, isOpen, children, onClick, isRounded, ...props },\r\n ref: RefObject<HTMLButtonElement>\r\n ) => {\r\n return (\r\n <button\r\n {...props}\r\n ref={ref}\r\n disabled={disabled}\r\n onClick={onClick}\r\n className={csx(\r\n \"proton-Select__trigger\",\r\n disabled && \"proton-Select__trigger--disabled\",\r\n !isOpen && \"proton-Select__trigger--closed\",\r\n isOpen && \"proton-Select__trigger--opened\",\r\n isRounded && \"proton-Select__trigger--rounded\"\r\n )}\r\n >\r\n {children}\r\n </button>\r\n );\r\n }\r\n);\r\nSelectButton.displayName = \"ProtonUISelectButton\";\r\n\r\nexport interface SelectItem {\r\n /** The label to display for the item */\r\n label: string;\r\n\r\n /** The key of the item */\r\n key: string;\r\n\r\n /** The URL to navigate to when the item is clicked, turns item into an a tag */\r\n to?: string;\r\n}\r\n\r\nexport interface SelectProps {\r\n /** Array of keys that should be disabled\r\n * @example [\"Thing 1\", \"Thing 2\"]\r\n */\r\n disabledKeys?: string[];\r\n\r\n /** The key of the default selected item */\r\n defaultSelectedKey?: string;\r\n\r\n /** Test ID for the select */\r\n \"data-testid\"?: string;\r\n\r\n /** Whether the select is disabled */\r\n isDisabled?: boolean;\r\n\r\n /** Array of items to display\r\n * @example [{ key: \"thing-1\", label: \"Thing 1\" }, { key: \"thing-2\", label: \"Thing 2\" }]\r\n * @see {@link SelectItem}\r\n */\r\n items: SelectItem[];\r\n\r\n /** Whether the select button is rounded\r\n * @default false\r\n */\r\n isRounded?: boolean;\r\n\r\n /** Label to display above the select\r\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label#text\r\n */\r\n label?: string;\r\n\r\n /** The name of the select field */\r\n name: string;\r\n\r\n /** Callback fired when the menu closes */\r\n onClose?: () => void;\r\n\r\n /** Callback fired when the menu opens */\r\n onOpen?: () => void;\r\n\r\n /** Callback fired when selection changes */\r\n onSelectionChange?: (key: string) => void;\r\n\r\n /** Currently selected key */\r\n selectedKey?: string;\r\n}\r\n\r\n/**\r\n * A dropdown select menu that opens a popover on desktop and an action menu on mobile.\r\n * Supports controlled and uncontrolled modes.\r\n *\r\n * API:\r\n * - {@link SelectProps}\r\n */\r\nexport function Select({\r\n label,\r\n name,\r\n isDisabled,\r\n disabledKeys,\r\n selectedKey,\r\n onSelectionChange,\r\n defaultSelectedKey,\r\n onOpen, \r\n onClose,\r\n items,\r\n isRounded = false,\r\n \"data-testid\": testId,\r\n}: SelectProps) {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [internalSelectedKey, setInternalSelectedKey] = useState(\r\n selectedKey || defaultSelectedKey || \"\"\r\n );\r\n const { className: themeClass, style: themeStyle } = useTheme();\r\n const isMobile = useBreakpoint(BREAKPOINTS.MEDIUM);\r\n const triggerRef = useRef<HTMLButtonElement>(null);\r\n const hiddenInputRef = useRef<HTMLInputElement>(null);\r\n\r\n // Handle controlled vs uncontrolled state\r\n const currentSelectedKey =\r\n selectedKey !== undefined ? selectedKey : internalSelectedKey;\r\n const selectedItem = items.find((item) => item.key === currentSelectedKey);\r\n\r\n const handleValueChange = (value: string) => {\r\n if (selectedKey === undefined) {\r\n setInternalSelectedKey(value);\r\n }\r\n onSelectionChange?.(value);\r\n\r\n // Update hidden input for form submission\r\n if (hiddenInputRef.current) {\r\n hiddenInputRef.current.value = value;\r\n hiddenInputRef.current.dispatchEvent(\r\n new Event(\"change\", { bubbles: true })\r\n );\r\n }\r\n };\r\n\r\n const handleOpenChange = (open: boolean) => {\r\n setIsOpen(open);\r\n if (open) {\r\n onOpen?.();\r\n } else {\r\n onClose?.();\r\n }\r\n };\r\n\r\n // Update internal state when controlled selectedKey changes\r\n useEffect(() => {\r\n if (selectedKey !== undefined) {\r\n setInternalSelectedKey(selectedKey);\r\n }\r\n }, [selectedKey]);\r\n\r\n const actionItems: ActionMenuAction[] = items.map((item) => ({\r\n key: item.key,\r\n label: item.label,\r\n to: item.to,\r\n onAction: () => {\r\n handleValueChange(item.key);\r\n setIsOpen(false);\r\n },\r\n }));\r\n\r\n if (isMobile) {\r\n return (\r\n <div\r\n className=\"proton-Select\"\r\n aria-label={label || name}\r\n aria-disabled={isDisabled}\r\n >\r\n {label && (\r\n <div className=\"proton-Select__label\" data-testid=\"select-label\">\r\n {label}\r\n </div>\r\n )}\r\n\r\n {/* Hidden input for form submission */}\r\n <input\r\n ref={hiddenInputRef}\r\n type=\"hidden\"\r\n name={name}\r\n value={currentSelectedKey}\r\n data-testid=\"hidden-select-container\"\r\n />\r\n\r\n <SelectButton\r\n isOpen={isOpen}\r\n isRounded={isRounded}\r\n ref={triggerRef}\r\n disabled={isDisabled}\r\n data-testid={testId}\r\n onClick={() => setIsOpen(true)}\r\n >\r\n <div className=\"proton-Select__value\">\r\n {selectedItem ? selectedItem.label : \"Select an option\"}\r\n </div>\r\n <div\r\n className={csx(\r\n \"proton-Select__trigger_icon\",\r\n isOpen && \"proton-Select__trigger_icon--flipped\"\r\n )}\r\n aria-hidden=\"true\"\r\n >\r\n <svg id=\"caret-down\" viewBox=\"0 0 512 512\">\r\n <title>{isOpen ? \"caret down\" : \"caret up\"}</title>\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7L86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"\r\n />\r\n </svg>\r\n </div>\r\n </SelectButton>\r\n\r\n <ActionMenu\r\n isOpen={isOpen}\r\n onClose={() => setIsOpen(false)}\r\n actions={actionItems}\r\n selectedKeys={[currentSelectedKey]}\r\n disabledKeys={disabledKeys}\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n className=\"proton-Select\"\r\n aria-label={label || name}\r\n aria-disabled={isDisabled}\r\n >\r\n {label && (\r\n <div className=\"proton-Select__label\" data-testid=\"select-label\">\r\n {label}\r\n </div>\r\n )}\r\n\r\n {/* Hidden input for form submission */}\r\n <input\r\n ref={hiddenInputRef}\r\n type=\"hidden\"\r\n name={name}\r\n value={currentSelectedKey}\r\n data-testid=\"hidden-select-container\"\r\n />\r\n\r\n <RadixSelect.Root\r\n value={currentSelectedKey}\r\n onValueChange={handleValueChange}\r\n onOpenChange={handleOpenChange}\r\n disabled={isDisabled}\r\n >\r\n <RadixSelect.Trigger asChild>\r\n <SelectButton\r\n isRounded={isRounded}\r\n isOpen={isOpen}\r\n ref={triggerRef}\r\n disabled={isDisabled}\r\n data-testid={testId}\r\n >\r\n <RadixSelect.Value\r\n className=\"proton-Select__value\"\r\n placeholder=\"Select an option\"\r\n >\r\n {selectedItem ? selectedItem.label : \"Select an option\"}\r\n </RadixSelect.Value>\r\n <RadixSelect.Icon asChild>\r\n <div\r\n className={csx(\r\n \"proton-Select__trigger_icon\",\r\n isOpen && \"proton-Select__trigger_icon--flipped\"\r\n )}\r\n aria-hidden=\"true\"\r\n >\r\n <svg id=\"caret-down\" viewBox=\"0 0 512 512\">\r\n <title>{isOpen ? \"caret down\" : \"caret up\"}</title>\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7L86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"\r\n />\r\n </svg>\r\n </div>\r\n </RadixSelect.Icon>\r\n </SelectButton>\r\n </RadixSelect.Trigger>\r\n\r\n <RadixSelect.Portal>\r\n <RadixSelect.Content\r\n className={csx(\r\n \"proton-Menu\",\r\n \"proton-MenuTrigger__menu\",\r\n themeClass\r\n )}\r\n style={themeStyle as React.CSSProperties}\r\n position=\"popper\"\r\n >\r\n <RadixSelect.Viewport>\r\n {items.map((item) => (\r\n <RadixSelect.Item\r\n key={item.key}\r\n value={item.key}\r\n disabled={disabledKeys?.includes(item.key)}\r\n className=\"proton-Menu__item\"\r\n >\r\n <RadixSelect.ItemText>{item.label}</RadixSelect.ItemText>\r\n </RadixSelect.Item>\r\n ))}\r\n </RadixSelect.Viewport>\r\n </RadixSelect.Content>\r\n </RadixSelect.Portal>\r\n </RadixSelect.Root>\r\n </div>\r\n );\r\n}\r\n\r\nSelect.displayName = \"ProtonUISelect\";\r\n"],"names":["SelectButton","forwardRef","disabled","isOpen","children","onClick","isRounded","props","ref","jsx","csx","Select","label","name","isDisabled","disabledKeys","selectedKey","onSelectionChange","defaultSelectedKey","onOpen","onClose","items","testId","setIsOpen","useState","internalSelectedKey","setInternalSelectedKey","themeClass","themeStyle","useTheme","isMobile","useBreakpoint","BREAKPOINTS","triggerRef","useRef","hiddenInputRef","currentSelectedKey","selectedItem","item","handleValueChange","value","handleOpenChange","open","useEffect","actionItems","jsxs","ActionMenu","RadixSelect"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../node_modules/react/jsx-runtime.cjs.js"),a=require("react"),d=require("../../node_modules/@react-aria/switch/dist/useSwitch.cjs.js"),r=require("../../node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.cjs.js"),c=require("../../node_modules/@react-stately/toggle/dist/useToggleState.cjs.js");;/* empty css */const o=require("../../utils/string.cjs.js");function u(e){let s={...e,isSelected:e.isOn,"data-testid":void 0},l=a.useRef(null),i=c.useToggleState(s),{inputProps:n}=d.useSwitch(s,i,l);return t.jsxRuntimeExports.jsxs("label",{className:o.csx("proton-Switch",e.isDisabled&&"proton-Switch--disabled",i.isSelected&&"proton-Switch--on"),"data-on":i.isSelected||void 0,"data-disabled":e.isDisabled||void 0,"data-testid":e["data-testid"]||void 0,"aria-label":e.label||void 0,children:[t.jsxRuntimeExports.jsx(r.VisuallyHidden,{children:t.jsxRuntimeExports.jsx("input",{...n,ref:l})}),e.label&&t.jsxRuntimeExports.jsx("div",{className:"proton-Switch__label",children:e.label}),t.jsxRuntimeExports.jsxs("div",{className:"proton-Switch__wrapper",children:[t.jsxRuntimeExports.jsx("div",{className:"proton-Switch__toggle",children:t.jsxRuntimeExports.jsx("div",{className:"proton-Switch__slider"})}),e.children&&t.jsxRuntimeExports.jsx("div",{className:"proton-Switch__description",children:e.children})]})]})}exports.Switch=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../node_modules/react/jsx-runtime.cjs.js"),r=require("react"),a=require("../../node_modules/@react-aria/switch/dist/useSwitch.cjs.js"),d=require("../../node_modules/@react-aria/visually-hidden/dist/VisuallyHidden.cjs.js"),c=require("../../node_modules/@react-stately/toggle/dist/useToggleState.cjs.js");;/* empty css */const o=require("../../utils/string.cjs.js");function u(e){let s={...e,isSelected:e.isOn,"data-testid":void 0},l=r.useRef(null),i=c.useToggleState(s),{inputProps:n}=a.useSwitch(s,i,l);return t.jsxRuntimeExports.jsxs("label",{className:o.csx("proton-Switch",e.isDisabled&&"proton-Switch--disabled",i.isSelected&&"proton-Switch--on"),"data-on":i.isSelected||void 0,"data-disabled":e.isDisabled||void 0,"data-testid":e["data-testid"]||void 0,"aria-label":e.label||void 0,children:[t.jsxRuntimeExports.jsx(d.VisuallyHidden,{children:t.jsxRuntimeExports.jsx("input",{...n,ref:l})}),e.label&&t.jsxRuntimeExports.jsx("div",{className:"proton-Switch__label",children:e.label}),t.jsxRuntimeExports.jsxs("div",{className:"proton-Switch__wrapper",children:[t.jsxRuntimeExports.jsx("div",{className:"proton-Switch__toggle",children:t.jsxRuntimeExports.jsx("div",{className:"proton-Switch__slider"})}),e.children&&t.jsxRuntimeExports.jsx("div",{className:"proton-Switch__description",children:e.children})]})]})}exports.Switch=u;
2
2
  //# sourceMappingURL=Switch.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.cjs.js","sources":["../../../src/components/Switch/Switch.tsx"],"sourcesContent":["\"use client\";\n\nimport { useRef } from \"react\";\nimport { useSwitch } from \"@react-aria/switch\";\nimport { VisuallyHidden } from \"@react-aria/visually-hidden\";\nimport { useToggleState } from \"@react-stately/toggle\";\n\nimport { csx } from \"../../utils\";\n\nimport \"./Switch.css\";\n\nexport interface SwitchProps {\n /**\n * Whether the Switch is in the 'on' state (uncontrolled).\n */\n defaultOn?: boolean;\n\n /**\n * Whether the Switch is in the 'on' state. Providing this prop causes the\n * component to become controlled.\n */\n isOn?: boolean;\n\n /**\n * Should the input be non-interactive?\n */\n isDisabled?: boolean;\n\n /**\n * Called when the Switch's on state changes.\n */\n onChange?: (isOn: boolean) => void;\n\n /**\n * The string used for the input label. Forwarded to `aria-label`.\n */\n label?: string;\n\n /**\n * The text or component to be rendered as the Switch's description.\n */\n children?: React.ReactNode;\n}\n\n/**\n * A toggle switch component for boolean state control with support for controlled and uncontrolled modes.\n *\n * API:\n * - {@link SwitchProps}\n */\nexport function Switch(props: SwitchProps) {\n let sanitizedProps = {\n ...props,\n isSelected: props.isOn,\n \"data-testid\": undefined,\n };\n\n let ref = useRef(null);\n\n let state = useToggleState(sanitizedProps);\n let { inputProps } = useSwitch(sanitizedProps, state, ref);\n\n return (\n <label\n className={csx(\n \"proton-Switch\",\n props.isDisabled && \"proton-Switch--disabled\",\n state.isSelected && \"proton-Switch--on\"\n )}\n data-on={state.isSelected || undefined}\n data-disabled={props.isDisabled || undefined}\n data-testid={props[\"data-testid\"] || undefined}\n aria-label={props.label || undefined}\n >\n <VisuallyHidden>\n <input {...inputProps} ref={ref} />\n </VisuallyHidden>\n {props.label && <div className=\"proton-Switch__label\">{props.label}</div>}\n <div className=\"proton-Switch__wrapper\">\n <div className=\"proton-Switch__toggle\">\n <div className=\"proton-Switch__slider\"></div>\n </div>\n {props.children && (\n <div className=\"proton-Switch__description\">{props.children}</div>\n )}\n </div>\n </label>\n );\n}\n"],"names":["Switch","props","sanitizedProps","ref","useRef","state","useToggleState","inputProps","useSwitch","jsxs","csx","jsx","VisuallyHidden"],"mappings":"+dAkDO,SAASA,EAAOC,EAAoB,CACzC,IAAIC,EAAiB,CACnB,GAAGD,EACH,WAAYA,EAAM,KAClB,cAAe,MAAA,EAGbE,EAAMC,SAAO,IAAI,EAEjBC,EAAQC,iBAAeJ,CAAc,EACrC,CAAE,WAAAK,CAAW,EAAIC,EAAAA,UAAUN,EAAgBG,EAAOF,CAAG,EAGvD,OAAAM,EAAA,kBAAA,KAAC,QAAA,CACC,UAAWC,EAAA,IACT,gBACAT,EAAM,YAAc,0BACpBI,EAAM,YAAc,mBACtB,EACA,UAASA,EAAM,YAAc,OAC7B,gBAAeJ,EAAM,YAAc,OACnC,cAAaA,EAAM,aAAa,GAAK,OACrC,aAAYA,EAAM,OAAS,OAE3B,SAAA,CAAAU,wBAACC,EAAAA,gBACC,SAACD,EAAA,kBAAA,IAAA,QAAA,CAAO,GAAGJ,EAAY,IAAAJ,CAAU,CAAA,EACnC,EACCF,EAAM,OAASU,EAAA,kBAAA,IAAC,OAAI,UAAU,uBAAwB,WAAM,MAAM,EACnEF,EAAAA,kBAAAA,KAAC,MAAI,CAAA,UAAU,yBACb,SAAA,CAAAE,EAAAA,kBAAAA,IAAC,OAAI,UAAU,wBACb,iCAAC,MAAI,CAAA,UAAU,wBAAwB,CACzC,CAAA,EACCV,EAAM,UACLU,EAAA,kBAAA,IAAC,OAAI,UAAU,6BAA8B,WAAM,SAAS,CAAA,EAEhE,CAAA,CAAA,CAAA,CAGN"}
1
+ {"version":3,"file":"Switch.cjs.js","sources":["../../../src/components/Switch/Switch.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { useRef } from \"react\";\r\nimport { useSwitch } from \"@react-aria/switch\";\r\nimport { VisuallyHidden } from \"@react-aria/visually-hidden\";\r\nimport { useToggleState } from \"@react-stately/toggle\";\r\n\r\nimport { csx } from \"../../utils\";\r\n\r\nimport \"./Switch.css\";\r\n\r\nexport interface SwitchProps {\r\n /**\r\n * Whether the Switch is in the 'on' state (uncontrolled).\r\n */\r\n defaultOn?: boolean;\r\n\r\n /**\r\n * Whether the Switch is in the 'on' state. Providing this prop causes the\r\n * component to become controlled.\r\n */\r\n isOn?: boolean;\r\n\r\n /**\r\n * Should the input be non-interactive?\r\n */\r\n isDisabled?: boolean;\r\n\r\n /**\r\n * Called when the Switch's on state changes.\r\n */\r\n onChange?: (isOn: boolean) => void;\r\n\r\n /**\r\n * The string used for the input label. Forwarded to `aria-label`.\r\n */\r\n label?: string;\r\n\r\n /**\r\n * The text or component to be rendered as the Switch's description.\r\n */\r\n children?: React.ReactNode;\r\n}\r\n\r\n/**\r\n * A toggle switch component for boolean state control with support for controlled and uncontrolled modes.\r\n *\r\n * API:\r\n * - {@link SwitchProps}\r\n */\r\nexport function Switch(props: SwitchProps) {\r\n let sanitizedProps = {\r\n ...props,\r\n isSelected: props.isOn,\r\n \"data-testid\": undefined,\r\n };\r\n\r\n let ref = useRef(null);\r\n\r\n let state = useToggleState(sanitizedProps);\r\n let { inputProps } = useSwitch(sanitizedProps, state, ref);\r\n\r\n return (\r\n <label\r\n className={csx(\r\n \"proton-Switch\",\r\n props.isDisabled && \"proton-Switch--disabled\",\r\n state.isSelected && \"proton-Switch--on\"\r\n )}\r\n data-on={state.isSelected || undefined}\r\n data-disabled={props.isDisabled || undefined}\r\n data-testid={props[\"data-testid\"] || undefined}\r\n aria-label={props.label || undefined}\r\n >\r\n <VisuallyHidden>\r\n <input {...inputProps} ref={ref} />\r\n </VisuallyHidden>\r\n {props.label && <div className=\"proton-Switch__label\">{props.label}</div>}\r\n <div className=\"proton-Switch__wrapper\">\r\n <div className=\"proton-Switch__toggle\">\r\n <div className=\"proton-Switch__slider\"></div>\r\n </div>\r\n {props.children && (\r\n <div className=\"proton-Switch__description\">{props.children}</div>\r\n )}\r\n </div>\r\n </label>\r\n );\r\n}\r\n"],"names":["Switch","props","sanitizedProps","ref","useRef","state","useToggleState","inputProps","useSwitch","jsxs","csx","jsx","VisuallyHidden"],"mappings":"+dAkDO,SAASA,EAAOC,EAAoB,CACzC,IAAIC,EAAiB,CACnB,GAAGD,EACH,WAAYA,EAAM,KAClB,cAAe,MAAA,EAGbE,EAAMC,SAAO,IAAI,EAEjBC,EAAQC,iBAAeJ,CAAc,EACrC,CAAE,WAAAK,CAAW,EAAIC,EAAAA,UAAUN,EAAgBG,EAAOF,CAAG,EAGvD,OAAAM,EAAA,kBAAA,KAAC,QAAA,CACC,UAAWC,EAAA,IACT,gBACAT,EAAM,YAAc,0BACpBI,EAAM,YAAc,mBACtB,EACA,UAASA,EAAM,YAAc,OAC7B,gBAAeJ,EAAM,YAAc,OACnC,cAAaA,EAAM,aAAa,GAAK,OACrC,aAAYA,EAAM,OAAS,OAE3B,SAAA,CAAAU,wBAACC,EAAAA,gBACC,SAACD,EAAA,kBAAA,IAAA,QAAA,CAAO,GAAGJ,EAAY,IAAAJ,CAAU,CAAA,EACnC,EACCF,EAAM,OAASU,EAAA,kBAAA,IAAC,OAAI,UAAU,uBAAwB,WAAM,MAAM,EACnEF,EAAAA,kBAAAA,KAAC,MAAI,CAAA,UAAU,yBACb,SAAA,CAAAE,EAAAA,kBAAAA,IAAC,OAAI,UAAU,wBACb,iCAAC,MAAI,CAAA,UAAU,wBAAwB,CACzC,CAAA,EACCV,EAAM,UACLU,EAAA,kBAAA,IAAC,OAAI,UAAU,6BAA8B,WAAM,SAAS,CAAA,EAEhE,CAAA,CAAA,CAAA,CAGN"}
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.es.js","sources":["../../../src/components/Switch/Switch.tsx"],"sourcesContent":["\"use client\";\n\nimport { useRef } from \"react\";\nimport { useSwitch } from \"@react-aria/switch\";\nimport { VisuallyHidden } from \"@react-aria/visually-hidden\";\nimport { useToggleState } from \"@react-stately/toggle\";\n\nimport { csx } from \"../../utils\";\n\nimport \"./Switch.css\";\n\nexport interface SwitchProps {\n /**\n * Whether the Switch is in the 'on' state (uncontrolled).\n */\n defaultOn?: boolean;\n\n /**\n * Whether the Switch is in the 'on' state. Providing this prop causes the\n * component to become controlled.\n */\n isOn?: boolean;\n\n /**\n * Should the input be non-interactive?\n */\n isDisabled?: boolean;\n\n /**\n * Called when the Switch's on state changes.\n */\n onChange?: (isOn: boolean) => void;\n\n /**\n * The string used for the input label. Forwarded to `aria-label`.\n */\n label?: string;\n\n /**\n * The text or component to be rendered as the Switch's description.\n */\n children?: React.ReactNode;\n}\n\n/**\n * A toggle switch component for boolean state control with support for controlled and uncontrolled modes.\n *\n * API:\n * - {@link SwitchProps}\n */\nexport function Switch(props: SwitchProps) {\n let sanitizedProps = {\n ...props,\n isSelected: props.isOn,\n \"data-testid\": undefined,\n };\n\n let ref = useRef(null);\n\n let state = useToggleState(sanitizedProps);\n let { inputProps } = useSwitch(sanitizedProps, state, ref);\n\n return (\n <label\n className={csx(\n \"proton-Switch\",\n props.isDisabled && \"proton-Switch--disabled\",\n state.isSelected && \"proton-Switch--on\"\n )}\n data-on={state.isSelected || undefined}\n data-disabled={props.isDisabled || undefined}\n data-testid={props[\"data-testid\"] || undefined}\n aria-label={props.label || undefined}\n >\n <VisuallyHidden>\n <input {...inputProps} ref={ref} />\n </VisuallyHidden>\n {props.label && <div className=\"proton-Switch__label\">{props.label}</div>}\n <div className=\"proton-Switch__wrapper\">\n <div className=\"proton-Switch__toggle\">\n <div className=\"proton-Switch__slider\"></div>\n </div>\n {props.children && (\n <div className=\"proton-Switch__description\">{props.children}</div>\n )}\n </div>\n </label>\n );\n}\n"],"names":["Switch","props","sanitizedProps","ref","useRef","state","useToggleState","inputProps","useSwitch","jsxs","csx","jsx","VisuallyHidden"],"mappings":";;;;;;;AAkDO,SAASA,EAAOC,GAAoB;AACzC,MAAIC,IAAiB;AAAA,IACnB,GAAGD;AAAA,IACH,YAAYA,EAAM;AAAA,IAClB,eAAe;AAAA,EAAA,GAGbE,IAAMC,EAAO,IAAI,GAEjBC,IAAQC,EAAeJ,CAAc,GACrC,EAAE,YAAAK,EAAW,IAAIC,EAAUN,GAAgBG,GAAOF,CAAG;AAGvD,SAAAM,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAT,EAAM,cAAc;AAAA,QACpBI,EAAM,cAAc;AAAA,MACtB;AAAA,MACA,WAASA,EAAM,cAAc;AAAA,MAC7B,iBAAeJ,EAAM,cAAc;AAAA,MACnC,eAAaA,EAAM,aAAa,KAAK;AAAA,MACrC,cAAYA,EAAM,SAAS;AAAA,MAE3B,UAAA;AAAA,QAAAU,gBAAAA,MAACC,KACC,UAACD,gBAAAA,EAAA,IAAA,SAAA,EAAO,GAAGJ,GAAY,KAAAJ,EAAU,CAAA,GACnC;AAAA,QACCF,EAAM,SAASU,gBAAAA,EAAA,IAAC,SAAI,WAAU,wBAAwB,YAAM,OAAM;AAAA,QACnEF,gBAAAA,EAAAA,KAAC,OAAI,EAAA,WAAU,0BACb,UAAA;AAAA,UAAAE,gBAAAA,EAAAA,IAAC,SAAI,WAAU,yBACb,gCAAC,OAAI,EAAA,WAAU,yBAAwB,EACzC,CAAA;AAAA,UACCV,EAAM,YACLU,gBAAAA,EAAA,IAAC,SAAI,WAAU,8BAA8B,YAAM,UAAS;AAAA,QAAA,GAEhE;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"Switch.es.js","sources":["../../../src/components/Switch/Switch.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { useRef } from \"react\";\r\nimport { useSwitch } from \"@react-aria/switch\";\r\nimport { VisuallyHidden } from \"@react-aria/visually-hidden\";\r\nimport { useToggleState } from \"@react-stately/toggle\";\r\n\r\nimport { csx } from \"../../utils\";\r\n\r\nimport \"./Switch.css\";\r\n\r\nexport interface SwitchProps {\r\n /**\r\n * Whether the Switch is in the 'on' state (uncontrolled).\r\n */\r\n defaultOn?: boolean;\r\n\r\n /**\r\n * Whether the Switch is in the 'on' state. Providing this prop causes the\r\n * component to become controlled.\r\n */\r\n isOn?: boolean;\r\n\r\n /**\r\n * Should the input be non-interactive?\r\n */\r\n isDisabled?: boolean;\r\n\r\n /**\r\n * Called when the Switch's on state changes.\r\n */\r\n onChange?: (isOn: boolean) => void;\r\n\r\n /**\r\n * The string used for the input label. Forwarded to `aria-label`.\r\n */\r\n label?: string;\r\n\r\n /**\r\n * The text or component to be rendered as the Switch's description.\r\n */\r\n children?: React.ReactNode;\r\n}\r\n\r\n/**\r\n * A toggle switch component for boolean state control with support for controlled and uncontrolled modes.\r\n *\r\n * API:\r\n * - {@link SwitchProps}\r\n */\r\nexport function Switch(props: SwitchProps) {\r\n let sanitizedProps = {\r\n ...props,\r\n isSelected: props.isOn,\r\n \"data-testid\": undefined,\r\n };\r\n\r\n let ref = useRef(null);\r\n\r\n let state = useToggleState(sanitizedProps);\r\n let { inputProps } = useSwitch(sanitizedProps, state, ref);\r\n\r\n return (\r\n <label\r\n className={csx(\r\n \"proton-Switch\",\r\n props.isDisabled && \"proton-Switch--disabled\",\r\n state.isSelected && \"proton-Switch--on\"\r\n )}\r\n data-on={state.isSelected || undefined}\r\n data-disabled={props.isDisabled || undefined}\r\n data-testid={props[\"data-testid\"] || undefined}\r\n aria-label={props.label || undefined}\r\n >\r\n <VisuallyHidden>\r\n <input {...inputProps} ref={ref} />\r\n </VisuallyHidden>\r\n {props.label && <div className=\"proton-Switch__label\">{props.label}</div>}\r\n <div className=\"proton-Switch__wrapper\">\r\n <div className=\"proton-Switch__toggle\">\r\n <div className=\"proton-Switch__slider\"></div>\r\n </div>\r\n {props.children && (\r\n <div className=\"proton-Switch__description\">{props.children}</div>\r\n )}\r\n </div>\r\n </label>\r\n );\r\n}\r\n"],"names":["Switch","props","sanitizedProps","ref","useRef","state","useToggleState","inputProps","useSwitch","jsxs","csx","jsx","VisuallyHidden"],"mappings":";;;;;;;AAkDO,SAASA,EAAOC,GAAoB;AACzC,MAAIC,IAAiB;AAAA,IACnB,GAAGD;AAAA,IACH,YAAYA,EAAM;AAAA,IAClB,eAAe;AAAA,EAAA,GAGbE,IAAMC,EAAO,IAAI,GAEjBC,IAAQC,EAAeJ,CAAc,GACrC,EAAE,YAAAK,EAAW,IAAIC,EAAUN,GAAgBG,GAAOF,CAAG;AAGvD,SAAAM,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAT,EAAM,cAAc;AAAA,QACpBI,EAAM,cAAc;AAAA,MACtB;AAAA,MACA,WAASA,EAAM,cAAc;AAAA,MAC7B,iBAAeJ,EAAM,cAAc;AAAA,MACnC,eAAaA,EAAM,aAAa,KAAK;AAAA,MACrC,cAAYA,EAAM,SAAS;AAAA,MAE3B,UAAA;AAAA,QAAAU,gBAAAA,MAACC,KACC,UAACD,gBAAAA,EAAA,IAAA,SAAA,EAAO,GAAGJ,GAAY,KAAAJ,EAAU,CAAA,GACnC;AAAA,QACCF,EAAM,SAASU,gBAAAA,EAAA,IAAC,SAAI,WAAU,wBAAwB,YAAM,OAAM;AAAA,QACnEF,gBAAAA,EAAAA,KAAC,OAAI,EAAA,WAAU,0BACb,UAAA;AAAA,UAAAE,gBAAAA,EAAAA,IAAC,SAAI,WAAU,yBACb,gCAAC,OAAI,EAAA,WAAU,yBAAwB,EACzC,CAAA;AAAA,UACCV,EAAM,YACLU,gBAAAA,EAAA,IAAC,SAAI,WAAU,8BAA8B,YAAM,UAAS;AAAA,QAAA,GAEhE;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CompoundComponents.cjs.js","sources":["../../../../src/components/Table/Collection/CompoundComponents.tsx"],"sourcesContent":["import { AriaAttributes, ReactElement, ReactNode } from \"react\";\n\n/*\n Compound reference components used to build the table collection.\n They are not rendered, but used to parse the table structure.\n*/\n\ntype TableColumnElement = ReactElement<TableColumnProps, typeof TableColumn>;\ntype TableRowElement = ReactElement<TableRowProps, typeof TableRow>;\ntype TableCellElement = ReactElement<TableCellProps, typeof TableCell>;\n\nexport interface TableHeaderProps {\n children: TableColumnElement | TableColumnElement[];\n isHidden?: boolean;\n}\n\nexport interface TableColumnProps {\n id: string;\n children: ReactNode;\n \"aria-sort\"?: AriaAttributes[\"aria-sort\"];\n}\n\nexport interface TableBodyProps {\n children: TableRowElement | TableRowElement[];\n}\n\nexport interface TableRowProps {\n key?: string | number;\n children: TableCellElement | TableCellElement[];\n onClick?: () => void;\n}\n\nexport interface TableCellProps {\n columnKey?: string;\n children?: ReactNode;\n colSpan?: number;\n}\n\n// Type-safe component definitions that enforce proper children\nexport const TableHeader = ({ ...props }: TableHeaderProps) => {\n return null; // This is just a marker component for parsing\n};\n\nexport const TableColumn = ({ ...props }: TableColumnProps) => {\n return null; // This is just a marker component for parsing\n};\n\nexport const TableBody = ({ ...props }: TableBodyProps) => {\n return null; // This is just a marker component for parsing\n};\n\nexport const TableRow = ({ ...props }: TableRowProps) => {\n return null; // This is just a marker component for parsing\n};\n\nexport const TableCell = ({ ...props }: TableCellProps) => {\n return null; // This is just a marker component for parsing\n};\n"],"names":["TableHeader","props","TableColumn","TableBody","TableRow","TableCell"],"mappings":"gFAuCO,MAAMA,EAAc,CAAC,CAAE,GAAGC,KACxB,KAGIC,EAAc,CAAC,CAAE,GAAGD,KACxB,KAGIE,EAAY,CAAC,CAAE,GAAGF,KACtB,KAGIG,EAAW,CAAC,CAAE,GAAGH,KACrB,KAGII,EAAY,CAAC,CAAE,GAAGJ,KACtB"}
1
+ {"version":3,"file":"CompoundComponents.cjs.js","sources":["../../../../src/components/Table/Collection/CompoundComponents.tsx"],"sourcesContent":["import { AriaAttributes, ReactElement, ReactNode } from \"react\";\r\n\r\n/*\r\n Compound reference components used to build the table collection.\r\n They are not rendered, but used to parse the table structure.\r\n*/\r\n\r\ntype TableColumnElement = ReactElement<TableColumnProps, typeof TableColumn>;\r\ntype TableRowElement = ReactElement<TableRowProps, typeof TableRow>;\r\ntype TableCellElement = ReactElement<TableCellProps, typeof TableCell>;\r\n\r\nexport interface TableHeaderProps {\r\n children: TableColumnElement | TableColumnElement[];\r\n isHidden?: boolean;\r\n}\r\n\r\nexport interface TableColumnProps {\r\n id: string;\r\n children: ReactNode;\r\n \"aria-sort\"?: AriaAttributes[\"aria-sort\"];\r\n}\r\n\r\nexport interface TableBodyProps {\r\n children: TableRowElement | TableRowElement[];\r\n}\r\n\r\nexport interface TableRowProps {\r\n key?: string | number;\r\n children: TableCellElement | TableCellElement[];\r\n onClick?: () => void;\r\n}\r\n\r\nexport interface TableCellProps {\r\n columnKey?: string;\r\n children?: ReactNode;\r\n colSpan?: number;\r\n}\r\n\r\n// Type-safe component definitions that enforce proper children\r\nexport const TableHeader = ({ ...props }: TableHeaderProps) => {\r\n return null; // This is just a marker component for parsing\r\n};\r\n\r\nexport const TableColumn = ({ ...props }: TableColumnProps) => {\r\n return null; // This is just a marker component for parsing\r\n};\r\n\r\nexport const TableBody = ({ ...props }: TableBodyProps) => {\r\n return null; // This is just a marker component for parsing\r\n};\r\n\r\nexport const TableRow = ({ ...props }: TableRowProps) => {\r\n return null; // This is just a marker component for parsing\r\n};\r\n\r\nexport const TableCell = ({ ...props }: TableCellProps) => {\r\n return null; // This is just a marker component for parsing\r\n};\r\n"],"names":["TableHeader","props","TableColumn","TableBody","TableRow","TableCell"],"mappings":"gFAuCO,MAAMA,EAAc,CAAC,CAAE,GAAGC,KACxB,KAGIC,EAAc,CAAC,CAAE,GAAGD,KACxB,KAGIE,EAAY,CAAC,CAAE,GAAGF,KACtB,KAGIG,EAAW,CAAC,CAAE,GAAGH,KACrB,KAGII,EAAY,CAAC,CAAE,GAAGJ,KACtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"CompoundComponents.es.js","sources":["../../../../src/components/Table/Collection/CompoundComponents.tsx"],"sourcesContent":["import { AriaAttributes, ReactElement, ReactNode } from \"react\";\n\n/*\n Compound reference components used to build the table collection.\n They are not rendered, but used to parse the table structure.\n*/\n\ntype TableColumnElement = ReactElement<TableColumnProps, typeof TableColumn>;\ntype TableRowElement = ReactElement<TableRowProps, typeof TableRow>;\ntype TableCellElement = ReactElement<TableCellProps, typeof TableCell>;\n\nexport interface TableHeaderProps {\n children: TableColumnElement | TableColumnElement[];\n isHidden?: boolean;\n}\n\nexport interface TableColumnProps {\n id: string;\n children: ReactNode;\n \"aria-sort\"?: AriaAttributes[\"aria-sort\"];\n}\n\nexport interface TableBodyProps {\n children: TableRowElement | TableRowElement[];\n}\n\nexport interface TableRowProps {\n key?: string | number;\n children: TableCellElement | TableCellElement[];\n onClick?: () => void;\n}\n\nexport interface TableCellProps {\n columnKey?: string;\n children?: ReactNode;\n colSpan?: number;\n}\n\n// Type-safe component definitions that enforce proper children\nexport const TableHeader = ({ ...props }: TableHeaderProps) => {\n return null; // This is just a marker component for parsing\n};\n\nexport const TableColumn = ({ ...props }: TableColumnProps) => {\n return null; // This is just a marker component for parsing\n};\n\nexport const TableBody = ({ ...props }: TableBodyProps) => {\n return null; // This is just a marker component for parsing\n};\n\nexport const TableRow = ({ ...props }: TableRowProps) => {\n return null; // This is just a marker component for parsing\n};\n\nexport const TableCell = ({ ...props }: TableCellProps) => {\n return null; // This is just a marker component for parsing\n};\n"],"names":["TableHeader","props","TableColumn","TableBody","TableRow","TableCell"],"mappings":"AAuCO,MAAMA,IAAc,CAAC,EAAE,GAAGC,QACxB,MAGIC,IAAc,CAAC,EAAE,GAAGD,QACxB,MAGIE,IAAY,CAAC,EAAE,GAAGF,QACtB,MAGIG,IAAW,CAAC,EAAE,GAAGH,QACrB,MAGII,IAAY,CAAC,EAAE,GAAGJ,QACtB;"}
1
+ {"version":3,"file":"CompoundComponents.es.js","sources":["../../../../src/components/Table/Collection/CompoundComponents.tsx"],"sourcesContent":["import { AriaAttributes, ReactElement, ReactNode } from \"react\";\r\n\r\n/*\r\n Compound reference components used to build the table collection.\r\n They are not rendered, but used to parse the table structure.\r\n*/\r\n\r\ntype TableColumnElement = ReactElement<TableColumnProps, typeof TableColumn>;\r\ntype TableRowElement = ReactElement<TableRowProps, typeof TableRow>;\r\ntype TableCellElement = ReactElement<TableCellProps, typeof TableCell>;\r\n\r\nexport interface TableHeaderProps {\r\n children: TableColumnElement | TableColumnElement[];\r\n isHidden?: boolean;\r\n}\r\n\r\nexport interface TableColumnProps {\r\n id: string;\r\n children: ReactNode;\r\n \"aria-sort\"?: AriaAttributes[\"aria-sort\"];\r\n}\r\n\r\nexport interface TableBodyProps {\r\n children: TableRowElement | TableRowElement[];\r\n}\r\n\r\nexport interface TableRowProps {\r\n key?: string | number;\r\n children: TableCellElement | TableCellElement[];\r\n onClick?: () => void;\r\n}\r\n\r\nexport interface TableCellProps {\r\n columnKey?: string;\r\n children?: ReactNode;\r\n colSpan?: number;\r\n}\r\n\r\n// Type-safe component definitions that enforce proper children\r\nexport const TableHeader = ({ ...props }: TableHeaderProps) => {\r\n return null; // This is just a marker component for parsing\r\n};\r\n\r\nexport const TableColumn = ({ ...props }: TableColumnProps) => {\r\n return null; // This is just a marker component for parsing\r\n};\r\n\r\nexport const TableBody = ({ ...props }: TableBodyProps) => {\r\n return null; // This is just a marker component for parsing\r\n};\r\n\r\nexport const TableRow = ({ ...props }: TableRowProps) => {\r\n return null; // This is just a marker component for parsing\r\n};\r\n\r\nexport const TableCell = ({ ...props }: TableCellProps) => {\r\n return null; // This is just a marker component for parsing\r\n};\r\n"],"names":["TableHeader","props","TableColumn","TableBody","TableRow","TableCell"],"mappings":"AAuCO,MAAMA,IAAc,CAAC,EAAE,GAAGC,QACxB,MAGIC,IAAc,CAAC,EAAE,GAAGD,QACxB,MAGIE,IAAY,CAAC,EAAE,GAAGF,QACtB,MAGIG,IAAW,CAAC,EAAE,GAAGH,QACrB,MAGII,IAAY,CAAC,EAAE,GAAGJ,QACtB;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),t=require("./CompoundComponents.cjs.js");function i(a,o){return a.type===o}function m(a){const o=[],c=[];return n.Children.forEach(a,s=>{if(n.isValidElement(s)){if(i(s,t.TableHeader)){const l=s.props;n.Children.forEach(l.children,e=>{if(n.isValidElement(e)&&i(e,t.TableColumn)){const r=e.props;o.push({key:r.id,header:r.children,isHidden:l.isHidden||!1,ariaSort:r["aria-sort"]})}})}if(i(s,t.TableBody)){const l=s.props;n.Children.forEach(l.children,e=>{if(n.isValidElement(e)&&i(e,t.TableRow)){const r=e.props,u=[];let f=0;n.Children.forEach(r.children,p=>{var y;if(n.isValidElement(p)&&i(p,t.TableCell)){const d=p.props,b=d.columnKey||((y=o[f])==null?void 0:y.key);b&&u.push({columnKey:b,value:d.children,colSpan:d.colSpan}),f++}}),c.push({key:e.key||r.key||String(c.length),cells:u,onClick:r.onClick})}})}}}),{columns:o,rows:c}}exports.parseTableChildren=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),t=require("./CompoundComponents.cjs.js");function i(a,o){return a.type===o}function b(a){const o=[],c=[];return n.Children.forEach(a,s=>{if(n.isValidElement(s)){if(i(s,t.TableHeader)){const l=s.props;n.Children.forEach(l.children,e=>{if(n.isValidElement(e)&&i(e,t.TableColumn)){const r=e.props;o.push({key:r.id,header:r.children,isHidden:l.isHidden||!1,ariaSort:r["aria-sort"]})}})}if(i(s,t.TableBody)){const l=s.props;n.Children.forEach(l.children,e=>{if(n.isValidElement(e)&&i(e,t.TableRow)){const r=e.props,u=[];let f=0;n.Children.forEach(r.children,p=>{var y;if(n.isValidElement(p)&&i(p,t.TableCell)){const d=p.props,m=d.columnKey||((y=o[f])==null?void 0:y.key);m&&u.push({columnKey:m,value:d.children,colSpan:d.colSpan}),f++}}),c.push({key:e.key||r.key||String(c.length),cells:u,onClick:r.onClick})}})}}}),{columns:o,rows:c}}exports.parseTableChildren=b;
2
2
  //# sourceMappingURL=collectionParser.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collectionParser.cjs.js","sources":["../../../../src/components/Table/Collection/collectionParser.ts"],"sourcesContent":["import {\n Children,\n isValidElement,\n ReactElement,\n ReactNode,\n ComponentType,\n} from \"react\";\n\nimport {\n TableHeader,\n TableColumn as TableColumnComp,\n TableBody,\n TableRow as TableRowComp,\n TableCell as TableCellComp,\n type TableHeaderProps,\n type TableColumnProps,\n type TableBodyProps,\n type TableRowProps,\n type TableCellProps,\n} from \"./CompoundComponents\";\nimport type {\n TableColumnData,\n TableData,\n TableRowData,\n TableCellData,\n} from \"../types\";\n\nfunction isComponentType(\n element: ReactElement,\n componentType: ComponentType<any>\n): boolean {\n return element.type === componentType;\n}\n\n/**\n * Parses JSX table structure into collection data format\n */\nexport function parseTableChildren(children: ReactNode): TableData {\n const columns: TableColumnData[] = [];\n const rows: TableRowData[] = [];\n\n Children.forEach(children, (child) => {\n if (!isValidElement(child)) return;\n\n // Parse columns from header\n if (isComponentType(child, TableHeader)) {\n const headerProps = child.props as TableHeaderProps;\n\n Children.forEach(headerProps.children, (columnChild) => {\n if (\n isValidElement(columnChild) &&\n isComponentType(columnChild, TableColumnComp)\n ) {\n const columnProps = columnChild.props as TableColumnProps;\n columns.push({\n key: columnProps.id,\n header: columnProps.children,\n isHidden: headerProps.isHidden || false,\n ariaSort: columnProps[\"aria-sort\"],\n });\n }\n });\n }\n\n // Parse rows from body\n if (isComponentType(child, TableBody)) {\n const bodyProps = child.props as TableBodyProps;\n Children.forEach(bodyProps.children, (rowChild) => {\n if (\n isValidElement(rowChild) &&\n isComponentType(rowChild, TableRowComp)\n ) {\n const rowProps = rowChild.props as TableRowProps;\n const cells: TableCellData[] = [];\n\n let cellIndex = 0;\n Children.forEach(rowProps.children, (cellChild) => {\n if (\n isValidElement(cellChild) &&\n isComponentType(cellChild, TableCellComp)\n ) {\n const cellProps = cellChild.props as TableCellProps;\n\n // Map cell to column by index if no explicit columnKey\n const columnKey = cellProps.columnKey || columns[cellIndex]?.key;\n\n if (columnKey) {\n cells.push({\n columnKey,\n value: cellProps.children,\n colSpan: cellProps.colSpan,\n });\n }\n cellIndex++;\n }\n });\n\n rows.push({\n key:\n (rowChild.key as string) || rowProps.key || String(rows.length),\n cells,\n onClick: rowProps.onClick,\n });\n }\n });\n }\n });\n\n return { columns, rows };\n}\n"],"names":["isComponentType","element","componentType","parseTableChildren","children","columns","rows","Children","child","isValidElement","TableHeader","headerProps","columnChild","TableColumnComp","columnProps","TableBody","bodyProps","rowChild","TableRowComp","rowProps","cells","cellIndex","cellChild","TableCellComp","cellProps","columnKey","_a"],"mappings":"kJA2BA,SAASA,EACPC,EACAC,EACS,CACT,OAAOD,EAAQ,OAASC,CAC1B,CAKO,SAASC,EAAmBC,EAAgC,CACjE,MAAMC,EAA6B,CAAA,EAC7BC,EAAuB,CAAA,EAEpBC,OAAAA,EAAAA,SAAA,QAAQH,EAAWI,GAAU,CAChC,GAACC,EAAAA,eAAeD,CAAK,EAGrB,IAAAR,EAAgBQ,EAAOE,EAAAA,WAAW,EAAG,CACvC,MAAMC,EAAcH,EAAM,MAE1BD,EAAAA,SAAS,QAAQI,EAAY,SAAWC,GAAgB,CACtD,GACEH,EAAAA,eAAeG,CAAW,GAC1BZ,EAAgBY,EAAaC,EAAe,WAAA,EAC5C,CACA,MAAMC,EAAcF,EAAY,MAChCP,EAAQ,KAAK,CACX,IAAKS,EAAY,GACjB,OAAQA,EAAY,SACpB,SAAUH,EAAY,UAAY,GAClC,SAAUG,EAAY,WAAW,CAAA,CAClC,CACH,CAAA,CACD,CACH,CAGI,GAAAd,EAAgBQ,EAAOO,EAAAA,SAAS,EAAG,CACrC,MAAMC,EAAYR,EAAM,MACxBD,EAAAA,SAAS,QAAQS,EAAU,SAAWC,GAAa,CACjD,GACER,EAAAA,eAAeQ,CAAQ,GACvBjB,EAAgBiB,EAAUC,EAAY,QAAA,EACtC,CACA,MAAMC,EAAWF,EAAS,MACpBG,EAAyB,CAAA,EAE/B,IAAIC,EAAY,EAChBd,EAAAA,SAAS,QAAQY,EAAS,SAAWG,GAAc,OACjD,GACEb,EAAAA,eAAea,CAAS,GACxBtB,EAAgBsB,EAAWC,EAAa,SAAA,EACxC,CACA,MAAMC,EAAYF,EAAU,MAGtBG,EAAYD,EAAU,aAAaE,EAAArB,EAAQgB,CAAS,IAAjB,YAAAK,EAAoB,KAEzDD,GACFL,EAAM,KAAK,CACT,UAAAK,EACA,MAAOD,EAAU,SACjB,QAASA,EAAU,OAAA,CACpB,EAEHH,GACF,CAAA,CACD,EAEDf,EAAK,KAAK,CACR,IACGW,EAAS,KAAkBE,EAAS,KAAO,OAAOb,EAAK,MAAM,EAChE,MAAAc,EACA,QAASD,EAAS,OAAA,CACnB,CACH,CAAA,CACD,CACH,EAAA,CACD,EAEM,CAAE,QAAAd,EAAS,KAAAC,EACpB"}
1
+ {"version":3,"file":"collectionParser.cjs.js","sources":["../../../../src/components/Table/Collection/collectionParser.ts"],"sourcesContent":["import {\r\n Children,\r\n isValidElement,\r\n ReactElement,\r\n ReactNode,\r\n ComponentType,\r\n} from \"react\";\r\n\r\nimport {\r\n TableHeader,\r\n TableColumn as TableColumnComp,\r\n TableBody,\r\n TableRow as TableRowComp,\r\n TableCell as TableCellComp,\r\n type TableHeaderProps,\r\n type TableColumnProps,\r\n type TableBodyProps,\r\n type TableRowProps,\r\n type TableCellProps,\r\n} from \"./CompoundComponents\";\r\nimport type {\r\n TableColumnData,\r\n TableData,\r\n TableRowData,\r\n TableCellData,\r\n} from \"../types\";\r\n\r\nfunction isComponentType(\r\n element: ReactElement,\r\n componentType: ComponentType<any>\r\n): boolean {\r\n return element.type === componentType;\r\n}\r\n\r\n/**\r\n * Parses JSX table structure into collection data format\r\n */\r\nexport function parseTableChildren(children: ReactNode): TableData {\r\n const columns: TableColumnData[] = [];\r\n const rows: TableRowData[] = [];\r\n\r\n Children.forEach(children, (child) => {\r\n if (!isValidElement(child)) return;\r\n\r\n // Parse columns from header\r\n if (isComponentType(child, TableHeader)) {\r\n const headerProps = child.props as TableHeaderProps;\r\n\r\n Children.forEach(headerProps.children, (columnChild) => {\r\n if (\r\n isValidElement(columnChild) &&\r\n isComponentType(columnChild, TableColumnComp)\r\n ) {\r\n const columnProps = columnChild.props as TableColumnProps;\r\n columns.push({\r\n key: columnProps.id,\r\n header: columnProps.children,\r\n isHidden: headerProps.isHidden || false,\r\n ariaSort: columnProps[\"aria-sort\"],\r\n });\r\n }\r\n });\r\n }\r\n\r\n // Parse rows from body\r\n if (isComponentType(child, TableBody)) {\r\n const bodyProps = child.props as TableBodyProps;\r\n Children.forEach(bodyProps.children, (rowChild) => {\r\n if (\r\n isValidElement(rowChild) &&\r\n isComponentType(rowChild, TableRowComp)\r\n ) {\r\n const rowProps = rowChild.props as TableRowProps;\r\n const cells: TableCellData[] = [];\r\n\r\n let cellIndex = 0;\r\n Children.forEach(rowProps.children, (cellChild) => {\r\n if (\r\n isValidElement(cellChild) &&\r\n isComponentType(cellChild, TableCellComp)\r\n ) {\r\n const cellProps = cellChild.props as TableCellProps;\r\n\r\n // Map cell to column by index if no explicit columnKey\r\n const columnKey = cellProps.columnKey || columns[cellIndex]?.key;\r\n\r\n if (columnKey) {\r\n cells.push({\r\n columnKey,\r\n value: cellProps.children,\r\n colSpan: cellProps.colSpan,\r\n });\r\n }\r\n cellIndex++;\r\n }\r\n });\r\n\r\n rows.push({\r\n key:\r\n (rowChild.key as string) || rowProps.key || String(rows.length),\r\n cells,\r\n onClick: rowProps.onClick,\r\n });\r\n }\r\n });\r\n }\r\n });\r\n\r\n return { columns, rows };\r\n}\r\n"],"names":["isComponentType","element","componentType","parseTableChildren","children","columns","rows","Children","child","isValidElement","TableHeader","headerProps","columnChild","TableColumnComp","columnProps","TableBody","bodyProps","rowChild","TableRowComp","rowProps","cells","cellIndex","cellChild","TableCellComp","cellProps","columnKey","_a"],"mappings":"kJA2BA,SAASA,EACPC,EACAC,EACS,CACT,OAAOD,EAAQ,OAASC,CAC1B,CAKO,SAASC,EAAmBC,EAAgC,CACjE,MAAMC,EAA6B,CAAA,EAC7BC,EAAuB,CAAA,EAEpBC,OAAAA,EAAAA,SAAA,QAAQH,EAAWI,GAAU,CAChC,GAACC,EAAAA,eAAeD,CAAK,EAGrB,IAAAR,EAAgBQ,EAAOE,EAAAA,WAAW,EAAG,CACvC,MAAMC,EAAcH,EAAM,MAE1BD,EAAAA,SAAS,QAAQI,EAAY,SAAWC,GAAgB,CACtD,GACEH,EAAAA,eAAeG,CAAW,GAC1BZ,EAAgBY,EAAaC,EAAe,WAAA,EAC5C,CACA,MAAMC,EAAcF,EAAY,MAChCP,EAAQ,KAAK,CACX,IAAKS,EAAY,GACjB,OAAQA,EAAY,SACpB,SAAUH,EAAY,UAAY,GAClC,SAAUG,EAAY,WAAW,CAAA,CAClC,CACH,CAAA,CACD,CACH,CAGI,GAAAd,EAAgBQ,EAAOO,EAAAA,SAAS,EAAG,CACrC,MAAMC,EAAYR,EAAM,MACxBD,EAAAA,SAAS,QAAQS,EAAU,SAAWC,GAAa,CACjD,GACER,EAAAA,eAAeQ,CAAQ,GACvBjB,EAAgBiB,EAAUC,EAAY,QAAA,EACtC,CACA,MAAMC,EAAWF,EAAS,MACpBG,EAAyB,CAAA,EAE/B,IAAIC,EAAY,EAChBd,EAAAA,SAAS,QAAQY,EAAS,SAAWG,GAAc,OACjD,GACEb,EAAAA,eAAea,CAAS,GACxBtB,EAAgBsB,EAAWC,EAAa,SAAA,EACxC,CACA,MAAMC,EAAYF,EAAU,MAGtBG,EAAYD,EAAU,aAAaE,EAAArB,EAAQgB,CAAS,IAAjB,YAAAK,EAAoB,KAEzDD,GACFL,EAAM,KAAK,CACT,UAAAK,EACA,MAAOD,EAAU,SACjB,QAASA,EAAU,OAAA,CACpB,EAEHH,GACF,CAAA,CACD,EAEDf,EAAK,KAAK,CACR,IACGW,EAAS,KAAkBE,EAAS,KAAO,OAAOb,EAAK,MAAM,EAChE,MAAAc,EACA,QAASD,EAAS,OAAA,CACnB,CACH,CAAA,CACD,CACH,EAAA,CACD,EAEM,CAAE,QAAAd,EAAS,KAAAC,EACpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"collectionParser.es.js","sources":["../../../../src/components/Table/Collection/collectionParser.ts"],"sourcesContent":["import {\n Children,\n isValidElement,\n ReactElement,\n ReactNode,\n ComponentType,\n} from \"react\";\n\nimport {\n TableHeader,\n TableColumn as TableColumnComp,\n TableBody,\n TableRow as TableRowComp,\n TableCell as TableCellComp,\n type TableHeaderProps,\n type TableColumnProps,\n type TableBodyProps,\n type TableRowProps,\n type TableCellProps,\n} from \"./CompoundComponents\";\nimport type {\n TableColumnData,\n TableData,\n TableRowData,\n TableCellData,\n} from \"../types\";\n\nfunction isComponentType(\n element: ReactElement,\n componentType: ComponentType<any>\n): boolean {\n return element.type === componentType;\n}\n\n/**\n * Parses JSX table structure into collection data format\n */\nexport function parseTableChildren(children: ReactNode): TableData {\n const columns: TableColumnData[] = [];\n const rows: TableRowData[] = [];\n\n Children.forEach(children, (child) => {\n if (!isValidElement(child)) return;\n\n // Parse columns from header\n if (isComponentType(child, TableHeader)) {\n const headerProps = child.props as TableHeaderProps;\n\n Children.forEach(headerProps.children, (columnChild) => {\n if (\n isValidElement(columnChild) &&\n isComponentType(columnChild, TableColumnComp)\n ) {\n const columnProps = columnChild.props as TableColumnProps;\n columns.push({\n key: columnProps.id,\n header: columnProps.children,\n isHidden: headerProps.isHidden || false,\n ariaSort: columnProps[\"aria-sort\"],\n });\n }\n });\n }\n\n // Parse rows from body\n if (isComponentType(child, TableBody)) {\n const bodyProps = child.props as TableBodyProps;\n Children.forEach(bodyProps.children, (rowChild) => {\n if (\n isValidElement(rowChild) &&\n isComponentType(rowChild, TableRowComp)\n ) {\n const rowProps = rowChild.props as TableRowProps;\n const cells: TableCellData[] = [];\n\n let cellIndex = 0;\n Children.forEach(rowProps.children, (cellChild) => {\n if (\n isValidElement(cellChild) &&\n isComponentType(cellChild, TableCellComp)\n ) {\n const cellProps = cellChild.props as TableCellProps;\n\n // Map cell to column by index if no explicit columnKey\n const columnKey = cellProps.columnKey || columns[cellIndex]?.key;\n\n if (columnKey) {\n cells.push({\n columnKey,\n value: cellProps.children,\n colSpan: cellProps.colSpan,\n });\n }\n cellIndex++;\n }\n });\n\n rows.push({\n key:\n (rowChild.key as string) || rowProps.key || String(rows.length),\n cells,\n onClick: rowProps.onClick,\n });\n }\n });\n }\n });\n\n return { columns, rows };\n}\n"],"names":["isComponentType","element","componentType","parseTableChildren","children","columns","rows","Children","child","isValidElement","TableHeader","headerProps","columnChild","TableColumnComp","columnProps","TableBody","bodyProps","rowChild","TableRowComp","rowProps","cells","cellIndex","cellChild","TableCellComp","cellProps","columnKey","_a"],"mappings":";;AA2BA,SAASA,EACPC,GACAC,GACS;AACT,SAAOD,EAAQ,SAASC;AAC1B;AAKO,SAASC,EAAmBC,GAAgC;AACjE,QAAMC,IAA6B,CAAA,GAC7BC,IAAuB,CAAA;AAEpB,SAAAC,EAAA,QAAQH,GAAU,CAACI,MAAU;AAChC,QAACC,EAAeD,CAAK,GAGrB;AAAA,UAAAR,EAAgBQ,GAAOE,CAAW,GAAG;AACvC,cAAMC,IAAcH,EAAM;AAE1B,QAAAD,EAAS,QAAQI,EAAY,UAAU,CAACC,MAAgB;AACtD,cACEH,EAAeG,CAAW,KAC1BZ,EAAgBY,GAAaC,CAAe,GAC5C;AACA,kBAAMC,IAAcF,EAAY;AAChC,YAAAP,EAAQ,KAAK;AAAA,cACX,KAAKS,EAAY;AAAA,cACjB,QAAQA,EAAY;AAAA,cACpB,UAAUH,EAAY,YAAY;AAAA,cAClC,UAAUG,EAAY,WAAW;AAAA,YAAA,CAClC;AAAA,UACH;AAAA,QAAA,CACD;AAAA,MACH;AAGI,UAAAd,EAAgBQ,GAAOO,CAAS,GAAG;AACrC,cAAMC,IAAYR,EAAM;AACxB,QAAAD,EAAS,QAAQS,EAAU,UAAU,CAACC,MAAa;AACjD,cACER,EAAeQ,CAAQ,KACvBjB,EAAgBiB,GAAUC,CAAY,GACtC;AACA,kBAAMC,IAAWF,EAAS,OACpBG,IAAyB,CAAA;AAE/B,gBAAIC,IAAY;AAChB,YAAAd,EAAS,QAAQY,EAAS,UAAU,CAACG,MAAc;;AACjD,kBACEb,EAAea,CAAS,KACxBtB,EAAgBsB,GAAWC,CAAa,GACxC;AACA,sBAAMC,IAAYF,EAAU,OAGtBG,IAAYD,EAAU,eAAaE,IAAArB,EAAQgB,CAAS,MAAjB,gBAAAK,EAAoB;AAE7D,gBAAID,KACFL,EAAM,KAAK;AAAA,kBACT,WAAAK;AAAA,kBACA,OAAOD,EAAU;AAAA,kBACjB,SAASA,EAAU;AAAA,gBAAA,CACpB,GAEHH;AAAA,cACF;AAAA,YAAA,CACD,GAEDf,EAAK,KAAK;AAAA,cACR,KACGW,EAAS,OAAkBE,EAAS,OAAO,OAAOb,EAAK,MAAM;AAAA,cAChE,OAAAc;AAAA,cACA,SAASD,EAAS;AAAA,YAAA,CACnB;AAAA,UACH;AAAA,QAAA,CACD;AAAA,MACH;AAAA;AAAA,EAAA,CACD,GAEM,EAAE,SAAAd,GAAS,MAAAC;AACpB;"}
1
+ {"version":3,"file":"collectionParser.es.js","sources":["../../../../src/components/Table/Collection/collectionParser.ts"],"sourcesContent":["import {\r\n Children,\r\n isValidElement,\r\n ReactElement,\r\n ReactNode,\r\n ComponentType,\r\n} from \"react\";\r\n\r\nimport {\r\n TableHeader,\r\n TableColumn as TableColumnComp,\r\n TableBody,\r\n TableRow as TableRowComp,\r\n TableCell as TableCellComp,\r\n type TableHeaderProps,\r\n type TableColumnProps,\r\n type TableBodyProps,\r\n type TableRowProps,\r\n type TableCellProps,\r\n} from \"./CompoundComponents\";\r\nimport type {\r\n TableColumnData,\r\n TableData,\r\n TableRowData,\r\n TableCellData,\r\n} from \"../types\";\r\n\r\nfunction isComponentType(\r\n element: ReactElement,\r\n componentType: ComponentType<any>\r\n): boolean {\r\n return element.type === componentType;\r\n}\r\n\r\n/**\r\n * Parses JSX table structure into collection data format\r\n */\r\nexport function parseTableChildren(children: ReactNode): TableData {\r\n const columns: TableColumnData[] = [];\r\n const rows: TableRowData[] = [];\r\n\r\n Children.forEach(children, (child) => {\r\n if (!isValidElement(child)) return;\r\n\r\n // Parse columns from header\r\n if (isComponentType(child, TableHeader)) {\r\n const headerProps = child.props as TableHeaderProps;\r\n\r\n Children.forEach(headerProps.children, (columnChild) => {\r\n if (\r\n isValidElement(columnChild) &&\r\n isComponentType(columnChild, TableColumnComp)\r\n ) {\r\n const columnProps = columnChild.props as TableColumnProps;\r\n columns.push({\r\n key: columnProps.id,\r\n header: columnProps.children,\r\n isHidden: headerProps.isHidden || false,\r\n ariaSort: columnProps[\"aria-sort\"],\r\n });\r\n }\r\n });\r\n }\r\n\r\n // Parse rows from body\r\n if (isComponentType(child, TableBody)) {\r\n const bodyProps = child.props as TableBodyProps;\r\n Children.forEach(bodyProps.children, (rowChild) => {\r\n if (\r\n isValidElement(rowChild) &&\r\n isComponentType(rowChild, TableRowComp)\r\n ) {\r\n const rowProps = rowChild.props as TableRowProps;\r\n const cells: TableCellData[] = [];\r\n\r\n let cellIndex = 0;\r\n Children.forEach(rowProps.children, (cellChild) => {\r\n if (\r\n isValidElement(cellChild) &&\r\n isComponentType(cellChild, TableCellComp)\r\n ) {\r\n const cellProps = cellChild.props as TableCellProps;\r\n\r\n // Map cell to column by index if no explicit columnKey\r\n const columnKey = cellProps.columnKey || columns[cellIndex]?.key;\r\n\r\n if (columnKey) {\r\n cells.push({\r\n columnKey,\r\n value: cellProps.children,\r\n colSpan: cellProps.colSpan,\r\n });\r\n }\r\n cellIndex++;\r\n }\r\n });\r\n\r\n rows.push({\r\n key:\r\n (rowChild.key as string) || rowProps.key || String(rows.length),\r\n cells,\r\n onClick: rowProps.onClick,\r\n });\r\n }\r\n });\r\n }\r\n });\r\n\r\n return { columns, rows };\r\n}\r\n"],"names":["isComponentType","element","componentType","parseTableChildren","children","columns","rows","Children","child","isValidElement","TableHeader","headerProps","columnChild","TableColumnComp","columnProps","TableBody","bodyProps","rowChild","TableRowComp","rowProps","cells","cellIndex","cellChild","TableCellComp","cellProps","columnKey","_a"],"mappings":";;AA2BA,SAASA,EACPC,GACAC,GACS;AACT,SAAOD,EAAQ,SAASC;AAC1B;AAKO,SAASC,EAAmBC,GAAgC;AACjE,QAAMC,IAA6B,CAAA,GAC7BC,IAAuB,CAAA;AAEpB,SAAAC,EAAA,QAAQH,GAAU,CAACI,MAAU;AAChC,QAACC,EAAeD,CAAK,GAGrB;AAAA,UAAAR,EAAgBQ,GAAOE,CAAW,GAAG;AACvC,cAAMC,IAAcH,EAAM;AAE1B,QAAAD,EAAS,QAAQI,EAAY,UAAU,CAACC,MAAgB;AACtD,cACEH,EAAeG,CAAW,KAC1BZ,EAAgBY,GAAaC,CAAe,GAC5C;AACA,kBAAMC,IAAcF,EAAY;AAChC,YAAAP,EAAQ,KAAK;AAAA,cACX,KAAKS,EAAY;AAAA,cACjB,QAAQA,EAAY;AAAA,cACpB,UAAUH,EAAY,YAAY;AAAA,cAClC,UAAUG,EAAY,WAAW;AAAA,YAAA,CAClC;AAAA,UACH;AAAA,QAAA,CACD;AAAA,MACH;AAGI,UAAAd,EAAgBQ,GAAOO,CAAS,GAAG;AACrC,cAAMC,IAAYR,EAAM;AACxB,QAAAD,EAAS,QAAQS,EAAU,UAAU,CAACC,MAAa;AACjD,cACER,EAAeQ,CAAQ,KACvBjB,EAAgBiB,GAAUC,CAAY,GACtC;AACA,kBAAMC,IAAWF,EAAS,OACpBG,IAAyB,CAAA;AAE/B,gBAAIC,IAAY;AAChB,YAAAd,EAAS,QAAQY,EAAS,UAAU,CAACG,MAAc;;AACjD,kBACEb,EAAea,CAAS,KACxBtB,EAAgBsB,GAAWC,CAAa,GACxC;AACA,sBAAMC,IAAYF,EAAU,OAGtBG,IAAYD,EAAU,eAAaE,IAAArB,EAAQgB,CAAS,MAAjB,gBAAAK,EAAoB;AAE7D,gBAAID,KACFL,EAAM,KAAK;AAAA,kBACT,WAAAK;AAAA,kBACA,OAAOD,EAAU;AAAA,kBACjB,SAASA,EAAU;AAAA,gBAAA,CACpB,GAEHH;AAAA,cACF;AAAA,YAAA,CACD,GAEDf,EAAK,KAAK;AAAA,cACR,KACGW,EAAS,OAAkBE,EAAS,OAAO,OAAOb,EAAK,MAAM;AAAA,cAChE,OAAAc;AAAA,cACA,SAASD,EAAS;AAAA,YAAA,CACnB;AAAA,UACH;AAAA,QAAA,CACD;AAAA,MACH;AAAA;AAAA,EAAA,CACD,GAEM,EAAE,SAAAd,GAAS,MAAAC;AACpB;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react");function y(e){var c;const r=n.useMemo(()=>{const o=new Map;return e.rows.forEach((s,x)=>{o.set(s.key,x)}),o},[e.rows]),i=n.useMemo(()=>o=>{const s=r.get(o);return s===void 0?null:e.rows[s]},[e.rows,r]),m=n.useMemo(()=>o=>{const s=r.get(o);return s===void 0||s>=e.rows.length-1?null:e.rows[s+1]},[e.rows,r]),w=n.useMemo(()=>o=>{const s=r.get(o);return s===void 0||s<=0?null:e.rows[s-1]},[e.rows,r]),g=n.useMemo(()=>o=>r.get(o)??-1,[r]),M=n.useMemo(()=>e.rows[0]||null,[e.rows]),f=n.useMemo(()=>e.rows[e.rows.length-1]||null,[e.rows]),u=e.rows.length,l=((c=e.columns[0])==null?void 0:c.isHidden)||!1,t=!l,I=n.useMemo(()=>u+(t?1:0),[u,t]),b=n.useMemo(()=>o=>o+(t?2:1),[t]);return{columns:e.columns,rows:e.rows,size:u,firstItem:M,lastItem:f,isHeaderHidden:l,hasVisibleHeader:t,getTotalRowCount:I,getRowAriaIndex:b,getItemByKey:i,getItemAfter:m,getItemBefore:w,getItemIndex:g}}exports.useTableCollection=y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react");function b(e){var c;const r=n.useMemo(()=>{const o=new Map;return e.rows.forEach((s,y)=>{o.set(s.key,y)}),o},[e.rows]),i=n.useMemo(()=>o=>{const s=r.get(o);return s===void 0?null:e.rows[s]},[e.rows,r]),m=n.useMemo(()=>o=>{const s=r.get(o);return s===void 0||s>=e.rows.length-1?null:e.rows[s+1]},[e.rows,r]),w=n.useMemo(()=>o=>{const s=r.get(o);return s===void 0||s<=0?null:e.rows[s-1]},[e.rows,r]),g=n.useMemo(()=>o=>r.get(o)??-1,[r]),M=n.useMemo(()=>e.rows[0]||null,[e.rows]),f=n.useMemo(()=>e.rows[e.rows.length-1]||null,[e.rows]),u=e.rows.length,l=((c=e.columns[0])==null?void 0:c.isHidden)||!1,t=!l,I=n.useMemo(()=>u+(t?1:0),[u,t]),x=n.useMemo(()=>o=>o+(t?2:1),[t]);return{columns:e.columns,rows:e.rows,size:u,firstItem:M,lastItem:f,isHeaderHidden:l,hasVisibleHeader:t,getTotalRowCount:I,getRowAriaIndex:x,getItemByKey:i,getItemAfter:m,getItemBefore:w,getItemIndex:g}}exports.useTableCollection=b;
2
2
  //# sourceMappingURL=useTableCollection.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTableCollection.cjs.js","sources":["../../../../src/components/Table/Collection/useTableCollection.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport type { TableData, TableRowData } from \"../types\";\n\n/**\n * Hook for managing table data structure and providing navigation methods\n */\nexport function useTableCollection(data: TableData) {\n const keyToIndexMap = useMemo(() => {\n const map = new Map<string | number, number>();\n data.rows.forEach((row, index) => {\n map.set(row.key, index);\n });\n return map;\n }, [data.rows]);\n\n const getItemByKey = useMemo(\n () =>\n (key: string | number): TableRowData | null => {\n const index = keyToIndexMap.get(key);\n if (index === undefined) return null;\n return data.rows[index];\n },\n [data.rows, keyToIndexMap]\n );\n\n const getItemAfter = useMemo(\n () =>\n (key: string | number): TableRowData | null => {\n const index = keyToIndexMap.get(key);\n if (index === undefined || index >= data.rows.length - 1) return null;\n return data.rows[index + 1];\n },\n [data.rows, keyToIndexMap]\n );\n\n const getItemBefore = useMemo(\n () =>\n (key: string | number): TableRowData | null => {\n const index = keyToIndexMap.get(key);\n if (index === undefined || index <= 0) return null;\n return data.rows[index - 1];\n },\n [data.rows, keyToIndexMap]\n );\n\n const getItemIndex = useMemo(\n () =>\n (key: string | number): number => {\n return keyToIndexMap.get(key) ?? -1;\n },\n [keyToIndexMap]\n );\n\n // Computed values\n const firstItem = useMemo(() => data.rows[0] || null, [data.rows]);\n const lastItem = useMemo(\n () => data.rows[data.rows.length - 1] || null,\n [data.rows]\n );\n const size = data.rows.length;\n\n // ARIA helpers\n const isHeaderHidden = data.columns[0]?.isHidden || false;\n const hasVisibleHeader = !isHeaderHidden;\n\n const getTotalRowCount = useMemo(() => {\n return size + (hasVisibleHeader ? 1 : 0);\n }, [size, hasVisibleHeader]);\n\n const getRowAriaIndex = useMemo(\n () => (rowIndex: number) => {\n return rowIndex + (hasVisibleHeader ? 2 : 1); // +2 if header exists and visible, +1 if not\n },\n [hasVisibleHeader]\n );\n\n return {\n // Data\n columns: data.columns,\n rows: data.rows,\n size,\n firstItem,\n lastItem,\n\n // ARIA helpers\n isHeaderHidden,\n hasVisibleHeader,\n getTotalRowCount,\n getRowAriaIndex,\n\n // Navigation functions\n getItemByKey,\n getItemAfter,\n getItemBefore,\n getItemIndex,\n };\n}\n\nexport type TableCollection = ReturnType<typeof useTableCollection>;\n"],"names":["useTableCollection","data","keyToIndexMap","useMemo","map","row","index","getItemByKey","key","getItemAfter","getItemBefore","getItemIndex","firstItem","lastItem","size","isHeaderHidden","_a","hasVisibleHeader","getTotalRowCount","getRowAriaIndex","rowIndex"],"mappings":"yGAMO,SAASA,EAAmBC,EAAiB,OAC5C,MAAAC,EAAgBC,EAAAA,QAAQ,IAAM,CAC5B,MAAAC,MAAU,IAChB,OAAAH,EAAK,KAAK,QAAQ,CAACI,EAAKC,IAAU,CAC5BF,EAAA,IAAIC,EAAI,IAAKC,CAAK,CAAA,CACvB,EACMF,CAAA,EACN,CAACH,EAAK,IAAI,CAAC,EAERM,EAAeJ,EAAA,QACnB,IACGK,GAA8C,CACvC,MAAAF,EAAQJ,EAAc,IAAIM,CAAG,EAC/B,OAAAF,IAAU,OAAkB,KACzBL,EAAK,KAAKK,CAAK,CACxB,EACF,CAACL,EAAK,KAAMC,CAAa,CAAA,EAGrBO,EAAeN,EAAA,QACnB,IACGK,GAA8C,CACvC,MAAAF,EAAQJ,EAAc,IAAIM,CAAG,EACnC,OAAIF,IAAU,QAAaA,GAASL,EAAK,KAAK,OAAS,EAAU,KAC1DA,EAAK,KAAKK,EAAQ,CAAC,CAC5B,EACF,CAACL,EAAK,KAAMC,CAAa,CAAA,EAGrBQ,EAAgBP,EAAA,QACpB,IACGK,GAA8C,CACvC,MAAAF,EAAQJ,EAAc,IAAIM,CAAG,EACnC,OAAIF,IAAU,QAAaA,GAAS,EAAU,KACvCL,EAAK,KAAKK,EAAQ,CAAC,CAC5B,EACF,CAACL,EAAK,KAAMC,CAAa,CAAA,EAGrBS,EAAeR,EAAA,QACnB,IACGK,GACQN,EAAc,IAAIM,CAAG,GAAK,GAErC,CAACN,CAAa,CAAA,EAIVU,EAAYT,EAAAA,QAAQ,IAAMF,EAAK,KAAK,CAAC,GAAK,KAAM,CAACA,EAAK,IAAI,CAAC,EAC3DY,EAAWV,EAAA,QACf,IAAMF,EAAK,KAAKA,EAAK,KAAK,OAAS,CAAC,GAAK,KACzC,CAACA,EAAK,IAAI,CAAA,EAENa,EAAOb,EAAK,KAAK,OAGjBc,IAAiBC,EAAAf,EAAK,QAAQ,CAAC,IAAd,YAAAe,EAAiB,WAAY,GAC9CC,EAAmB,CAACF,EAEpBG,EAAmBf,EAAAA,QAAQ,IACxBW,GAAQG,EAAmB,EAAI,GACrC,CAACH,EAAMG,CAAgB,CAAC,EAErBE,EAAkBhB,EAAA,QACtB,IAAOiB,GACEA,GAAYH,EAAmB,EAAI,GAE5C,CAACA,CAAgB,CAAA,EAGZ,MAAA,CAEL,QAAShB,EAAK,QACd,KAAMA,EAAK,KACX,KAAAa,EACA,UAAAF,EACA,SAAAC,EAGA,eAAAE,EACA,iBAAAE,EACA,iBAAAC,EACA,gBAAAC,EAGA,aAAAZ,EACA,aAAAE,EACA,cAAAC,EACA,aAAAC,CAAA,CAEJ"}
1
+ {"version":3,"file":"useTableCollection.cjs.js","sources":["../../../../src/components/Table/Collection/useTableCollection.tsx"],"sourcesContent":["import { useMemo } from \"react\";\r\nimport type { TableData, TableRowData } from \"../types\";\r\n\r\n/**\r\n * Hook for managing table data structure and providing navigation methods\r\n */\r\nexport function useTableCollection(data: TableData) {\r\n const keyToIndexMap = useMemo(() => {\r\n const map = new Map<string | number, number>();\r\n data.rows.forEach((row, index) => {\r\n map.set(row.key, index);\r\n });\r\n return map;\r\n }, [data.rows]);\r\n\r\n const getItemByKey = useMemo(\r\n () =>\r\n (key: string | number): TableRowData | null => {\r\n const index = keyToIndexMap.get(key);\r\n if (index === undefined) return null;\r\n return data.rows[index];\r\n },\r\n [data.rows, keyToIndexMap]\r\n );\r\n\r\n const getItemAfter = useMemo(\r\n () =>\r\n (key: string | number): TableRowData | null => {\r\n const index = keyToIndexMap.get(key);\r\n if (index === undefined || index >= data.rows.length - 1) return null;\r\n return data.rows[index + 1];\r\n },\r\n [data.rows, keyToIndexMap]\r\n );\r\n\r\n const getItemBefore = useMemo(\r\n () =>\r\n (key: string | number): TableRowData | null => {\r\n const index = keyToIndexMap.get(key);\r\n if (index === undefined || index <= 0) return null;\r\n return data.rows[index - 1];\r\n },\r\n [data.rows, keyToIndexMap]\r\n );\r\n\r\n const getItemIndex = useMemo(\r\n () =>\r\n (key: string | number): number => {\r\n return keyToIndexMap.get(key) ?? -1;\r\n },\r\n [keyToIndexMap]\r\n );\r\n\r\n // Computed values\r\n const firstItem = useMemo(() => data.rows[0] || null, [data.rows]);\r\n const lastItem = useMemo(\r\n () => data.rows[data.rows.length - 1] || null,\r\n [data.rows]\r\n );\r\n const size = data.rows.length;\r\n\r\n // ARIA helpers\r\n const isHeaderHidden = data.columns[0]?.isHidden || false;\r\n const hasVisibleHeader = !isHeaderHidden;\r\n\r\n const getTotalRowCount = useMemo(() => {\r\n return size + (hasVisibleHeader ? 1 : 0);\r\n }, [size, hasVisibleHeader]);\r\n\r\n const getRowAriaIndex = useMemo(\r\n () => (rowIndex: number) => {\r\n return rowIndex + (hasVisibleHeader ? 2 : 1); // +2 if header exists and visible, +1 if not\r\n },\r\n [hasVisibleHeader]\r\n );\r\n\r\n return {\r\n // Data\r\n columns: data.columns,\r\n rows: data.rows,\r\n size,\r\n firstItem,\r\n lastItem,\r\n\r\n // ARIA helpers\r\n isHeaderHidden,\r\n hasVisibleHeader,\r\n getTotalRowCount,\r\n getRowAriaIndex,\r\n\r\n // Navigation functions\r\n getItemByKey,\r\n getItemAfter,\r\n getItemBefore,\r\n getItemIndex,\r\n };\r\n}\r\n\r\nexport type TableCollection = ReturnType<typeof useTableCollection>;\r\n"],"names":["useTableCollection","data","keyToIndexMap","useMemo","map","row","index","getItemByKey","key","getItemAfter","getItemBefore","getItemIndex","firstItem","lastItem","size","isHeaderHidden","_a","hasVisibleHeader","getTotalRowCount","getRowAriaIndex","rowIndex"],"mappings":"yGAMO,SAASA,EAAmBC,EAAiB,OAC5C,MAAAC,EAAgBC,EAAAA,QAAQ,IAAM,CAC5B,MAAAC,MAAU,IAChB,OAAAH,EAAK,KAAK,QAAQ,CAACI,EAAKC,IAAU,CAC5BF,EAAA,IAAIC,EAAI,IAAKC,CAAK,CAAA,CACvB,EACMF,CAAA,EACN,CAACH,EAAK,IAAI,CAAC,EAERM,EAAeJ,EAAA,QACnB,IACGK,GAA8C,CACvC,MAAAF,EAAQJ,EAAc,IAAIM,CAAG,EAC/B,OAAAF,IAAU,OAAkB,KACzBL,EAAK,KAAKK,CAAK,CACxB,EACF,CAACL,EAAK,KAAMC,CAAa,CAAA,EAGrBO,EAAeN,EAAA,QACnB,IACGK,GAA8C,CACvC,MAAAF,EAAQJ,EAAc,IAAIM,CAAG,EACnC,OAAIF,IAAU,QAAaA,GAASL,EAAK,KAAK,OAAS,EAAU,KAC1DA,EAAK,KAAKK,EAAQ,CAAC,CAC5B,EACF,CAACL,EAAK,KAAMC,CAAa,CAAA,EAGrBQ,EAAgBP,EAAA,QACpB,IACGK,GAA8C,CACvC,MAAAF,EAAQJ,EAAc,IAAIM,CAAG,EACnC,OAAIF,IAAU,QAAaA,GAAS,EAAU,KACvCL,EAAK,KAAKK,EAAQ,CAAC,CAC5B,EACF,CAACL,EAAK,KAAMC,CAAa,CAAA,EAGrBS,EAAeR,EAAA,QACnB,IACGK,GACQN,EAAc,IAAIM,CAAG,GAAK,GAErC,CAACN,CAAa,CAAA,EAIVU,EAAYT,EAAAA,QAAQ,IAAMF,EAAK,KAAK,CAAC,GAAK,KAAM,CAACA,EAAK,IAAI,CAAC,EAC3DY,EAAWV,EAAA,QACf,IAAMF,EAAK,KAAKA,EAAK,KAAK,OAAS,CAAC,GAAK,KACzC,CAACA,EAAK,IAAI,CAAA,EAENa,EAAOb,EAAK,KAAK,OAGjBc,IAAiBC,EAAAf,EAAK,QAAQ,CAAC,IAAd,YAAAe,EAAiB,WAAY,GAC9CC,EAAmB,CAACF,EAEpBG,EAAmBf,EAAAA,QAAQ,IACxBW,GAAQG,EAAmB,EAAI,GACrC,CAACH,EAAMG,CAAgB,CAAC,EAErBE,EAAkBhB,EAAA,QACtB,IAAOiB,GACEA,GAAYH,EAAmB,EAAI,GAE5C,CAACA,CAAgB,CAAA,EAGZ,MAAA,CAEL,QAAShB,EAAK,QACd,KAAMA,EAAK,KACX,KAAAa,EACA,UAAAF,EACA,SAAAC,EAGA,eAAAE,EACA,iBAAAE,EACA,iBAAAC,EACA,gBAAAC,EAGA,aAAAZ,EACA,aAAAE,EACA,cAAAC,EACA,aAAAC,CAAA,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTableCollection.es.js","sources":["../../../../src/components/Table/Collection/useTableCollection.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport type { TableData, TableRowData } from \"../types\";\n\n/**\n * Hook for managing table data structure and providing navigation methods\n */\nexport function useTableCollection(data: TableData) {\n const keyToIndexMap = useMemo(() => {\n const map = new Map<string | number, number>();\n data.rows.forEach((row, index) => {\n map.set(row.key, index);\n });\n return map;\n }, [data.rows]);\n\n const getItemByKey = useMemo(\n () =>\n (key: string | number): TableRowData | null => {\n const index = keyToIndexMap.get(key);\n if (index === undefined) return null;\n return data.rows[index];\n },\n [data.rows, keyToIndexMap]\n );\n\n const getItemAfter = useMemo(\n () =>\n (key: string | number): TableRowData | null => {\n const index = keyToIndexMap.get(key);\n if (index === undefined || index >= data.rows.length - 1) return null;\n return data.rows[index + 1];\n },\n [data.rows, keyToIndexMap]\n );\n\n const getItemBefore = useMemo(\n () =>\n (key: string | number): TableRowData | null => {\n const index = keyToIndexMap.get(key);\n if (index === undefined || index <= 0) return null;\n return data.rows[index - 1];\n },\n [data.rows, keyToIndexMap]\n );\n\n const getItemIndex = useMemo(\n () =>\n (key: string | number): number => {\n return keyToIndexMap.get(key) ?? -1;\n },\n [keyToIndexMap]\n );\n\n // Computed values\n const firstItem = useMemo(() => data.rows[0] || null, [data.rows]);\n const lastItem = useMemo(\n () => data.rows[data.rows.length - 1] || null,\n [data.rows]\n );\n const size = data.rows.length;\n\n // ARIA helpers\n const isHeaderHidden = data.columns[0]?.isHidden || false;\n const hasVisibleHeader = !isHeaderHidden;\n\n const getTotalRowCount = useMemo(() => {\n return size + (hasVisibleHeader ? 1 : 0);\n }, [size, hasVisibleHeader]);\n\n const getRowAriaIndex = useMemo(\n () => (rowIndex: number) => {\n return rowIndex + (hasVisibleHeader ? 2 : 1); // +2 if header exists and visible, +1 if not\n },\n [hasVisibleHeader]\n );\n\n return {\n // Data\n columns: data.columns,\n rows: data.rows,\n size,\n firstItem,\n lastItem,\n\n // ARIA helpers\n isHeaderHidden,\n hasVisibleHeader,\n getTotalRowCount,\n getRowAriaIndex,\n\n // Navigation functions\n getItemByKey,\n getItemAfter,\n getItemBefore,\n getItemIndex,\n };\n}\n\nexport type TableCollection = ReturnType<typeof useTableCollection>;\n"],"names":["useTableCollection","data","keyToIndexMap","useMemo","map","row","index","getItemByKey","key","getItemAfter","getItemBefore","getItemIndex","firstItem","lastItem","size","isHeaderHidden","_a","hasVisibleHeader","getTotalRowCount","getRowAriaIndex","rowIndex"],"mappings":";AAMO,SAASA,EAAmBC,GAAiB;;AAC5C,QAAAC,IAAgBC,EAAQ,MAAM;AAC5B,UAAAC,wBAAU;AAChB,WAAAH,EAAK,KAAK,QAAQ,CAACI,GAAKC,MAAU;AAC5B,MAAAF,EAAA,IAAIC,EAAI,KAAKC,CAAK;AAAA,IAAA,CACvB,GACMF;AAAA,EAAA,GACN,CAACH,EAAK,IAAI,CAAC,GAERM,IAAeJ;AAAA,IACnB,MACE,CAACK,MAA8C;AACvC,YAAAF,IAAQJ,EAAc,IAAIM,CAAG;AAC/B,aAAAF,MAAU,SAAkB,OACzBL,EAAK,KAAKK,CAAK;AAAA,IACxB;AAAA,IACF,CAACL,EAAK,MAAMC,CAAa;AAAA,EAAA,GAGrBO,IAAeN;AAAA,IACnB,MACE,CAACK,MAA8C;AACvC,YAAAF,IAAQJ,EAAc,IAAIM,CAAG;AACnC,aAAIF,MAAU,UAAaA,KAASL,EAAK,KAAK,SAAS,IAAU,OAC1DA,EAAK,KAAKK,IAAQ,CAAC;AAAA,IAC5B;AAAA,IACF,CAACL,EAAK,MAAMC,CAAa;AAAA,EAAA,GAGrBQ,IAAgBP;AAAA,IACpB,MACE,CAACK,MAA8C;AACvC,YAAAF,IAAQJ,EAAc,IAAIM,CAAG;AACnC,aAAIF,MAAU,UAAaA,KAAS,IAAU,OACvCL,EAAK,KAAKK,IAAQ,CAAC;AAAA,IAC5B;AAAA,IACF,CAACL,EAAK,MAAMC,CAAa;AAAA,EAAA,GAGrBS,IAAeR;AAAA,IACnB,MACE,CAACK,MACQN,EAAc,IAAIM,CAAG,KAAK;AAAA,IAErC,CAACN,CAAa;AAAA,EAAA,GAIVU,IAAYT,EAAQ,MAAMF,EAAK,KAAK,CAAC,KAAK,MAAM,CAACA,EAAK,IAAI,CAAC,GAC3DY,IAAWV;AAAA,IACf,MAAMF,EAAK,KAAKA,EAAK,KAAK,SAAS,CAAC,KAAK;AAAA,IACzC,CAACA,EAAK,IAAI;AAAA,EAAA,GAENa,IAAOb,EAAK,KAAK,QAGjBc,MAAiBC,IAAAf,EAAK,QAAQ,CAAC,MAAd,gBAAAe,EAAiB,aAAY,IAC9CC,IAAmB,CAACF,GAEpBG,IAAmBf,EAAQ,MACxBW,KAAQG,IAAmB,IAAI,IACrC,CAACH,GAAMG,CAAgB,CAAC,GAErBE,IAAkBhB;AAAA,IACtB,MAAM,CAACiB,MACEA,KAAYH,IAAmB,IAAI;AAAA,IAE5C,CAACA,CAAgB;AAAA,EAAA;AAGZ,SAAA;AAAA;AAAA,IAEL,SAAShB,EAAK;AAAA,IACd,MAAMA,EAAK;AAAA,IACX,MAAAa;AAAA,IACA,WAAAF;AAAA,IACA,UAAAC;AAAA;AAAA,IAGA,gBAAAE;AAAA,IACA,kBAAAE;AAAA,IACA,kBAAAC;AAAA,IACA,iBAAAC;AAAA;AAAA,IAGA,cAAAZ;AAAA,IACA,cAAAE;AAAA,IACA,eAAAC;AAAA,IACA,cAAAC;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"useTableCollection.es.js","sources":["../../../../src/components/Table/Collection/useTableCollection.tsx"],"sourcesContent":["import { useMemo } from \"react\";\r\nimport type { TableData, TableRowData } from \"../types\";\r\n\r\n/**\r\n * Hook for managing table data structure and providing navigation methods\r\n */\r\nexport function useTableCollection(data: TableData) {\r\n const keyToIndexMap = useMemo(() => {\r\n const map = new Map<string | number, number>();\r\n data.rows.forEach((row, index) => {\r\n map.set(row.key, index);\r\n });\r\n return map;\r\n }, [data.rows]);\r\n\r\n const getItemByKey = useMemo(\r\n () =>\r\n (key: string | number): TableRowData | null => {\r\n const index = keyToIndexMap.get(key);\r\n if (index === undefined) return null;\r\n return data.rows[index];\r\n },\r\n [data.rows, keyToIndexMap]\r\n );\r\n\r\n const getItemAfter = useMemo(\r\n () =>\r\n (key: string | number): TableRowData | null => {\r\n const index = keyToIndexMap.get(key);\r\n if (index === undefined || index >= data.rows.length - 1) return null;\r\n return data.rows[index + 1];\r\n },\r\n [data.rows, keyToIndexMap]\r\n );\r\n\r\n const getItemBefore = useMemo(\r\n () =>\r\n (key: string | number): TableRowData | null => {\r\n const index = keyToIndexMap.get(key);\r\n if (index === undefined || index <= 0) return null;\r\n return data.rows[index - 1];\r\n },\r\n [data.rows, keyToIndexMap]\r\n );\r\n\r\n const getItemIndex = useMemo(\r\n () =>\r\n (key: string | number): number => {\r\n return keyToIndexMap.get(key) ?? -1;\r\n },\r\n [keyToIndexMap]\r\n );\r\n\r\n // Computed values\r\n const firstItem = useMemo(() => data.rows[0] || null, [data.rows]);\r\n const lastItem = useMemo(\r\n () => data.rows[data.rows.length - 1] || null,\r\n [data.rows]\r\n );\r\n const size = data.rows.length;\r\n\r\n // ARIA helpers\r\n const isHeaderHidden = data.columns[0]?.isHidden || false;\r\n const hasVisibleHeader = !isHeaderHidden;\r\n\r\n const getTotalRowCount = useMemo(() => {\r\n return size + (hasVisibleHeader ? 1 : 0);\r\n }, [size, hasVisibleHeader]);\r\n\r\n const getRowAriaIndex = useMemo(\r\n () => (rowIndex: number) => {\r\n return rowIndex + (hasVisibleHeader ? 2 : 1); // +2 if header exists and visible, +1 if not\r\n },\r\n [hasVisibleHeader]\r\n );\r\n\r\n return {\r\n // Data\r\n columns: data.columns,\r\n rows: data.rows,\r\n size,\r\n firstItem,\r\n lastItem,\r\n\r\n // ARIA helpers\r\n isHeaderHidden,\r\n hasVisibleHeader,\r\n getTotalRowCount,\r\n getRowAriaIndex,\r\n\r\n // Navigation functions\r\n getItemByKey,\r\n getItemAfter,\r\n getItemBefore,\r\n getItemIndex,\r\n };\r\n}\r\n\r\nexport type TableCollection = ReturnType<typeof useTableCollection>;\r\n"],"names":["useTableCollection","data","keyToIndexMap","useMemo","map","row","index","getItemByKey","key","getItemAfter","getItemBefore","getItemIndex","firstItem","lastItem","size","isHeaderHidden","_a","hasVisibleHeader","getTotalRowCount","getRowAriaIndex","rowIndex"],"mappings":";AAMO,SAASA,EAAmBC,GAAiB;;AAC5C,QAAAC,IAAgBC,EAAQ,MAAM;AAC5B,UAAAC,wBAAU;AAChB,WAAAH,EAAK,KAAK,QAAQ,CAACI,GAAKC,MAAU;AAC5B,MAAAF,EAAA,IAAIC,EAAI,KAAKC,CAAK;AAAA,IAAA,CACvB,GACMF;AAAA,EAAA,GACN,CAACH,EAAK,IAAI,CAAC,GAERM,IAAeJ;AAAA,IACnB,MACE,CAACK,MAA8C;AACvC,YAAAF,IAAQJ,EAAc,IAAIM,CAAG;AAC/B,aAAAF,MAAU,SAAkB,OACzBL,EAAK,KAAKK,CAAK;AAAA,IACxB;AAAA,IACF,CAACL,EAAK,MAAMC,CAAa;AAAA,EAAA,GAGrBO,IAAeN;AAAA,IACnB,MACE,CAACK,MAA8C;AACvC,YAAAF,IAAQJ,EAAc,IAAIM,CAAG;AACnC,aAAIF,MAAU,UAAaA,KAASL,EAAK,KAAK,SAAS,IAAU,OAC1DA,EAAK,KAAKK,IAAQ,CAAC;AAAA,IAC5B;AAAA,IACF,CAACL,EAAK,MAAMC,CAAa;AAAA,EAAA,GAGrBQ,IAAgBP;AAAA,IACpB,MACE,CAACK,MAA8C;AACvC,YAAAF,IAAQJ,EAAc,IAAIM,CAAG;AACnC,aAAIF,MAAU,UAAaA,KAAS,IAAU,OACvCL,EAAK,KAAKK,IAAQ,CAAC;AAAA,IAC5B;AAAA,IACF,CAACL,EAAK,MAAMC,CAAa;AAAA,EAAA,GAGrBS,IAAeR;AAAA,IACnB,MACE,CAACK,MACQN,EAAc,IAAIM,CAAG,KAAK;AAAA,IAErC,CAACN,CAAa;AAAA,EAAA,GAIVU,IAAYT,EAAQ,MAAMF,EAAK,KAAK,CAAC,KAAK,MAAM,CAACA,EAAK,IAAI,CAAC,GAC3DY,IAAWV;AAAA,IACf,MAAMF,EAAK,KAAKA,EAAK,KAAK,SAAS,CAAC,KAAK;AAAA,IACzC,CAACA,EAAK,IAAI;AAAA,EAAA,GAENa,IAAOb,EAAK,KAAK,QAGjBc,MAAiBC,IAAAf,EAAK,QAAQ,CAAC,MAAd,gBAAAe,EAAiB,aAAY,IAC9CC,IAAmB,CAACF,GAEpBG,IAAmBf,EAAQ,MACxBW,KAAQG,IAAmB,IAAI,IACrC,CAACH,GAAMG,CAAgB,CAAC,GAErBE,IAAkBhB;AAAA,IACtB,MAAM,CAACiB,MACEA,KAAYH,IAAmB,IAAI;AAAA,IAE5C,CAACA,CAAgB;AAAA,EAAA;AAGZ,SAAA;AAAA;AAAA,IAEL,SAAShB,EAAK;AAAA,IACd,MAAMA,EAAK;AAAA,IACX,MAAAa;AAAA,IACA,WAAAF;AAAA,IACA,UAAAC;AAAA;AAAA,IAGA,gBAAAE;AAAA,IACA,kBAAAE;AAAA,IACA,kBAAAC;AAAA,IACA,iBAAAC;AAAA;AAAA,IAGA,cAAAZ;AAAA,IACA,cAAAE;AAAA,IACA,eAAAC;AAAA,IACA,cAAAC;AAAA,EAAA;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Table.cjs.js","sources":["../../../src/components/Table/Table.tsx"],"sourcesContent":["import { ReactElement, useMemo } from \"react\";\nimport { parseTableChildren } from \"./Collection/collectionParser\";\nimport {\n TableHeader,\n TableColumn,\n TableBody,\n TableRow,\n TableCell,\n TableHeaderProps,\n TableColumnProps,\n TableBodyProps,\n TableRowProps,\n TableCellProps,\n} from \"./Collection/CompoundComponents\";\nimport { useTableCollection } from \"./Collection/useTableCollection\";\nimport type {\n TableData,\n TableColumnData,\n TableRowData,\n TableCellData,\n} from \"./types\";\nimport \"./Table.css\";\n\nexport type { TableColumnData, TableCellData, TableRowData, TableData };\n\nexport interface TableProps {\n children: [ReactElement<TableHeaderProps>, ReactElement<TableBodyProps>];\n /** Table name/caption for accessibility. Provides essential context for screen readers about table content. */\n name: string;\n}\n\nconst TableComponent = ({ children, name }: TableProps) => {\n const tableData: TableData = useMemo(\n () => parseTableChildren(children),\n [children]\n );\n const collection = useTableCollection(tableData);\n\n return (\n <table\n className=\"proton-Table\"\n role=\"table\"\n aria-rowcount={collection.getTotalRowCount}\n aria-colcount={collection.columns.length}\n aria-label={name}\n >\n <caption className=\"proton-Table__caption\">{name}</caption>\n\n {/* Header */}\n <thead\n className=\"proton-Table__rowGroup--header\"\n role=\"rowgroup\"\n style={collection.isHeaderHidden ? { display: \"none\" } : undefined}\n >\n <tr className=\"proton-Table__header-row\" role=\"row\" aria-rowindex={1}>\n {collection.columns.map((column, index) => (\n <th\n key={column.key}\n className=\"proton-Table__header\"\n role=\"columnheader\"\n scope=\"col\"\n aria-colindex={index + 1}\n aria-sort={column.ariaSort}\n >\n {column.header}\n </th>\n ))}\n </tr>\n </thead>\n\n {/* Body */}\n <tbody className=\"proton-Table__body\" role=\"rowgroup\">\n {collection.rows.map((row, rowIndex) => (\n <tr\n key={row.key}\n className=\"proton-Table__row\"\n role=\"row\"\n aria-rowindex={collection.getRowAriaIndex(rowIndex)}\n onClick={row?.onClick}\n tabIndex={row?.onClick ? 0 : undefined}\n onKeyDown={\n row?.onClick\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n // Enable keyboard navigation\n e.preventDefault();\n row.onClick?.();\n }\n }\n : undefined\n }\n >\n {collection.columns.map((column, colIndex) => {\n const cell = row.cells.find((c) => c.columnKey === column.key);\n return (\n <td\n key={column.key}\n className=\"proton-Table__cell\"\n role=\"cell\"\n aria-colindex={colIndex + 1}\n colSpan={cell?.colSpan}\n >\n {cell?.value || \"\"}\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n );\n};\n\n/**\n * Base Table component that renders data in rows and columns using collections.\n *\n * - Built-in keyboard navigation for interactive rows.\n * - Full ARIA table semantics with proper roles, labels, and indices.\n *\n * API:\n * - {@link TableProps}\n *\n * @example\n * ```tsx\n * <Table caption=\"Employee Directory\">\n * <Table.Header>\n * <Table.Column id=\"name\">Name</Table.Column>\n * </Table.Header>\n * <Table.Body>\n * <Table.Row key=\"1\">\n * <Table.Cell>Joe</Table.Cell>\n * </Table.Row>\n * </Table.Body>\n * </Table>\n * ```\n */\nconst Table = Object.assign(TableComponent, {\n /** Table header: {@link TableHeaderProps} */\n Header: TableHeader,\n /** Table column: {@link TableColumnProps} */\n Column: TableColumn,\n /** Table body: {@link TableBodyProps} */\n Body: TableBody,\n /** Table row: {@link TableRowProps} */\n Row: TableRow,\n /** Table cell: {@link TableCellProps} */\n Cell: TableCell,\n});\n\nexport { Table };\nexport type {\n TableHeaderProps,\n TableColumnProps,\n TableBodyProps,\n TableRowProps,\n TableCellProps,\n};\n"],"names":["TableComponent","children","name","tableData","useMemo","parseTableChildren","collection","useTableCollection","jsxs","jsx","column","index","row","rowIndex","e","_a","colIndex","cell","c","Table","TableHeader","TableColumn","TableBody","TableRow","TableCell"],"mappings":"0VA+BA,MAAMA,EAAiB,CAAC,CAAE,SAAAC,EAAU,KAAAC,KAAuB,CACzD,MAAMC,EAAuBC,EAAA,QAC3B,IAAMC,EAAAA,mBAAmBJ,CAAQ,EACjC,CAACA,CAAQ,CAAA,EAELK,EAAaC,qBAAmBJ,CAAS,EAG7C,OAAAK,EAAA,kBAAA,KAAC,QAAA,CACC,UAAU,eACV,KAAK,QACL,gBAAeF,EAAW,iBAC1B,gBAAeA,EAAW,QAAQ,OAClC,aAAYJ,EAEZ,SAAA,CAACO,EAAA,kBAAA,IAAA,UAAA,CAAQ,UAAU,wBAAyB,SAAKP,EAAA,EAGjDO,EAAA,kBAAA,IAAC,QAAA,CACC,UAAU,iCACV,KAAK,WACL,MAAOH,EAAW,eAAiB,CAAE,QAAS,MAAW,EAAA,OAEzD,SAACG,EAAA,kBAAA,IAAA,KAAA,CAAG,UAAU,2BAA2B,KAAK,MAAM,gBAAe,EAChE,SAAWH,EAAA,QAAQ,IAAI,CAACI,EAAQC,IAC/BF,EAAA,kBAAA,IAAC,KAAA,CAEC,UAAU,uBACV,KAAK,eACL,MAAM,MACN,gBAAeE,EAAQ,EACvB,YAAWD,EAAO,SAEjB,SAAOA,EAAA,MAAA,EAPHA,EAAO,GASf,CAAA,EACH,CAAA,CACF,EAGAD,EAAAA,kBAAAA,IAAC,QAAM,CAAA,UAAU,qBAAqB,KAAK,WACxC,SAAAH,EAAW,KAAK,IAAI,CAACM,EAAKC,IACzBJ,EAAA,kBAAA,IAAC,KAAA,CAEC,UAAU,oBACV,KAAK,MACL,gBAAeH,EAAW,gBAAgBO,CAAQ,EAClD,QAASD,GAAA,YAAAA,EAAK,QACd,SAAUA,GAAA,MAAAA,EAAK,QAAU,EAAI,OAC7B,UACEA,GAAA,MAAAA,EAAK,QACAE,GAAM,QACDA,EAAE,MAAQ,SAAWA,EAAE,MAAQ,OAEjCA,EAAE,eAAe,GACjBC,EAAAH,EAAI,UAAJ,MAAAG,EAAA,KAAAH,GAGJ,EAAA,OAGL,SAAWN,EAAA,QAAQ,IAAI,CAACI,EAAQM,IAAa,CACtC,MAAAC,EAAOL,EAAI,MAAM,KAAMM,GAAMA,EAAE,YAAcR,EAAO,GAAG,EAE3D,OAAAD,EAAA,kBAAA,IAAC,KAAA,CAEC,UAAU,qBACV,KAAK,OACL,gBAAeO,EAAW,EAC1B,QAASC,GAAA,YAAAA,EAAM,QAEd,2BAAM,QAAS,EAAA,EANXP,EAAO,GAAA,CAOd,CAEH,CAAA,EA/BIE,EAAI,GAiCZ,CAAA,EACH,CAAA,CAAA,CAAA,CAGN,EAyBMO,EAAQ,OAAO,OAAOnB,EAAgB,CAE1C,OAAQoB,EAAA,YAER,OAAQC,EAAA,YAER,KAAMC,EAAA,UAEN,IAAKC,EAAA,SAEL,KAAMC,EAAA,SACR,CAAC"}
1
+ {"version":3,"file":"Table.cjs.js","sources":["../../../src/components/Table/Table.tsx"],"sourcesContent":["import { ReactElement, useMemo } from \"react\";\r\nimport { parseTableChildren } from \"./Collection/collectionParser\";\r\nimport {\r\n TableHeader,\r\n TableColumn,\r\n TableBody,\r\n TableRow,\r\n TableCell,\r\n TableHeaderProps,\r\n TableColumnProps,\r\n TableBodyProps,\r\n TableRowProps,\r\n TableCellProps,\r\n} from \"./Collection/CompoundComponents\";\r\nimport { useTableCollection } from \"./Collection/useTableCollection\";\r\nimport type {\r\n TableData,\r\n TableColumnData,\r\n TableRowData,\r\n TableCellData,\r\n} from \"./types\";\r\nimport \"./Table.css\";\r\n\r\nexport type { TableColumnData, TableCellData, TableRowData, TableData };\r\n\r\nexport interface TableProps {\r\n children: [ReactElement<TableHeaderProps>, ReactElement<TableBodyProps>];\r\n /** Table name/caption for accessibility. Provides essential context for screen readers about table content. */\r\n name: string;\r\n}\r\n\r\nconst TableComponent = ({ children, name }: TableProps) => {\r\n const tableData: TableData = useMemo(\r\n () => parseTableChildren(children),\r\n [children]\r\n );\r\n const collection = useTableCollection(tableData);\r\n\r\n return (\r\n <table\r\n className=\"proton-Table\"\r\n role=\"table\"\r\n aria-rowcount={collection.getTotalRowCount}\r\n aria-colcount={collection.columns.length}\r\n aria-label={name}\r\n >\r\n <caption className=\"proton-Table__caption\">{name}</caption>\r\n\r\n {/* Header */}\r\n <thead\r\n className=\"proton-Table__rowGroup--header\"\r\n role=\"rowgroup\"\r\n style={collection.isHeaderHidden ? { display: \"none\" } : undefined}\r\n >\r\n <tr className=\"proton-Table__header-row\" role=\"row\" aria-rowindex={1}>\r\n {collection.columns.map((column, index) => (\r\n <th\r\n key={column.key}\r\n className=\"proton-Table__header\"\r\n role=\"columnheader\"\r\n scope=\"col\"\r\n aria-colindex={index + 1}\r\n aria-sort={column.ariaSort}\r\n >\r\n {column.header}\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n\r\n {/* Body */}\r\n <tbody className=\"proton-Table__body\" role=\"rowgroup\">\r\n {collection.rows.map((row, rowIndex) => (\r\n <tr\r\n key={row.key}\r\n className=\"proton-Table__row\"\r\n role=\"row\"\r\n aria-rowindex={collection.getRowAriaIndex(rowIndex)}\r\n onClick={row?.onClick}\r\n tabIndex={row?.onClick ? 0 : undefined}\r\n onKeyDown={\r\n row?.onClick\r\n ? (e) => {\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n // Enable keyboard navigation\r\n e.preventDefault();\r\n row.onClick?.();\r\n }\r\n }\r\n : undefined\r\n }\r\n >\r\n {collection.columns.map((column, colIndex) => {\r\n const cell = row.cells.find((c) => c.columnKey === column.key);\r\n return (\r\n <td\r\n key={column.key}\r\n className=\"proton-Table__cell\"\r\n role=\"cell\"\r\n aria-colindex={colIndex + 1}\r\n colSpan={cell?.colSpan}\r\n >\r\n {cell?.value || \"\"}\r\n </td>\r\n );\r\n })}\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\n/**\r\n * Base Table component that renders data in rows and columns using collections.\r\n *\r\n * - Built-in keyboard navigation for interactive rows.\r\n * - Full ARIA table semantics with proper roles, labels, and indices.\r\n *\r\n * API:\r\n * - {@link TableProps}\r\n *\r\n * @example\r\n * ```tsx\r\n * <Table caption=\"Employee Directory\">\r\n * <Table.Header>\r\n * <Table.Column id=\"name\">Name</Table.Column>\r\n * </Table.Header>\r\n * <Table.Body>\r\n * <Table.Row key=\"1\">\r\n * <Table.Cell>Joe</Table.Cell>\r\n * </Table.Row>\r\n * </Table.Body>\r\n * </Table>\r\n * ```\r\n */\r\nconst Table = Object.assign(TableComponent, {\r\n /** Table header: {@link TableHeaderProps} */\r\n Header: TableHeader,\r\n /** Table column: {@link TableColumnProps} */\r\n Column: TableColumn,\r\n /** Table body: {@link TableBodyProps} */\r\n Body: TableBody,\r\n /** Table row: {@link TableRowProps} */\r\n Row: TableRow,\r\n /** Table cell: {@link TableCellProps} */\r\n Cell: TableCell,\r\n});\r\n\r\nexport { Table };\r\nexport type {\r\n TableHeaderProps,\r\n TableColumnProps,\r\n TableBodyProps,\r\n TableRowProps,\r\n TableCellProps,\r\n};\r\n"],"names":["TableComponent","children","name","tableData","useMemo","parseTableChildren","collection","useTableCollection","jsxs","jsx","column","index","row","rowIndex","e","_a","colIndex","cell","c","Table","TableHeader","TableColumn","TableBody","TableRow","TableCell"],"mappings":"0VA+BA,MAAMA,EAAiB,CAAC,CAAE,SAAAC,EAAU,KAAAC,KAAuB,CACzD,MAAMC,EAAuBC,EAAA,QAC3B,IAAMC,EAAAA,mBAAmBJ,CAAQ,EACjC,CAACA,CAAQ,CAAA,EAELK,EAAaC,qBAAmBJ,CAAS,EAG7C,OAAAK,EAAA,kBAAA,KAAC,QAAA,CACC,UAAU,eACV,KAAK,QACL,gBAAeF,EAAW,iBAC1B,gBAAeA,EAAW,QAAQ,OAClC,aAAYJ,EAEZ,SAAA,CAACO,EAAA,kBAAA,IAAA,UAAA,CAAQ,UAAU,wBAAyB,SAAKP,EAAA,EAGjDO,EAAA,kBAAA,IAAC,QAAA,CACC,UAAU,iCACV,KAAK,WACL,MAAOH,EAAW,eAAiB,CAAE,QAAS,MAAW,EAAA,OAEzD,SAACG,EAAA,kBAAA,IAAA,KAAA,CAAG,UAAU,2BAA2B,KAAK,MAAM,gBAAe,EAChE,SAAWH,EAAA,QAAQ,IAAI,CAACI,EAAQC,IAC/BF,EAAA,kBAAA,IAAC,KAAA,CAEC,UAAU,uBACV,KAAK,eACL,MAAM,MACN,gBAAeE,EAAQ,EACvB,YAAWD,EAAO,SAEjB,SAAOA,EAAA,MAAA,EAPHA,EAAO,GASf,CAAA,EACH,CAAA,CACF,EAGAD,EAAAA,kBAAAA,IAAC,QAAM,CAAA,UAAU,qBAAqB,KAAK,WACxC,SAAAH,EAAW,KAAK,IAAI,CAACM,EAAKC,IACzBJ,EAAA,kBAAA,IAAC,KAAA,CAEC,UAAU,oBACV,KAAK,MACL,gBAAeH,EAAW,gBAAgBO,CAAQ,EAClD,QAASD,GAAA,YAAAA,EAAK,QACd,SAAUA,GAAA,MAAAA,EAAK,QAAU,EAAI,OAC7B,UACEA,GAAA,MAAAA,EAAK,QACAE,GAAM,QACDA,EAAE,MAAQ,SAAWA,EAAE,MAAQ,OAEjCA,EAAE,eAAe,GACjBC,EAAAH,EAAI,UAAJ,MAAAG,EAAA,KAAAH,GAGJ,EAAA,OAGL,SAAWN,EAAA,QAAQ,IAAI,CAACI,EAAQM,IAAa,CACtC,MAAAC,EAAOL,EAAI,MAAM,KAAMM,GAAMA,EAAE,YAAcR,EAAO,GAAG,EAE3D,OAAAD,EAAA,kBAAA,IAAC,KAAA,CAEC,UAAU,qBACV,KAAK,OACL,gBAAeO,EAAW,EAC1B,QAASC,GAAA,YAAAA,EAAM,QAEd,2BAAM,QAAS,EAAA,EANXP,EAAO,GAAA,CAOd,CAEH,CAAA,EA/BIE,EAAI,GAiCZ,CAAA,EACH,CAAA,CAAA,CAAA,CAGN,EAyBMO,EAAQ,OAAO,OAAOnB,EAAgB,CAE1C,OAAQoB,EAAA,YAER,OAAQC,EAAA,YAER,KAAMC,EAAA,UAEN,IAAKC,EAAA,SAEL,KAAMC,EAAA,SACR,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Table.es.js","sources":["../../../src/components/Table/Table.tsx"],"sourcesContent":["import { ReactElement, useMemo } from \"react\";\nimport { parseTableChildren } from \"./Collection/collectionParser\";\nimport {\n TableHeader,\n TableColumn,\n TableBody,\n TableRow,\n TableCell,\n TableHeaderProps,\n TableColumnProps,\n TableBodyProps,\n TableRowProps,\n TableCellProps,\n} from \"./Collection/CompoundComponents\";\nimport { useTableCollection } from \"./Collection/useTableCollection\";\nimport type {\n TableData,\n TableColumnData,\n TableRowData,\n TableCellData,\n} from \"./types\";\nimport \"./Table.css\";\n\nexport type { TableColumnData, TableCellData, TableRowData, TableData };\n\nexport interface TableProps {\n children: [ReactElement<TableHeaderProps>, ReactElement<TableBodyProps>];\n /** Table name/caption for accessibility. Provides essential context for screen readers about table content. */\n name: string;\n}\n\nconst TableComponent = ({ children, name }: TableProps) => {\n const tableData: TableData = useMemo(\n () => parseTableChildren(children),\n [children]\n );\n const collection = useTableCollection(tableData);\n\n return (\n <table\n className=\"proton-Table\"\n role=\"table\"\n aria-rowcount={collection.getTotalRowCount}\n aria-colcount={collection.columns.length}\n aria-label={name}\n >\n <caption className=\"proton-Table__caption\">{name}</caption>\n\n {/* Header */}\n <thead\n className=\"proton-Table__rowGroup--header\"\n role=\"rowgroup\"\n style={collection.isHeaderHidden ? { display: \"none\" } : undefined}\n >\n <tr className=\"proton-Table__header-row\" role=\"row\" aria-rowindex={1}>\n {collection.columns.map((column, index) => (\n <th\n key={column.key}\n className=\"proton-Table__header\"\n role=\"columnheader\"\n scope=\"col\"\n aria-colindex={index + 1}\n aria-sort={column.ariaSort}\n >\n {column.header}\n </th>\n ))}\n </tr>\n </thead>\n\n {/* Body */}\n <tbody className=\"proton-Table__body\" role=\"rowgroup\">\n {collection.rows.map((row, rowIndex) => (\n <tr\n key={row.key}\n className=\"proton-Table__row\"\n role=\"row\"\n aria-rowindex={collection.getRowAriaIndex(rowIndex)}\n onClick={row?.onClick}\n tabIndex={row?.onClick ? 0 : undefined}\n onKeyDown={\n row?.onClick\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n // Enable keyboard navigation\n e.preventDefault();\n row.onClick?.();\n }\n }\n : undefined\n }\n >\n {collection.columns.map((column, colIndex) => {\n const cell = row.cells.find((c) => c.columnKey === column.key);\n return (\n <td\n key={column.key}\n className=\"proton-Table__cell\"\n role=\"cell\"\n aria-colindex={colIndex + 1}\n colSpan={cell?.colSpan}\n >\n {cell?.value || \"\"}\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n );\n};\n\n/**\n * Base Table component that renders data in rows and columns using collections.\n *\n * - Built-in keyboard navigation for interactive rows.\n * - Full ARIA table semantics with proper roles, labels, and indices.\n *\n * API:\n * - {@link TableProps}\n *\n * @example\n * ```tsx\n * <Table caption=\"Employee Directory\">\n * <Table.Header>\n * <Table.Column id=\"name\">Name</Table.Column>\n * </Table.Header>\n * <Table.Body>\n * <Table.Row key=\"1\">\n * <Table.Cell>Joe</Table.Cell>\n * </Table.Row>\n * </Table.Body>\n * </Table>\n * ```\n */\nconst Table = Object.assign(TableComponent, {\n /** Table header: {@link TableHeaderProps} */\n Header: TableHeader,\n /** Table column: {@link TableColumnProps} */\n Column: TableColumn,\n /** Table body: {@link TableBodyProps} */\n Body: TableBody,\n /** Table row: {@link TableRowProps} */\n Row: TableRow,\n /** Table cell: {@link TableCellProps} */\n Cell: TableCell,\n});\n\nexport { Table };\nexport type {\n TableHeaderProps,\n TableColumnProps,\n TableBodyProps,\n TableRowProps,\n TableCellProps,\n};\n"],"names":["TableComponent","children","name","tableData","useMemo","parseTableChildren","collection","useTableCollection","jsxs","jsx","column","index","row","rowIndex","e","_a","colIndex","cell","c","Table","TableHeader","TableColumn","TableBody","TableRow","TableCell"],"mappings":";;;;;;AA+BA,MAAMA,IAAiB,CAAC,EAAE,UAAAC,GAAU,MAAAC,QAAuB;AACzD,QAAMC,IAAuBC;AAAA,IAC3B,MAAMC,EAAmBJ,CAAQ;AAAA,IACjC,CAACA,CAAQ;AAAA,EAAA,GAELK,IAAaC,EAAmBJ,CAAS;AAG7C,SAAAK,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,iBAAeF,EAAW;AAAA,MAC1B,iBAAeA,EAAW,QAAQ;AAAA,MAClC,cAAYJ;AAAA,MAEZ,UAAA;AAAA,QAACO,gBAAAA,EAAA,IAAA,WAAA,EAAQ,WAAU,yBAAyB,UAAKP,GAAA;AAAA,QAGjDO,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,MAAK;AAAA,YACL,OAAOH,EAAW,iBAAiB,EAAE,SAAS,OAAW,IAAA;AAAA,YAEzD,UAACG,gBAAAA,EAAA,IAAA,MAAA,EAAG,WAAU,4BAA2B,MAAK,OAAM,iBAAe,GAChE,UAAWH,EAAA,QAAQ,IAAI,CAACI,GAAQC,MAC/BF,gBAAAA,EAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBAEC,WAAU;AAAA,gBACV,MAAK;AAAA,gBACL,OAAM;AAAA,gBACN,iBAAeE,IAAQ;AAAA,gBACvB,aAAWD,EAAO;AAAA,gBAEjB,UAAOA,EAAA;AAAA,cAAA;AAAA,cAPHA,EAAO;AAAA,YASf,CAAA,GACH;AAAA,UAAA;AAAA,QACF;AAAA,QAGAD,gBAAAA,EAAAA,IAAC,SAAM,EAAA,WAAU,sBAAqB,MAAK,YACxC,UAAAH,EAAW,KAAK,IAAI,CAACM,GAAKC,MACzBJ,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAU;AAAA,YACV,MAAK;AAAA,YACL,iBAAeH,EAAW,gBAAgBO,CAAQ;AAAA,YAClD,SAASD,KAAA,gBAAAA,EAAK;AAAA,YACd,UAAUA,KAAA,QAAAA,EAAK,UAAU,IAAI;AAAA,YAC7B,WACEA,KAAA,QAAAA,EAAK,UACD,CAACE,MAAM;;AACL,eAAIA,EAAE,QAAQ,WAAWA,EAAE,QAAQ,SAEjCA,EAAE,eAAe,IACjBC,IAAAH,EAAI,YAAJ,QAAAG,EAAA,KAAAH;AAAA,YAGJ,IAAA;AAAA,YAGL,UAAWN,EAAA,QAAQ,IAAI,CAACI,GAAQM,MAAa;AACtC,oBAAAC,IAAOL,EAAI,MAAM,KAAK,CAACM,MAAMA,EAAE,cAAcR,EAAO,GAAG;AAE3D,qBAAAD,gBAAAA,EAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBAEC,WAAU;AAAA,kBACV,MAAK;AAAA,kBACL,iBAAeO,IAAW;AAAA,kBAC1B,SAASC,KAAA,gBAAAA,EAAM;AAAA,kBAEd,kCAAM,UAAS;AAAA,gBAAA;AAAA,gBANXP,EAAO;AAAA,cAAA;AAAA,YAOd,CAEH;AAAA,UAAA;AAAA,UA/BIE,EAAI;AAAA,QAiCZ,CAAA,GACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GAyBMO,IAAQ,OAAO,OAAOnB,GAAgB;AAAA;AAAA,EAE1C,QAAQoB;AAAA;AAAA,EAER,QAAQC;AAAA;AAAA,EAER,MAAMC;AAAA;AAAA,EAEN,KAAKC;AAAA;AAAA,EAEL,MAAMC;AACR,CAAC;"}
1
+ {"version":3,"file":"Table.es.js","sources":["../../../src/components/Table/Table.tsx"],"sourcesContent":["import { ReactElement, useMemo } from \"react\";\r\nimport { parseTableChildren } from \"./Collection/collectionParser\";\r\nimport {\r\n TableHeader,\r\n TableColumn,\r\n TableBody,\r\n TableRow,\r\n TableCell,\r\n TableHeaderProps,\r\n TableColumnProps,\r\n TableBodyProps,\r\n TableRowProps,\r\n TableCellProps,\r\n} from \"./Collection/CompoundComponents\";\r\nimport { useTableCollection } from \"./Collection/useTableCollection\";\r\nimport type {\r\n TableData,\r\n TableColumnData,\r\n TableRowData,\r\n TableCellData,\r\n} from \"./types\";\r\nimport \"./Table.css\";\r\n\r\nexport type { TableColumnData, TableCellData, TableRowData, TableData };\r\n\r\nexport interface TableProps {\r\n children: [ReactElement<TableHeaderProps>, ReactElement<TableBodyProps>];\r\n /** Table name/caption for accessibility. Provides essential context for screen readers about table content. */\r\n name: string;\r\n}\r\n\r\nconst TableComponent = ({ children, name }: TableProps) => {\r\n const tableData: TableData = useMemo(\r\n () => parseTableChildren(children),\r\n [children]\r\n );\r\n const collection = useTableCollection(tableData);\r\n\r\n return (\r\n <table\r\n className=\"proton-Table\"\r\n role=\"table\"\r\n aria-rowcount={collection.getTotalRowCount}\r\n aria-colcount={collection.columns.length}\r\n aria-label={name}\r\n >\r\n <caption className=\"proton-Table__caption\">{name}</caption>\r\n\r\n {/* Header */}\r\n <thead\r\n className=\"proton-Table__rowGroup--header\"\r\n role=\"rowgroup\"\r\n style={collection.isHeaderHidden ? { display: \"none\" } : undefined}\r\n >\r\n <tr className=\"proton-Table__header-row\" role=\"row\" aria-rowindex={1}>\r\n {collection.columns.map((column, index) => (\r\n <th\r\n key={column.key}\r\n className=\"proton-Table__header\"\r\n role=\"columnheader\"\r\n scope=\"col\"\r\n aria-colindex={index + 1}\r\n aria-sort={column.ariaSort}\r\n >\r\n {column.header}\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n\r\n {/* Body */}\r\n <tbody className=\"proton-Table__body\" role=\"rowgroup\">\r\n {collection.rows.map((row, rowIndex) => (\r\n <tr\r\n key={row.key}\r\n className=\"proton-Table__row\"\r\n role=\"row\"\r\n aria-rowindex={collection.getRowAriaIndex(rowIndex)}\r\n onClick={row?.onClick}\r\n tabIndex={row?.onClick ? 0 : undefined}\r\n onKeyDown={\r\n row?.onClick\r\n ? (e) => {\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n // Enable keyboard navigation\r\n e.preventDefault();\r\n row.onClick?.();\r\n }\r\n }\r\n : undefined\r\n }\r\n >\r\n {collection.columns.map((column, colIndex) => {\r\n const cell = row.cells.find((c) => c.columnKey === column.key);\r\n return (\r\n <td\r\n key={column.key}\r\n className=\"proton-Table__cell\"\r\n role=\"cell\"\r\n aria-colindex={colIndex + 1}\r\n colSpan={cell?.colSpan}\r\n >\r\n {cell?.value || \"\"}\r\n </td>\r\n );\r\n })}\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n\r\n/**\r\n * Base Table component that renders data in rows and columns using collections.\r\n *\r\n * - Built-in keyboard navigation for interactive rows.\r\n * - Full ARIA table semantics with proper roles, labels, and indices.\r\n *\r\n * API:\r\n * - {@link TableProps}\r\n *\r\n * @example\r\n * ```tsx\r\n * <Table caption=\"Employee Directory\">\r\n * <Table.Header>\r\n * <Table.Column id=\"name\">Name</Table.Column>\r\n * </Table.Header>\r\n * <Table.Body>\r\n * <Table.Row key=\"1\">\r\n * <Table.Cell>Joe</Table.Cell>\r\n * </Table.Row>\r\n * </Table.Body>\r\n * </Table>\r\n * ```\r\n */\r\nconst Table = Object.assign(TableComponent, {\r\n /** Table header: {@link TableHeaderProps} */\r\n Header: TableHeader,\r\n /** Table column: {@link TableColumnProps} */\r\n Column: TableColumn,\r\n /** Table body: {@link TableBodyProps} */\r\n Body: TableBody,\r\n /** Table row: {@link TableRowProps} */\r\n Row: TableRow,\r\n /** Table cell: {@link TableCellProps} */\r\n Cell: TableCell,\r\n});\r\n\r\nexport { Table };\r\nexport type {\r\n TableHeaderProps,\r\n TableColumnProps,\r\n TableBodyProps,\r\n TableRowProps,\r\n TableCellProps,\r\n};\r\n"],"names":["TableComponent","children","name","tableData","useMemo","parseTableChildren","collection","useTableCollection","jsxs","jsx","column","index","row","rowIndex","e","_a","colIndex","cell","c","Table","TableHeader","TableColumn","TableBody","TableRow","TableCell"],"mappings":";;;;;;AA+BA,MAAMA,IAAiB,CAAC,EAAE,UAAAC,GAAU,MAAAC,QAAuB;AACzD,QAAMC,IAAuBC;AAAA,IAC3B,MAAMC,EAAmBJ,CAAQ;AAAA,IACjC,CAACA,CAAQ;AAAA,EAAA,GAELK,IAAaC,EAAmBJ,CAAS;AAG7C,SAAAK,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,iBAAeF,EAAW;AAAA,MAC1B,iBAAeA,EAAW,QAAQ;AAAA,MAClC,cAAYJ;AAAA,MAEZ,UAAA;AAAA,QAACO,gBAAAA,EAAA,IAAA,WAAA,EAAQ,WAAU,yBAAyB,UAAKP,GAAA;AAAA,QAGjDO,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,MAAK;AAAA,YACL,OAAOH,EAAW,iBAAiB,EAAE,SAAS,OAAW,IAAA;AAAA,YAEzD,UAACG,gBAAAA,EAAA,IAAA,MAAA,EAAG,WAAU,4BAA2B,MAAK,OAAM,iBAAe,GAChE,UAAWH,EAAA,QAAQ,IAAI,CAACI,GAAQC,MAC/BF,gBAAAA,EAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBAEC,WAAU;AAAA,gBACV,MAAK;AAAA,gBACL,OAAM;AAAA,gBACN,iBAAeE,IAAQ;AAAA,gBACvB,aAAWD,EAAO;AAAA,gBAEjB,UAAOA,EAAA;AAAA,cAAA;AAAA,cAPHA,EAAO;AAAA,YASf,CAAA,GACH;AAAA,UAAA;AAAA,QACF;AAAA,QAGAD,gBAAAA,EAAAA,IAAC,SAAM,EAAA,WAAU,sBAAqB,MAAK,YACxC,UAAAH,EAAW,KAAK,IAAI,CAACM,GAAKC,MACzBJ,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAU;AAAA,YACV,MAAK;AAAA,YACL,iBAAeH,EAAW,gBAAgBO,CAAQ;AAAA,YAClD,SAASD,KAAA,gBAAAA,EAAK;AAAA,YACd,UAAUA,KAAA,QAAAA,EAAK,UAAU,IAAI;AAAA,YAC7B,WACEA,KAAA,QAAAA,EAAK,UACD,CAACE,MAAM;;AACL,eAAIA,EAAE,QAAQ,WAAWA,EAAE,QAAQ,SAEjCA,EAAE,eAAe,IACjBC,IAAAH,EAAI,YAAJ,QAAAG,EAAA,KAAAH;AAAA,YAGJ,IAAA;AAAA,YAGL,UAAWN,EAAA,QAAQ,IAAI,CAACI,GAAQM,MAAa;AACtC,oBAAAC,IAAOL,EAAI,MAAM,KAAK,CAACM,MAAMA,EAAE,cAAcR,EAAO,GAAG;AAE3D,qBAAAD,gBAAAA,EAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBAEC,WAAU;AAAA,kBACV,MAAK;AAAA,kBACL,iBAAeO,IAAW;AAAA,kBAC1B,SAASC,KAAA,gBAAAA,EAAM;AAAA,kBAEd,kCAAM,UAAS;AAAA,gBAAA;AAAA,gBANXP,EAAO;AAAA,cAAA;AAAA,YAOd,CAEH;AAAA,UAAA;AAAA,UA/BIE,EAAI;AAAA,QAiCZ,CAAA,GACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GAyBMO,IAAQ,OAAO,OAAOnB,GAAgB;AAAA;AAAA,EAE1C,QAAQoB;AAAA;AAAA,EAER,QAAQC;AAAA;AAAA,EAER,MAAMC;AAAA;AAAA,EAEN,KAAKC;AAAA;AAAA,EAEL,MAAMC;AACR,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TextEllipsis.cjs.js","sources":["../../../../src/components/Text/TextEllipsis/TextEllipsis.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode } from \"react\";\nimport { csx } from \"../../../utils\";\nimport \"./TextEllipsis.css\";\n\ninterface TextEllipsisProps {\n /**\n * The content to display within the text ellipsis.\n */\n children: ReactNode;\n\n /**\n * The maximum width of the text container in any valid CSS unit (px, rem, em, %, etc.).\n * When the container width is less than this value, text will be truncated with an ellipsis.\n */\n maxWidth?: string | number;\n\n /**\n * Whether to truncate the text to a single line. Default is true.\n * If false, the text will wrap to multiple lines.\n */\n singleLine?: boolean;\n\n /**\n * The number of lines to show before truncating with an ellipsis.\n * Only applies when singleLine is false.\n */\n lines?: number;\n\n /**\n * The title attribute to show on hover. If not provided and singleLine is true,\n * the children will be used as the title (if children is a string).\n */\n title?: string;\n\n /**\n * A test ID.\n */\n \"data-testid\"?: string;\n}\n\n/**\n * A component that displays text with an ellipsis when it overflows its container.\n *\n * API:\n * - {@link TextEllipsisProps}\n */\nexport const TextEllipsis = ({\n children,\n maxWidth,\n singleLine = true,\n lines = 1,\n title,\n \"data-testid\": testId,\n}: TextEllipsisProps) => {\n return (\n <div\n className={csx(\n \"proton-TextEllipsis\",\n singleLine || lines === 1\n ? \"proton-TextEllipsis--single-line\"\n : lines > 1\n ? \"proton-TextEllipsis--multi-line\"\n : \"\"\n )}\n style={{\n maxWidth: maxWidth,\n WebkitLineClamp: lines,\n }}\n title={title}\n data-testid={testId}\n >\n {children}\n </div>\n );\n};\n"],"names":["TextEllipsis","children","maxWidth","singleLine","lines","title","testId","jsx","csx"],"mappings":"uOAgDaA,EAAe,CAAC,CAC3B,SAAAC,EACA,SAAAC,EACA,WAAAC,EAAa,GACb,MAAAC,EAAQ,EACR,MAAAC,EACA,cAAeC,CACjB,IAEIC,EAAA,kBAAA,IAAC,MAAA,CACC,UAAWC,EAAA,IACT,sBACAL,GAAcC,IAAU,EACpB,mCACAA,EAAQ,EACN,kCACA,EACR,EACA,MAAO,CACL,SAAAF,EACA,gBAAiBE,CACnB,EACA,MAAAC,EACA,cAAaC,EAEZ,SAAAL,CAAA,CAAA"}
1
+ {"version":3,"file":"TextEllipsis.cjs.js","sources":["../../../../src/components/Text/TextEllipsis/TextEllipsis.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ReactNode } from \"react\";\r\nimport { csx } from \"../../../utils\";\r\nimport \"./TextEllipsis.css\";\r\n\r\ninterface TextEllipsisProps {\r\n /**\r\n * The content to display within the text ellipsis.\r\n */\r\n children: ReactNode;\r\n\r\n /**\r\n * The maximum width of the text container in any valid CSS unit (px, rem, em, %, etc.).\r\n * When the container width is less than this value, text will be truncated with an ellipsis.\r\n */\r\n maxWidth?: string | number;\r\n\r\n /**\r\n * Whether to truncate the text to a single line. Default is true.\r\n * If false, the text will wrap to multiple lines.\r\n */\r\n singleLine?: boolean;\r\n\r\n /**\r\n * The number of lines to show before truncating with an ellipsis.\r\n * Only applies when singleLine is false.\r\n */\r\n lines?: number;\r\n\r\n /**\r\n * The title attribute to show on hover. If not provided and singleLine is true,\r\n * the children will be used as the title (if children is a string).\r\n */\r\n title?: string;\r\n\r\n /**\r\n * A test ID.\r\n */\r\n \"data-testid\"?: string;\r\n}\r\n\r\n/**\r\n * A component that displays text with an ellipsis when it overflows its container.\r\n *\r\n * API:\r\n * - {@link TextEllipsisProps}\r\n */\r\nexport const TextEllipsis = ({\r\n children,\r\n maxWidth,\r\n singleLine = true,\r\n lines = 1,\r\n title,\r\n \"data-testid\": testId,\r\n}: TextEllipsisProps) => {\r\n return (\r\n <div\r\n className={csx(\r\n \"proton-TextEllipsis\",\r\n singleLine || lines === 1\r\n ? \"proton-TextEllipsis--single-line\"\r\n : lines > 1\r\n ? \"proton-TextEllipsis--multi-line\"\r\n : \"\"\r\n )}\r\n style={{\r\n maxWidth: maxWidth,\r\n WebkitLineClamp: lines,\r\n }}\r\n title={title}\r\n data-testid={testId}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n"],"names":["TextEllipsis","children","maxWidth","singleLine","lines","title","testId","jsx","csx"],"mappings":"uOAgDaA,EAAe,CAAC,CAC3B,SAAAC,EACA,SAAAC,EACA,WAAAC,EAAa,GACb,MAAAC,EAAQ,EACR,MAAAC,EACA,cAAeC,CACjB,IAEIC,EAAA,kBAAA,IAAC,MAAA,CACC,UAAWC,EAAA,IACT,sBACAL,GAAcC,IAAU,EACpB,mCACAA,EAAQ,EACN,kCACA,EACR,EACA,MAAO,CACL,SAAAF,EACA,gBAAiBE,CACnB,EACA,MAAAC,EACA,cAAaC,EAEZ,SAAAL,CAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"TextEllipsis.es.js","sources":["../../../../src/components/Text/TextEllipsis/TextEllipsis.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode } from \"react\";\nimport { csx } from \"../../../utils\";\nimport \"./TextEllipsis.css\";\n\ninterface TextEllipsisProps {\n /**\n * The content to display within the text ellipsis.\n */\n children: ReactNode;\n\n /**\n * The maximum width of the text container in any valid CSS unit (px, rem, em, %, etc.).\n * When the container width is less than this value, text will be truncated with an ellipsis.\n */\n maxWidth?: string | number;\n\n /**\n * Whether to truncate the text to a single line. Default is true.\n * If false, the text will wrap to multiple lines.\n */\n singleLine?: boolean;\n\n /**\n * The number of lines to show before truncating with an ellipsis.\n * Only applies when singleLine is false.\n */\n lines?: number;\n\n /**\n * The title attribute to show on hover. If not provided and singleLine is true,\n * the children will be used as the title (if children is a string).\n */\n title?: string;\n\n /**\n * A test ID.\n */\n \"data-testid\"?: string;\n}\n\n/**\n * A component that displays text with an ellipsis when it overflows its container.\n *\n * API:\n * - {@link TextEllipsisProps}\n */\nexport const TextEllipsis = ({\n children,\n maxWidth,\n singleLine = true,\n lines = 1,\n title,\n \"data-testid\": testId,\n}: TextEllipsisProps) => {\n return (\n <div\n className={csx(\n \"proton-TextEllipsis\",\n singleLine || lines === 1\n ? \"proton-TextEllipsis--single-line\"\n : lines > 1\n ? \"proton-TextEllipsis--multi-line\"\n : \"\"\n )}\n style={{\n maxWidth: maxWidth,\n WebkitLineClamp: lines,\n }}\n title={title}\n data-testid={testId}\n >\n {children}\n </div>\n );\n};\n"],"names":["TextEllipsis","children","maxWidth","singleLine","lines","title","testId","jsx","csx"],"mappings":";;;AAgDO,MAAMA,IAAe,CAAC;AAAA,EAC3B,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,OAAAC,IAAQ;AAAA,EACR,OAAAC;AAAA,EACA,eAAeC;AACjB,MAEIC,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,MACAL,KAAcC,MAAU,IACpB,qCACAA,IAAQ,IACN,oCACA;AAAA,IACR;AAAA,IACA,OAAO;AAAA,MACL,UAAAF;AAAA,MACA,iBAAiBE;AAAA,IACnB;AAAA,IACA,OAAAC;AAAA,IACA,eAAaC;AAAA,IAEZ,UAAAL;AAAA,EAAA;AAAA;"}
1
+ {"version":3,"file":"TextEllipsis.es.js","sources":["../../../../src/components/Text/TextEllipsis/TextEllipsis.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ReactNode } from \"react\";\r\nimport { csx } from \"../../../utils\";\r\nimport \"./TextEllipsis.css\";\r\n\r\ninterface TextEllipsisProps {\r\n /**\r\n * The content to display within the text ellipsis.\r\n */\r\n children: ReactNode;\r\n\r\n /**\r\n * The maximum width of the text container in any valid CSS unit (px, rem, em, %, etc.).\r\n * When the container width is less than this value, text will be truncated with an ellipsis.\r\n */\r\n maxWidth?: string | number;\r\n\r\n /**\r\n * Whether to truncate the text to a single line. Default is true.\r\n * If false, the text will wrap to multiple lines.\r\n */\r\n singleLine?: boolean;\r\n\r\n /**\r\n * The number of lines to show before truncating with an ellipsis.\r\n * Only applies when singleLine is false.\r\n */\r\n lines?: number;\r\n\r\n /**\r\n * The title attribute to show on hover. If not provided and singleLine is true,\r\n * the children will be used as the title (if children is a string).\r\n */\r\n title?: string;\r\n\r\n /**\r\n * A test ID.\r\n */\r\n \"data-testid\"?: string;\r\n}\r\n\r\n/**\r\n * A component that displays text with an ellipsis when it overflows its container.\r\n *\r\n * API:\r\n * - {@link TextEllipsisProps}\r\n */\r\nexport const TextEllipsis = ({\r\n children,\r\n maxWidth,\r\n singleLine = true,\r\n lines = 1,\r\n title,\r\n \"data-testid\": testId,\r\n}: TextEllipsisProps) => {\r\n return (\r\n <div\r\n className={csx(\r\n \"proton-TextEllipsis\",\r\n singleLine || lines === 1\r\n ? \"proton-TextEllipsis--single-line\"\r\n : lines > 1\r\n ? \"proton-TextEllipsis--multi-line\"\r\n : \"\"\r\n )}\r\n style={{\r\n maxWidth: maxWidth,\r\n WebkitLineClamp: lines,\r\n }}\r\n title={title}\r\n data-testid={testId}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n"],"names":["TextEllipsis","children","maxWidth","singleLine","lines","title","testId","jsx","csx"],"mappings":";;;AAgDO,MAAMA,IAAe,CAAC;AAAA,EAC3B,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,OAAAC,IAAQ;AAAA,EACR,OAAAC;AAAA,EACA,eAAeC;AACjB,MAEIC,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,MACAL,KAAcC,MAAU,IACpB,qCACAA,IAAQ,IACN,oCACA;AAAA,IACR;AAAA,IACA,OAAO;AAAA,MACL,UAAAF;AAAA,MACA,iBAAiBE;AAAA,IACnB;AAAA,IACA,OAAAC;AAAA,IACA,eAAaC;AAAA,IAEZ,UAAAL;AAAA,EAAA;AAAA;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../../node_modules/react/jsx-runtime.cjs.js");;/* empty css */const m=require("../../ThemeProvider.cjs.js"),u=require("../../Tooltip/Tooltip.cjs.js"),x=require("../../../utils/navigation.cjs.js"),c=require("../../../utils/string.cjs.js"),p=({to:e,children:n,tooltipProps:s,"data-testid":i})=>{const{className:a}=m.useTheme(),o=s?t.jsxRuntimeExports.jsx(u.TooltipTrigger,{delay:50,closeDelay:75,...s,children:n}):n;if(e){const r=x.isUrlExternal(e);return t.jsxRuntimeExports.jsx("span",{className:c.csx("proton-TextEmphasis",s&&"proton-TextEmphasis--tooltip",a),children:t.jsxRuntimeExports.jsx("a",{"data-testid":i,href:e,target:r?"_blank":void 0,rel:r?"noopener noreferrer":void 0,onClick:r?void 0:l=>x.handleInternalNavigation(l,e),children:o})})}return t.jsxRuntimeExports.jsx("span",{className:c.csx("proton-TextEmphasis",s&&"proton-TextEmphasis--tooltip",a),"data-testid":i,children:o})};exports.TextEmphasis=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../../node_modules/react/jsx-runtime.cjs.js");;/* empty css */const m=require("../../ThemeProvider.cjs.js"),u=require("../../Tooltip/Tooltip.cjs.js"),x=require("../../../utils/navigation.cjs.js"),c=require("../../../utils/string.cjs.js"),p=({to:e,children:r,tooltipProps:s,"data-testid":i})=>{const{className:a}=m.useTheme(),o=s?t.jsxRuntimeExports.jsx(u.Tooltip,{delay:50,...s,children:r}):r;if(e){const n=x.isUrlExternal(e);return t.jsxRuntimeExports.jsx("span",{className:c.csx("proton-TextEmphasis",s&&"proton-TextEmphasis--tooltip",a),children:t.jsxRuntimeExports.jsx("a",{"data-testid":i,href:e,target:n?"_blank":void 0,rel:n?"noopener noreferrer":void 0,onClick:n?void 0:l=>x.handleInternalNavigation(l,e),children:o})})}return t.jsxRuntimeExports.jsx("span",{className:c.csx("proton-TextEmphasis",s&&"proton-TextEmphasis--tooltip",a),"data-testid":i,children:o})};exports.TextEmphasis=p;
2
2
  //# sourceMappingURL=TextEmphasis.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextEmphasis.cjs.js","sources":["../../../../src/components/Text/TextEmphasis/TextEmphasis.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode } from \"react\";\nimport \"./TextEmphasis.css\";\n\nimport { csx } from \"../../../utils\";\nimport { useTheme } from \"../../ThemeProvider\";\nimport { TooltipTrigger, TooltipTriggerProps } from \"../../Tooltip/Tooltip\";\nimport {\n handleInternalNavigation,\n isUrlExternal,\n} from \"../../../utils/navigation\";\n\ninterface TextEmphasisProps extends React.HTMLAttributes<HTMLSpanElement> {\n /**\n * The URL that the text emphasis should link to. Turns the element into an `a` tag.\n */\n to?: string;\n /**\n * The content to display within the text emphasis.\n */\n children: ReactNode;\n /**\n * Props to pass to the tooltip trigger. When provided, the text emphasis will be wrapped in a tooltip trigger.\n */\n tooltipProps?: Omit<TooltipTriggerProps, \"children\">;\n /**\n * A test ID.\n */\n \"data-testid\"?: string;\n}\n\n/**\n * A component that displays text with emphasis. Provide tooltipProps to wrap the text in a tooltip trigger.\n *\n * API:\n * - {@link TextEmphasisProps}\n * - extends {@link React.HTMLAttributes}\n */\nexport const TextEmphasis = ({\n to,\n children,\n tooltipProps,\n \"data-testid\": testId,\n}: TextEmphasisProps) => {\n const { className: themeClassName } = useTheme();\n\n const content = tooltipProps ? (\n <TooltipTrigger delay={50} closeDelay={75} {...tooltipProps}>\n {children}\n </TooltipTrigger>\n ) : (\n children\n );\n\n if (to) {\n const isExternal = isUrlExternal(to);\n return (\n <span\n className={csx(\n \"proton-TextEmphasis\",\n tooltipProps && \"proton-TextEmphasis--tooltip\",\n themeClassName\n )}\n >\n <a\n data-testid={testId}\n href={to}\n target={isExternal ? \"_blank\" : undefined}\n rel={isExternal ? \"noopener noreferrer\" : undefined}\n onClick={\n !isExternal ? (e) => handleInternalNavigation(e, to) : undefined\n }\n >\n {content}\n </a>\n </span>\n );\n }\n\n return (\n <span\n className={csx(\n \"proton-TextEmphasis\",\n tooltipProps && \"proton-TextEmphasis--tooltip\",\n themeClassName\n )}\n data-testid={testId}\n >\n {content}\n </span>\n );\n};\n"],"names":["TextEmphasis","to","children","tooltipProps","testId","themeClassName","useTheme","content","jsx","TooltipTrigger","isExternal","isUrlExternal","csx","e","handleInternalNavigation"],"mappings":"uWAuCaA,EAAe,CAAC,CAC3B,GAAAC,EACA,SAAAC,EACA,aAAAC,EACA,cAAeC,CACjB,IAAyB,CACvB,KAAM,CAAE,UAAWC,CAAe,EAAIC,EAAS,SAAA,EAEzCC,EAAUJ,EACdK,EAAA,kBAAA,IAACC,EAAe,eAAA,CAAA,MAAO,GAAI,WAAY,GAAK,GAAGN,EAC5C,SAAAD,CACH,CAAA,EAEAA,EAGF,GAAID,EAAI,CACA,MAAAS,EAAaC,gBAAcV,CAAE,EAEjC,OAAAO,EAAA,kBAAA,IAAC,OAAA,CACC,UAAWI,EAAA,IACT,sBACAT,GAAgB,+BAChBE,CACF,EAEA,SAAAG,EAAA,kBAAA,IAAC,IAAA,CACC,cAAaJ,EACb,KAAMH,EACN,OAAQS,EAAa,SAAW,OAChC,IAAKA,EAAa,sBAAwB,OAC1C,QACGA,EAAsD,OAAxCG,GAAMC,EAAyB,yBAAAD,EAAGZ,CAAE,EAGpD,SAAAM,CAAA,CACH,CAAA,CAAA,CAGN,CAGE,OAAAC,EAAA,kBAAA,IAAC,OAAA,CACC,UAAWI,EAAA,IACT,sBACAT,GAAgB,+BAChBE,CACF,EACA,cAAaD,EAEZ,SAAAG,CAAA,CAAA,CAGP"}
1
+ {"version":3,"file":"TextEmphasis.cjs.js","sources":["../../../../src/components/Text/TextEmphasis/TextEmphasis.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ReactNode } from \"react\";\r\nimport \"./TextEmphasis.css\";\r\n\r\nimport { csx } from \"../../../utils\";\r\nimport { useTheme } from \"../../ThemeProvider\";\r\nimport { Tooltip, TooltipProps } from \"../../Tooltip/Tooltip\";\r\nimport {\r\n handleInternalNavigation,\r\n isUrlExternal,\r\n} from \"../../../utils/navigation\";\r\n\r\ninterface TextEmphasisProps {\r\n /**\r\n * The URL that the text emphasis should link to. Turns the element into an `a` tag.\r\n */\r\n to?: string;\r\n /**\r\n * The content to display within the text emphasis.\r\n */\r\n children: ReactNode;\r\n /**\r\n * Props to pass to the tooltip trigger. When provided, the text emphasis will be wrapped in a tooltip trigger.\r\n */\r\n tooltipProps?: Omit<TooltipProps, \"children\">;\r\n /**\r\n * A test ID.\r\n */\r\n \"data-testid\"?: string;\r\n}\r\n\r\n/**\r\n * A component that displays text with emphasis. Provide tooltipProps to wrap the text in a tooltip trigger.\r\n *\r\n * API:\r\n * - {@link TextEmphasisProps}\r\n */\r\nexport const TextEmphasis = ({\r\n to,\r\n children,\r\n tooltipProps,\r\n \"data-testid\": testId,\r\n}: TextEmphasisProps) => {\r\n const { className: themeClassName } = useTheme();\r\n\r\n const content = tooltipProps ? (\r\n <Tooltip delay={50} {...tooltipProps}>\r\n {children}\r\n </Tooltip>\r\n ) : (\r\n children\r\n );\r\n\r\n if (to) {\r\n const isExternal = isUrlExternal(to);\r\n return (\r\n <span\r\n className={csx(\r\n \"proton-TextEmphasis\",\r\n tooltipProps && \"proton-TextEmphasis--tooltip\",\r\n themeClassName\r\n )}\r\n >\r\n <a\r\n data-testid={testId}\r\n href={to}\r\n target={isExternal ? \"_blank\" : undefined}\r\n rel={isExternal ? \"noopener noreferrer\" : undefined}\r\n onClick={\r\n !isExternal ? (e) => handleInternalNavigation(e, to) : undefined\r\n }\r\n >\r\n {content}\r\n </a>\r\n </span>\r\n );\r\n }\r\n\r\n return (\r\n <span\r\n className={csx(\r\n \"proton-TextEmphasis\",\r\n tooltipProps && \"proton-TextEmphasis--tooltip\",\r\n themeClassName\r\n )}\r\n data-testid={testId}\r\n >\r\n {content}\r\n </span>\r\n );\r\n};\r\n"],"names":["TextEmphasis","to","children","tooltipProps","testId","themeClassName","useTheme","content","jsx","Tooltip","isExternal","isUrlExternal","csx","e","handleInternalNavigation"],"mappings":"uWAsCaA,EAAe,CAAC,CAC3B,GAAAC,EACA,SAAAC,EACA,aAAAC,EACA,cAAeC,CACjB,IAAyB,CACvB,KAAM,CAAE,UAAWC,CAAe,EAAIC,EAAS,SAAA,EAEzCC,EAAUJ,EACbK,EAAA,kBAAA,IAAAC,EAAA,QAAA,CAAQ,MAAO,GAAK,GAAGN,EACrB,SAAAD,CACH,CAAA,EAEAA,EAGF,GAAID,EAAI,CACA,MAAAS,EAAaC,gBAAcV,CAAE,EAEjC,OAAAO,EAAA,kBAAA,IAAC,OAAA,CACC,UAAWI,EAAA,IACT,sBACAT,GAAgB,+BAChBE,CACF,EAEA,SAAAG,EAAA,kBAAA,IAAC,IAAA,CACC,cAAaJ,EACb,KAAMH,EACN,OAAQS,EAAa,SAAW,OAChC,IAAKA,EAAa,sBAAwB,OAC1C,QACGA,EAAsD,OAAxCG,GAAMC,EAAyB,yBAAAD,EAAGZ,CAAE,EAGpD,SAAAM,CAAA,CACH,CAAA,CAAA,CAGN,CAGE,OAAAC,EAAA,kBAAA,IAAC,OAAA,CACC,UAAWI,EAAA,IACT,sBACAT,GAAgB,+BAChBE,CACF,EACA,cAAaD,EAEZ,SAAAG,CAAA,CAAA,CAGP"}
@@ -1,34 +1,34 @@
1
1
  import { j as s } from "../../../node_modules/react/jsx-runtime.es.js";
2
2
  /* empty css */
3
- import { useTheme as p } from "../../ThemeProvider.es.js";
4
- import { TooltipTrigger as x } from "../../Tooltip/Tooltip.es.js";
3
+ import { useTheme as l } from "../../ThemeProvider.es.js";
4
+ import { Tooltip as x } from "../../Tooltip/Tooltip.es.js";
5
5
  import { isUrlExternal as c, handleInternalNavigation as d } from "../../../utils/navigation.es.js";
6
6
  import { csx as m } from "../../../utils/string.es.js";
7
- const g = ({
7
+ const u = ({
8
8
  to: e,
9
- children: a,
9
+ children: r,
10
10
  tooltipProps: t,
11
- "data-testid": o
11
+ "data-testid": n
12
12
  }) => {
13
- const { className: n } = p(), i = t ? /* @__PURE__ */ s.jsx(x, { delay: 50, closeDelay: 75, ...t, children: a }) : a;
13
+ const { className: o } = l(), i = t ? /* @__PURE__ */ s.jsx(x, { delay: 50, ...t, children: r }) : r;
14
14
  if (e) {
15
- const r = c(e);
15
+ const a = c(e);
16
16
  return /* @__PURE__ */ s.jsx(
17
17
  "span",
18
18
  {
19
19
  className: m(
20
20
  "proton-TextEmphasis",
21
21
  t && "proton-TextEmphasis--tooltip",
22
- n
22
+ o
23
23
  ),
24
24
  children: /* @__PURE__ */ s.jsx(
25
25
  "a",
26
26
  {
27
- "data-testid": o,
27
+ "data-testid": n,
28
28
  href: e,
29
- target: r ? "_blank" : void 0,
30
- rel: r ? "noopener noreferrer" : void 0,
31
- onClick: r ? void 0 : (l) => d(l, e),
29
+ target: a ? "_blank" : void 0,
30
+ rel: a ? "noopener noreferrer" : void 0,
31
+ onClick: a ? void 0 : (p) => d(p, e),
32
32
  children: i
33
33
  }
34
34
  )
@@ -41,14 +41,14 @@ const g = ({
41
41
  className: m(
42
42
  "proton-TextEmphasis",
43
43
  t && "proton-TextEmphasis--tooltip",
44
- n
44
+ o
45
45
  ),
46
- "data-testid": o,
46
+ "data-testid": n,
47
47
  children: i
48
48
  }
49
49
  );
50
50
  };
51
51
  export {
52
- g as TextEmphasis
52
+ u as TextEmphasis
53
53
  };
54
54
  //# sourceMappingURL=TextEmphasis.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextEmphasis.es.js","sources":["../../../../src/components/Text/TextEmphasis/TextEmphasis.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode } from \"react\";\nimport \"./TextEmphasis.css\";\n\nimport { csx } from \"../../../utils\";\nimport { useTheme } from \"../../ThemeProvider\";\nimport { TooltipTrigger, TooltipTriggerProps } from \"../../Tooltip/Tooltip\";\nimport {\n handleInternalNavigation,\n isUrlExternal,\n} from \"../../../utils/navigation\";\n\ninterface TextEmphasisProps extends React.HTMLAttributes<HTMLSpanElement> {\n /**\n * The URL that the text emphasis should link to. Turns the element into an `a` tag.\n */\n to?: string;\n /**\n * The content to display within the text emphasis.\n */\n children: ReactNode;\n /**\n * Props to pass to the tooltip trigger. When provided, the text emphasis will be wrapped in a tooltip trigger.\n */\n tooltipProps?: Omit<TooltipTriggerProps, \"children\">;\n /**\n * A test ID.\n */\n \"data-testid\"?: string;\n}\n\n/**\n * A component that displays text with emphasis. Provide tooltipProps to wrap the text in a tooltip trigger.\n *\n * API:\n * - {@link TextEmphasisProps}\n * - extends {@link React.HTMLAttributes}\n */\nexport const TextEmphasis = ({\n to,\n children,\n tooltipProps,\n \"data-testid\": testId,\n}: TextEmphasisProps) => {\n const { className: themeClassName } = useTheme();\n\n const content = tooltipProps ? (\n <TooltipTrigger delay={50} closeDelay={75} {...tooltipProps}>\n {children}\n </TooltipTrigger>\n ) : (\n children\n );\n\n if (to) {\n const isExternal = isUrlExternal(to);\n return (\n <span\n className={csx(\n \"proton-TextEmphasis\",\n tooltipProps && \"proton-TextEmphasis--tooltip\",\n themeClassName\n )}\n >\n <a\n data-testid={testId}\n href={to}\n target={isExternal ? \"_blank\" : undefined}\n rel={isExternal ? \"noopener noreferrer\" : undefined}\n onClick={\n !isExternal ? (e) => handleInternalNavigation(e, to) : undefined\n }\n >\n {content}\n </a>\n </span>\n );\n }\n\n return (\n <span\n className={csx(\n \"proton-TextEmphasis\",\n tooltipProps && \"proton-TextEmphasis--tooltip\",\n themeClassName\n )}\n data-testid={testId}\n >\n {content}\n </span>\n );\n};\n"],"names":["TextEmphasis","to","children","tooltipProps","testId","themeClassName","useTheme","content","jsx","TooltipTrigger","isExternal","isUrlExternal","csx","e","handleInternalNavigation"],"mappings":";;;;;;AAuCO,MAAMA,IAAe,CAAC;AAAA,EAC3B,IAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC;AAAA,EACA,eAAeC;AACjB,MAAyB;AACvB,QAAM,EAAE,WAAWC,EAAe,IAAIC,EAAS,GAEzCC,IAAUJ,IACdK,gBAAAA,EAAA,IAACC,GAAe,EAAA,OAAO,IAAI,YAAY,IAAK,GAAGN,GAC5C,UAAAD,EACH,CAAA,IAEAA;AAGF,MAAID,GAAI;AACA,UAAAS,IAAaC,EAAcV,CAAE;AAEjC,WAAAO,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWI;AAAA,UACT;AAAA,UACAT,KAAgB;AAAA,UAChBE;AAAA,QACF;AAAA,QAEA,UAAAG,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,eAAaJ;AAAA,YACb,MAAMH;AAAA,YACN,QAAQS,IAAa,WAAW;AAAA,YAChC,KAAKA,IAAa,wBAAwB;AAAA,YAC1C,SACGA,IAAsD,SAAzC,CAACG,MAAMC,EAAyBD,GAAGZ,CAAE;AAAA,YAGpD,UAAAM;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AAGE,SAAAC,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWI;AAAA,QACT;AAAA,QACAT,KAAgB;AAAA,QAChBE;AAAA,MACF;AAAA,MACA,eAAaD;AAAA,MAEZ,UAAAG;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"TextEmphasis.es.js","sources":["../../../../src/components/Text/TextEmphasis/TextEmphasis.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ReactNode } from \"react\";\r\nimport \"./TextEmphasis.css\";\r\n\r\nimport { csx } from \"../../../utils\";\r\nimport { useTheme } from \"../../ThemeProvider\";\r\nimport { Tooltip, TooltipProps } from \"../../Tooltip/Tooltip\";\r\nimport {\r\n handleInternalNavigation,\r\n isUrlExternal,\r\n} from \"../../../utils/navigation\";\r\n\r\ninterface TextEmphasisProps {\r\n /**\r\n * The URL that the text emphasis should link to. Turns the element into an `a` tag.\r\n */\r\n to?: string;\r\n /**\r\n * The content to display within the text emphasis.\r\n */\r\n children: ReactNode;\r\n /**\r\n * Props to pass to the tooltip trigger. When provided, the text emphasis will be wrapped in a tooltip trigger.\r\n */\r\n tooltipProps?: Omit<TooltipProps, \"children\">;\r\n /**\r\n * A test ID.\r\n */\r\n \"data-testid\"?: string;\r\n}\r\n\r\n/**\r\n * A component that displays text with emphasis. Provide tooltipProps to wrap the text in a tooltip trigger.\r\n *\r\n * API:\r\n * - {@link TextEmphasisProps}\r\n */\r\nexport const TextEmphasis = ({\r\n to,\r\n children,\r\n tooltipProps,\r\n \"data-testid\": testId,\r\n}: TextEmphasisProps) => {\r\n const { className: themeClassName } = useTheme();\r\n\r\n const content = tooltipProps ? (\r\n <Tooltip delay={50} {...tooltipProps}>\r\n {children}\r\n </Tooltip>\r\n ) : (\r\n children\r\n );\r\n\r\n if (to) {\r\n const isExternal = isUrlExternal(to);\r\n return (\r\n <span\r\n className={csx(\r\n \"proton-TextEmphasis\",\r\n tooltipProps && \"proton-TextEmphasis--tooltip\",\r\n themeClassName\r\n )}\r\n >\r\n <a\r\n data-testid={testId}\r\n href={to}\r\n target={isExternal ? \"_blank\" : undefined}\r\n rel={isExternal ? \"noopener noreferrer\" : undefined}\r\n onClick={\r\n !isExternal ? (e) => handleInternalNavigation(e, to) : undefined\r\n }\r\n >\r\n {content}\r\n </a>\r\n </span>\r\n );\r\n }\r\n\r\n return (\r\n <span\r\n className={csx(\r\n \"proton-TextEmphasis\",\r\n tooltipProps && \"proton-TextEmphasis--tooltip\",\r\n themeClassName\r\n )}\r\n data-testid={testId}\r\n >\r\n {content}\r\n </span>\r\n );\r\n};\r\n"],"names":["TextEmphasis","to","children","tooltipProps","testId","themeClassName","useTheme","content","jsx","Tooltip","isExternal","isUrlExternal","csx","e","handleInternalNavigation"],"mappings":";;;;;;AAsCO,MAAMA,IAAe,CAAC;AAAA,EAC3B,IAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC;AAAA,EACA,eAAeC;AACjB,MAAyB;AACvB,QAAM,EAAE,WAAWC,EAAe,IAAIC,EAAS,GAEzCC,IAAUJ,IACbK,gBAAAA,EAAA,IAAAC,GAAA,EAAQ,OAAO,IAAK,GAAGN,GACrB,UAAAD,EACH,CAAA,IAEAA;AAGF,MAAID,GAAI;AACA,UAAAS,IAAaC,EAAcV,CAAE;AAEjC,WAAAO,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWI;AAAA,UACT;AAAA,UACAT,KAAgB;AAAA,UAChBE;AAAA,QACF;AAAA,QAEA,UAAAG,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,eAAaJ;AAAA,YACb,MAAMH;AAAA,YACN,QAAQS,IAAa,WAAW;AAAA,YAChC,KAAKA,IAAa,wBAAwB;AAAA,YAC1C,SACGA,IAAsD,SAAzC,CAACG,MAAMC,EAAyBD,GAAGZ,CAAE;AAAA,YAGpD,UAAAM;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AAGE,SAAAC,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWI;AAAA,QACT;AAAA,QACAT,KAAgB;AAAA,QAChBE;AAAA,MACF;AAAA,MACA,eAAaD;AAAA,MAEZ,UAAAG;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../node_modules/react/jsx-runtime.cjs.js"),t=require("react"),h=require("../design/lightTheme/colors.cjs.js"),l=require("../design/generateStylesheet.cjs.js"),d=require("../design/theme.cjs.js"),u=t.createContext(void 0),T=()=>{const e=t.useContext(u);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e},x=({theme:e,children:i,palette:r=h.LIGHT_PALETTE})=>{const s=t.useRef(null),o=d.THEME_CLASSES[e],n=t.useMemo(()=>l.generateStylesheet(r,e),[r,e]);return t.useEffect(()=>{s.current&&(s.current.className=o,Object.entries(n).forEach(([a,m])=>{s.current.style.setProperty(a,m)}))},[e,o,r,n]),c.jsxRuntimeExports.jsx(u.Provider,{value:{theme:e,style:n,palette:r,className:o,hasPalette:!!r},children:c.jsxRuntimeExports.jsx("div",{ref:s,children:i})})};exports.ThemeProvider=x;exports.useTheme=T;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../node_modules/react/jsx-runtime.cjs.js"),t=require("react"),h=require("../design/lightTheme/colors.cjs.js"),l=require("../design/generateStylesheet.cjs.js"),T=require("../design/theme.cjs.js"),u=t.createContext(void 0),d=()=>{const e=t.useContext(u);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e},x=({theme:e,children:i,palette:r=h.LIGHT_PALETTE})=>{const s=t.useRef(null),o=T.THEME_CLASSES[e],n=t.useMemo(()=>l.generateStylesheet(r,e),[r,e]);return t.useEffect(()=>{s.current&&(s.current.className=o,Object.entries(n).forEach(([a,m])=>{s.current.style.setProperty(a,m)}))},[e,o,r,n]),c.jsxRuntimeExports.jsx(u.Provider,{value:{theme:e,style:n,palette:r,className:o,hasPalette:!!r},children:c.jsxRuntimeExports.jsx("div",{ref:s,children:i})})};exports.ThemeProvider=x;exports.useTheme=d;
2
2
  //# sourceMappingURL=ThemeProvider.cjs.js.map