@dnanpm/ui-components 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/README.md +13 -0
  2. package/dist/components/Accordion/Accordion.css +9 -2
  3. package/dist/components/AccordionItem/AccordionItem.cjs +4 -4
  4. package/dist/components/AccordionItem/AccordionItem.cjs.map +1 -1
  5. package/dist/components/AccordionItem/AccordionItem.css +8 -2
  6. package/dist/components/AccordionItem/AccordionItem.d.ts.map +1 -1
  7. package/dist/components/AccordionItem/AccordionItem.js +2 -2
  8. package/dist/components/AccordionItem/AccordionItem.js.map +1 -1
  9. package/dist/components/Avatar/Avatar.cjs +83 -0
  10. package/dist/components/Avatar/Avatar.cjs.map +1 -0
  11. package/dist/components/Avatar/Avatar.css +188 -0
  12. package/dist/components/Avatar/Avatar.d.ts +3 -0
  13. package/dist/components/Avatar/Avatar.d.ts.map +1 -0
  14. package/dist/components/Avatar/Avatar.js +83 -0
  15. package/dist/components/Avatar/Avatar.js.map +1 -0
  16. package/dist/components/Avatar/Avatar.module.css.cjs +40 -0
  17. package/dist/components/Avatar/Avatar.module.css.cjs.map +1 -0
  18. package/dist/components/Avatar/Avatar.module.css.js +40 -0
  19. package/dist/components/Avatar/Avatar.module.css.js.map +1 -0
  20. package/dist/components/Avatar/Avatar.types.d.ts +66 -0
  21. package/dist/components/Avatar/Avatar.types.d.ts.map +1 -0
  22. package/dist/components/Avatar/Avatar.utils.cjs +17 -0
  23. package/dist/components/Avatar/Avatar.utils.cjs.map +1 -0
  24. package/dist/components/Avatar/Avatar.utils.d.ts +6 -0
  25. package/dist/components/Avatar/Avatar.utils.d.ts.map +1 -0
  26. package/dist/components/Avatar/Avatar.utils.js +17 -0
  27. package/dist/components/Avatar/Avatar.utils.js.map +1 -0
  28. package/dist/components/Avatar/index.d.ts +3 -0
  29. package/dist/components/Avatar/index.d.ts.map +1 -0
  30. package/dist/components/Breadcrumb/Breadcrumb.cjs +9 -12
  31. package/dist/components/Breadcrumb/Breadcrumb.cjs.map +1 -1
  32. package/dist/components/Breadcrumb/Breadcrumb.css +20 -17
  33. package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  34. package/dist/components/Breadcrumb/Breadcrumb.js +2 -5
  35. package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -1
  36. package/dist/components/Breadcrumb/Breadcrumb.module.css.cjs +5 -8
  37. package/dist/components/Breadcrumb/Breadcrumb.module.css.cjs.map +1 -1
  38. package/dist/components/Breadcrumb/Breadcrumb.module.css.js +5 -8
  39. package/dist/components/Breadcrumb/Breadcrumb.module.css.js.map +1 -1
  40. package/dist/components/Button/Button.cjs +29 -3
  41. package/dist/components/Button/Button.cjs.map +1 -1
  42. package/dist/components/Button/Button.css +76 -30
  43. package/dist/components/Button/Button.d.ts +1 -1
  44. package/dist/components/Button/Button.d.ts.map +1 -1
  45. package/dist/components/Button/Button.js +28 -2
  46. package/dist/components/Button/Button.js.map +1 -1
  47. package/dist/components/Button/Button.module.css.cjs +19 -11
  48. package/dist/components/Button/Button.module.css.cjs.map +1 -1
  49. package/dist/components/Button/Button.module.css.js +19 -11
  50. package/dist/components/Button/Button.module.css.js.map +1 -1
  51. package/dist/components/Button/Button.types.d.ts +20 -3
  52. package/dist/components/Button/Button.types.d.ts.map +1 -1
  53. package/dist/components/Button/index.d.ts +1 -1
  54. package/dist/components/Button/index.d.ts.map +1 -1
  55. package/dist/components/ButtonCard/ButtonCard.cjs +19 -14
  56. package/dist/components/ButtonCard/ButtonCard.cjs.map +1 -1
  57. package/dist/components/ButtonCard/ButtonCard.css +62 -20
  58. package/dist/components/ButtonCard/ButtonCard.d.ts +2 -1
  59. package/dist/components/ButtonCard/ButtonCard.d.ts.map +1 -1
  60. package/dist/components/ButtonCard/ButtonCard.js +17 -12
  61. package/dist/components/ButtonCard/ButtonCard.js.map +1 -1
  62. package/dist/components/ButtonCard/ButtonCard.module.css.cjs +14 -12
  63. package/dist/components/ButtonCard/ButtonCard.module.css.cjs.map +1 -1
  64. package/dist/components/ButtonCard/ButtonCard.module.css.js +14 -12
  65. package/dist/components/ButtonCard/ButtonCard.module.css.js.map +1 -1
  66. package/dist/components/ButtonCard/ButtonCard.types.d.ts +3 -2
  67. package/dist/components/ButtonCard/ButtonCard.types.d.ts.map +1 -1
  68. package/dist/components/Checkbox/Checkbox.cjs +105 -0
  69. package/dist/components/Checkbox/Checkbox.cjs.map +1 -0
  70. package/dist/components/Checkbox/Checkbox.css +323 -0
  71. package/dist/components/Checkbox/Checkbox.d.ts +3 -0
  72. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
  73. package/dist/components/Checkbox/Checkbox.js +105 -0
  74. package/dist/components/Checkbox/Checkbox.js.map +1 -0
  75. package/dist/components/Checkbox/Checkbox.module.css.cjs +35 -0
  76. package/dist/components/Checkbox/Checkbox.module.css.cjs.map +1 -0
  77. package/dist/components/Checkbox/Checkbox.module.css.js +35 -0
  78. package/dist/components/Checkbox/Checkbox.module.css.js.map +1 -0
  79. package/dist/components/Checkbox/Checkbox.types.d.ts +47 -0
  80. package/dist/components/Checkbox/Checkbox.types.d.ts.map +1 -0
  81. package/dist/components/Checkbox/index.d.ts +3 -0
  82. package/dist/components/Checkbox/index.d.ts.map +1 -0
  83. package/dist/components/ContentCard/ContentCard.cjs +97 -0
  84. package/dist/components/ContentCard/ContentCard.cjs.map +1 -0
  85. package/dist/components/ContentCard/ContentCard.css +254 -0
  86. package/dist/components/ContentCard/ContentCard.d.ts +3 -0
  87. package/dist/components/ContentCard/ContentCard.d.ts.map +1 -0
  88. package/dist/components/ContentCard/ContentCard.js +97 -0
  89. package/dist/components/ContentCard/ContentCard.js.map +1 -0
  90. package/dist/components/ContentCard/ContentCard.module.css.cjs +24 -0
  91. package/dist/components/ContentCard/ContentCard.module.css.cjs.map +1 -0
  92. package/dist/components/ContentCard/ContentCard.module.css.js +25 -0
  93. package/dist/components/ContentCard/ContentCard.module.css.js.map +1 -0
  94. package/dist/components/ContentCard/ContentCard.types.d.ts +100 -0
  95. package/dist/components/ContentCard/ContentCard.types.d.ts.map +1 -0
  96. package/dist/components/ContentCard/index.d.ts +3 -0
  97. package/dist/components/ContentCard/index.d.ts.map +1 -0
  98. package/dist/components/Drawer/Drawer.cjs +15 -7
  99. package/dist/components/Drawer/Drawer.cjs.map +1 -1
  100. package/dist/components/Drawer/Drawer.css +47 -45
  101. package/dist/components/Drawer/Drawer.d.ts.map +1 -1
  102. package/dist/components/Drawer/Drawer.js +12 -4
  103. package/dist/components/Drawer/Drawer.js.map +1 -1
  104. package/dist/components/Drawer/Drawer.module.css.cjs +16 -16
  105. package/dist/components/Drawer/Drawer.module.css.js +16 -16
  106. package/dist/components/Footer/Footer.cjs +8 -9
  107. package/dist/components/Footer/Footer.cjs.map +1 -1
  108. package/dist/components/Footer/Footer.css +91 -84
  109. package/dist/components/Footer/Footer.d.ts.map +1 -1
  110. package/dist/components/Footer/Footer.js +1 -2
  111. package/dist/components/Footer/Footer.js.map +1 -1
  112. package/dist/components/Footer/Footer.module.css.cjs +39 -39
  113. package/dist/components/Footer/Footer.module.css.js +39 -39
  114. package/dist/components/FunctionButton/FunctionButton.cjs +2 -2
  115. package/dist/components/FunctionButton/FunctionButton.cjs.map +1 -1
  116. package/dist/components/FunctionButton/FunctionButton.css +5 -2
  117. package/dist/components/FunctionButton/FunctionButton.js +1 -1
  118. package/dist/components/FunctionButton/FunctionButton.js.map +1 -1
  119. package/dist/components/Hero/Hero.cjs +30 -29
  120. package/dist/components/Hero/Hero.cjs.map +1 -1
  121. package/dist/components/Hero/Hero.css +86 -74
  122. package/dist/components/Hero/Hero.d.ts +1 -1
  123. package/dist/components/Hero/Hero.d.ts.map +1 -1
  124. package/dist/components/Hero/Hero.js +30 -29
  125. package/dist/components/Hero/Hero.js.map +1 -1
  126. package/dist/components/Hero/Hero.module.css.cjs +20 -17
  127. package/dist/components/Hero/Hero.module.css.cjs.map +1 -1
  128. package/dist/components/Hero/Hero.module.css.js +20 -17
  129. package/dist/components/Hero/Hero.module.css.js.map +1 -1
  130. package/dist/components/Hero/Hero.types.d.ts +2 -6
  131. package/dist/components/Hero/Hero.types.d.ts.map +1 -1
  132. package/dist/components/IconButton/IconButton.cjs +3 -4
  133. package/dist/components/IconButton/IconButton.cjs.map +1 -1
  134. package/dist/components/IconButton/IconButton.css +5 -2
  135. package/dist/components/IconButton/IconButton.d.ts.map +1 -1
  136. package/dist/components/IconButton/IconButton.js +1 -2
  137. package/dist/components/IconButton/IconButton.js.map +1 -1
  138. package/dist/components/Label/Label.css +5 -2
  139. package/dist/components/MainNavigation/MainNavigation.cjs +556 -191
  140. package/dist/components/MainNavigation/MainNavigation.cjs.map +1 -1
  141. package/dist/components/MainNavigation/MainNavigation.css +297 -170
  142. package/dist/components/MainNavigation/MainNavigation.d.ts +1 -1
  143. package/dist/components/MainNavigation/MainNavigation.d.ts.map +1 -1
  144. package/dist/components/MainNavigation/MainNavigation.js +526 -161
  145. package/dist/components/MainNavigation/MainNavigation.js.map +1 -1
  146. package/dist/components/MainNavigation/MainNavigation.module.css.cjs +80 -68
  147. package/dist/components/MainNavigation/MainNavigation.module.css.cjs.map +1 -1
  148. package/dist/components/MainNavigation/MainNavigation.module.css.js +80 -68
  149. package/dist/components/MainNavigation/MainNavigation.module.css.js.map +1 -1
  150. package/dist/components/MainNavigation/MainNavigation.types.d.ts +55 -21
  151. package/dist/components/MainNavigation/MainNavigation.types.d.ts.map +1 -1
  152. package/dist/components/MainNavigation/MainNavigation.utils.cjs +28 -4
  153. package/dist/components/MainNavigation/MainNavigation.utils.cjs.map +1 -1
  154. package/dist/components/MainNavigation/MainNavigation.utils.d.ts +11 -1
  155. package/dist/components/MainNavigation/MainNavigation.utils.d.ts.map +1 -1
  156. package/dist/components/MainNavigation/MainNavigation.utils.js +28 -4
  157. package/dist/components/MainNavigation/MainNavigation.utils.js.map +1 -1
  158. package/dist/components/MainNavigation/index.d.ts +1 -1
  159. package/dist/components/MainNavigation/index.d.ts.map +1 -1
  160. package/dist/components/Modal/Modal.cjs +14 -6
  161. package/dist/components/Modal/Modal.cjs.map +1 -1
  162. package/dist/components/Modal/Modal.css +43 -40
  163. package/dist/components/Modal/Modal.d.ts.map +1 -1
  164. package/dist/components/Modal/Modal.js +12 -4
  165. package/dist/components/Modal/Modal.js.map +1 -1
  166. package/dist/components/Modal/Modal.module.css.cjs +18 -18
  167. package/dist/components/Modal/Modal.module.css.js +18 -18
  168. package/dist/components/Notification/Notification.cjs +3 -2
  169. package/dist/components/Notification/Notification.cjs.map +1 -1
  170. package/dist/components/Notification/Notification.css +20 -12
  171. package/dist/components/Notification/Notification.d.ts.map +1 -1
  172. package/dist/components/Notification/Notification.js +2 -1
  173. package/dist/components/Notification/Notification.js.map +1 -1
  174. package/dist/components/Notification/Notification.module.css.cjs +9 -9
  175. package/dist/components/Notification/Notification.module.css.js +9 -9
  176. package/dist/components/Pagination/Pagination.cjs +142 -0
  177. package/dist/components/Pagination/Pagination.cjs.map +1 -0
  178. package/dist/components/Pagination/Pagination.css +256 -0
  179. package/dist/components/Pagination/Pagination.d.ts +3 -0
  180. package/dist/components/Pagination/Pagination.d.ts.map +1 -0
  181. package/dist/components/Pagination/Pagination.js +142 -0
  182. package/dist/components/Pagination/Pagination.js.map +1 -0
  183. package/dist/components/Pagination/Pagination.module.css.cjs +34 -0
  184. package/dist/components/Pagination/Pagination.module.css.cjs.map +1 -0
  185. package/dist/components/Pagination/Pagination.module.css.js +34 -0
  186. package/dist/components/Pagination/Pagination.module.css.js.map +1 -0
  187. package/dist/components/Pagination/Pagination.types.d.ts +20 -0
  188. package/dist/components/Pagination/Pagination.types.d.ts.map +1 -0
  189. package/dist/components/Pagination/Pagination.utils.cjs +76 -0
  190. package/dist/components/Pagination/Pagination.utils.cjs.map +1 -0
  191. package/dist/components/Pagination/Pagination.utils.d.ts +21 -0
  192. package/dist/components/Pagination/Pagination.utils.d.ts.map +1 -0
  193. package/dist/components/Pagination/Pagination.utils.js +76 -0
  194. package/dist/components/Pagination/Pagination.utils.js.map +1 -0
  195. package/dist/components/Pagination/index.d.ts +3 -0
  196. package/dist/components/Pagination/index.d.ts.map +1 -0
  197. package/dist/components/Pictograph/Pictograph.css +9 -2
  198. package/dist/components/Pictograph/PictographItem.css +9 -2
  199. package/dist/components/Quote/Quote.css +5 -2
  200. package/dist/components/Spinner/Spinner.css +9 -2
  201. package/dist/design-tokens/dist/tokens.cjs +5 -0
  202. package/dist/design-tokens/dist/tokens.cjs.map +1 -0
  203. package/dist/design-tokens/dist/tokens.js +5 -0
  204. package/dist/design-tokens/dist/tokens.js.map +1 -0
  205. package/dist/index.cjs +8 -0
  206. package/dist/index.cjs.map +1 -1
  207. package/dist/index.d.ts +10 -2
  208. package/dist/index.d.ts.map +1 -1
  209. package/dist/index.js +8 -0
  210. package/dist/index.js.map +1 -1
  211. package/dist/styles/utilities.css +6 -0
  212. package/dist/styles/utils/elevation.css +34 -26
  213. package/dist/styles/utils/focus.css +63 -65
  214. package/dist/styles/utils/index.cjs +33 -0
  215. package/dist/styles/utils/index.cjs.map +1 -0
  216. package/dist/styles/utils/index.d.ts +20 -0
  217. package/dist/styles/utils/index.d.ts.map +1 -0
  218. package/dist/styles/utils/index.js +33 -0
  219. package/dist/styles/utils/index.js.map +1 -0
  220. package/dist/styles/utils/overlay.css +35 -28
  221. package/dist/styles/utils/text-decoration.css +19 -12
  222. package/dist/styles.css +46 -12
  223. package/dist/utils/index.d.ts +1 -0
  224. package/dist/utils/index.d.ts.map +1 -1
  225. package/dist/utils/isRenderable/index.d.ts +2 -0
  226. package/dist/utils/isRenderable/index.d.ts.map +1 -0
  227. package/dist/utils/isRenderable/isRenderable.cjs +5 -0
  228. package/dist/utils/isRenderable/isRenderable.cjs.map +1 -0
  229. package/dist/utils/isRenderable/isRenderable.d.ts +4 -0
  230. package/dist/utils/isRenderable/isRenderable.d.ts.map +1 -0
  231. package/dist/utils/isRenderable/isRenderable.js +5 -0
  232. package/dist/utils/isRenderable/isRenderable.js.map +1 -0
  233. package/package.json +12 -4
  234. package/dist/styles/utils/elevation.module.css.cjs +0 -16
  235. package/dist/styles/utils/elevation.module.css.cjs.map +0 -1
  236. package/dist/styles/utils/elevation.module.css.js +0 -16
  237. package/dist/styles/utils/elevation.module.css.js.map +0 -1
  238. package/dist/styles/utils/focus.module.css.cjs +0 -16
  239. package/dist/styles/utils/focus.module.css.cjs.map +0 -1
  240. package/dist/styles/utils/focus.module.css.js +0 -16
  241. package/dist/styles/utils/focus.module.css.js.map +0 -1
  242. package/dist/styles/utils/overlay.module.css.cjs +0 -13
  243. package/dist/styles/utils/overlay.module.css.cjs.map +0 -1
  244. package/dist/styles/utils/overlay.module.css.js +0 -13
  245. package/dist/styles/utils/overlay.module.css.js.map +0 -1
  246. package/dist/styles/utils/text-decoration.module.css.cjs +0 -13
  247. package/dist/styles/utils/text-decoration.module.css.cjs.map +0 -1
  248. package/dist/styles/utils/text-decoration.module.css.js +0 -13
  249. package/dist/styles/utils/text-decoration.module.css.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.cjs","sources":["../../../src/components/IconButton/IconButton.tsx"],"sourcesContent":["import type { AnchorHTMLAttributes, MouseEvent, ReactNode, Ref } from 'react';\nimport { cn } from '../../utils/cn';\nimport focusStyles from '../../styles/utils/focus.module.css';\nimport textDecorationStyles from '../../styles/utils/text-decoration.module.css';\nimport { Spinner } from '../Spinner';\nimport styles from './IconButton.module.css';\nimport type { IconButtonProps } from './IconButton.types';\n\nexport const IconButton = ({\n icon,\n iconPosition = 'start',\n labelBehavior = 'truncate',\n size = 'normal',\n loading = false,\n linkColoring = false,\n className,\n children,\n ref,\n ...props\n}: IconButtonProps) => {\n const isDisabled = 'disabled' in props && props.disabled;\n const isAnchor = 'href' in props && props.href != null;\n\n const classes = cn(\n styles['icon-button'],\n styles[`icon-button--${size}`],\n focusStyles.focusable,\n { [styles['icon-button--disabled']]: isDisabled },\n { [styles['icon-button--loading']]: loading },\n { [styles['icon-button--link-coloring']]: linkColoring },\n className,\n );\n\n const Icon = icon;\n\n const iconSlot = loading ? (\n <span className={styles['icon-button__icon']} aria-hidden=\"true\">\n <Spinner\n size={size === 'small' ? 'xs' : 's'}\n color=\"inherit\"\n aria-hidden=\"true\"\n role=\"presentation\"\n />\n </span>\n ) : (\n <span className={styles['icon-button__icon']} aria-hidden=\"true\">\n <Icon aria-hidden=\"true\" />\n </span>\n );\n\n const content = (\n <>\n {iconPosition === 'start' && iconSlot}\n <span\n className={cn(styles['icon-button__label'], textDecorationStyles.underlineLink, {\n [styles['icon-button__label--wrap']]: labelBehavior === 'wrap',\n })}\n >\n {children}\n </span>\n {iconPosition === 'end' && iconSlot}\n </>\n );\n\n if (isAnchor) {\n const { href, renderLink, ...anchorProps } = props as Omit<\n typeof props,\n 'icon' | 'iconPosition' | 'size' | 'loading' | 'linkColoring'\n > & {\n href: string;\n renderLink?: (\n props: AnchorHTMLAttributes<HTMLAnchorElement> & {\n href: string;\n children: ReactNode;\n },\n ) => ReactNode;\n };\n\n const {\n disabled: _disabled,\n type: _type,\n name: _name,\n ...safeAnchorProps\n } = anchorProps as typeof anchorProps & {\n disabled?: boolean;\n type?: 'button' | 'submit' | 'reset';\n name?: string;\n };\n\n const target = safeAnchorProps.target;\n const rel = safeAnchorProps.rel;\n const shouldHardenRel = target?.toLowerCase() === '_blank';\n const relTokens = new Set(\n (rel ?? '')\n .split(/\\s+/)\n .filter(Boolean)\n .map((token) => token.toLowerCase()),\n );\n\n if (shouldHardenRel) {\n relTokens.add('noopener');\n relTokens.add('noreferrer');\n }\n\n const hardenedRel = relTokens.size > 0 ? Array.from(relTokens).join(' ') : undefined;\n\n const linkProps = {\n ...safeAnchorProps,\n ref: ref as Ref<HTMLAnchorElement>,\n href,\n rel: hardenedRel,\n className: classes,\n 'aria-busy': loading || undefined,\n 'aria-disabled': loading || undefined,\n tabIndex: loading ? -1 : safeAnchorProps.tabIndex,\n onClick: loading\n ? (e: MouseEvent<HTMLAnchorElement>) => {\n e.preventDefault();\n e.stopPropagation();\n }\n : safeAnchorProps.onClick,\n children: content,\n };\n\n if (renderLink) {\n return <>{renderLink(linkProps)}</>;\n }\n\n return <a {...linkProps} />;\n }\n\n const {\n type = 'button',\n disabled,\n onClick,\n href: _href,\n target: _target,\n rel: _rel,\n renderLink: _renderLink,\n ...buttonProps\n } = props as Omit<\n typeof props,\n 'icon' | 'iconPosition' | 'size' | 'loading' | 'href' | 'linkColoring'\n > & {\n type?: 'button' | 'submit' | 'reset';\n disabled?: boolean;\n href?: string;\n target?: string;\n rel?: string;\n renderLink?: unknown;\n };\n\n return (\n <button\n ref={ref as Ref<HTMLButtonElement>}\n type={type}\n disabled={disabled || loading}\n className={classes}\n aria-disabled={loading || undefined}\n aria-busy={loading || undefined}\n onClick={\n loading\n ? (e) => {\n e.preventDefault();\n e.stopPropagation();\n }\n : onClick\n }\n {...buttonProps}\n >\n {content}\n </button>\n );\n};\n"],"names":["cn","styles","focusStyles","jsx","Spinner","jsxs","Fragment","textDecorationStyles"],"mappings":"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"}
1
+ {"version":3,"file":"IconButton.cjs","sources":["../../../src/components/IconButton/IconButton.tsx"],"sourcesContent":["import type { AnchorHTMLAttributes, MouseEvent, ReactNode, Ref } from 'react';\nimport { cn } from '../../utils/cn';\nimport { focusStyles, textDecorationStyles } from '../../styles/utils';\nimport { Spinner } from '../Spinner';\nimport styles from './IconButton.module.css';\nimport type { IconButtonProps } from './IconButton.types';\n\nexport const IconButton = ({\n icon,\n iconPosition = 'start',\n labelBehavior = 'truncate',\n size = 'normal',\n loading = false,\n linkColoring = false,\n className,\n children,\n ref,\n ...props\n}: IconButtonProps) => {\n const isDisabled = 'disabled' in props && props.disabled;\n const isAnchor = 'href' in props && props.href != null;\n\n const classes = cn(\n styles['icon-button'],\n styles[`icon-button--${size}`],\n focusStyles.focusable,\n { [styles['icon-button--disabled']]: isDisabled },\n { [styles['icon-button--loading']]: loading },\n { [styles['icon-button--link-coloring']]: linkColoring },\n className,\n );\n\n const Icon = icon;\n\n const iconSlot = loading ? (\n <span className={styles['icon-button__icon']} aria-hidden=\"true\">\n <Spinner\n size={size === 'small' ? 'xs' : 's'}\n color=\"inherit\"\n aria-hidden=\"true\"\n role=\"presentation\"\n />\n </span>\n ) : (\n <span className={styles['icon-button__icon']} aria-hidden=\"true\">\n <Icon aria-hidden=\"true\" />\n </span>\n );\n\n const content = (\n <>\n {iconPosition === 'start' && iconSlot}\n <span\n className={cn(styles['icon-button__label'], textDecorationStyles.underlineLink, {\n [styles['icon-button__label--wrap']]: labelBehavior === 'wrap',\n })}\n >\n {children}\n </span>\n {iconPosition === 'end' && iconSlot}\n </>\n );\n\n if (isAnchor) {\n const { href, renderLink, ...anchorProps } = props as Omit<\n typeof props,\n 'icon' | 'iconPosition' | 'size' | 'loading' | 'linkColoring'\n > & {\n href: string;\n renderLink?: (\n props: AnchorHTMLAttributes<HTMLAnchorElement> & {\n href: string;\n children: ReactNode;\n },\n ) => ReactNode;\n };\n\n const {\n disabled: _disabled,\n type: _type,\n name: _name,\n ...safeAnchorProps\n } = anchorProps as typeof anchorProps & {\n disabled?: boolean;\n type?: 'button' | 'submit' | 'reset';\n name?: string;\n };\n\n const target = safeAnchorProps.target;\n const rel = safeAnchorProps.rel;\n const shouldHardenRel = target?.toLowerCase() === '_blank';\n const relTokens = new Set(\n (rel ?? '')\n .split(/\\s+/)\n .filter(Boolean)\n .map((token) => token.toLowerCase()),\n );\n\n if (shouldHardenRel) {\n relTokens.add('noopener');\n relTokens.add('noreferrer');\n }\n\n const hardenedRel = relTokens.size > 0 ? Array.from(relTokens).join(' ') : undefined;\n\n const linkProps = {\n ...safeAnchorProps,\n ref: ref as Ref<HTMLAnchorElement>,\n href,\n rel: hardenedRel,\n className: classes,\n 'aria-busy': loading || undefined,\n 'aria-disabled': loading || undefined,\n tabIndex: loading ? -1 : safeAnchorProps.tabIndex,\n onClick: loading\n ? (e: MouseEvent<HTMLAnchorElement>) => {\n e.preventDefault();\n e.stopPropagation();\n }\n : safeAnchorProps.onClick,\n children: content,\n };\n\n if (renderLink) {\n return <>{renderLink(linkProps)}</>;\n }\n\n return <a {...linkProps} />;\n }\n\n const {\n type = 'button',\n disabled,\n onClick,\n href: _href,\n target: _target,\n rel: _rel,\n renderLink: _renderLink,\n ...buttonProps\n } = props as Omit<\n typeof props,\n 'icon' | 'iconPosition' | 'size' | 'loading' | 'href' | 'linkColoring'\n > & {\n type?: 'button' | 'submit' | 'reset';\n disabled?: boolean;\n href?: string;\n target?: string;\n rel?: string;\n renderLink?: unknown;\n };\n\n return (\n <button\n ref={ref as Ref<HTMLButtonElement>}\n type={type}\n disabled={disabled || loading}\n className={classes}\n aria-disabled={loading || undefined}\n aria-busy={loading || undefined}\n onClick={\n loading\n ? (e) => {\n e.preventDefault();\n e.stopPropagation();\n }\n : onClick\n }\n {...buttonProps}\n >\n {content}\n </button>\n );\n};\n"],"names":["cn","styles","focusStyles","jsx","Spinner","jsxs","Fragment","textDecorationStyles"],"mappings":";;;;;;;AAOO,MAAM,aAAa,CAAC;AAAA,EACvB;AAAA,EACA,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACP,MAAuB;AACnB,QAAM,aAAa,cAAc,SAAS,MAAM;AAChD,QAAM,WAAW,UAAU,SAAS,MAAM,QAAQ;AAElD,QAAM,UAAUA,GAAAA;AAAAA,IACZC,kBAAO,aAAa;AAAA,IACpBA,kBAAO,gBAAgB,IAAI,EAAE;AAAA,IAC7BC,MAAAA,YAAY;AAAA,IACZ,EAAE,CAACD,kBAAO,uBAAuB,CAAC,GAAG,WAAA;AAAA,IACrC,EAAE,CAACA,kBAAO,sBAAsB,CAAC,GAAG,QAAA;AAAA,IACpC,EAAE,CAACA,kBAAO,4BAA4B,CAAC,GAAG,aAAA;AAAA,IAC1C;AAAA,EAAA;AAGJ,QAAM,OAAO;AAEb,QAAM,WAAW,UACbE,2BAAAA,IAAC,QAAA,EAAK,WAAWF,kBAAO,mBAAmB,GAAG,eAAY,QACtD,UAAAE,2BAAAA;AAAAA,IAACC,QAAAA;AAAAA,IAAA;AAAA,MACG,MAAM,SAAS,UAAU,OAAO;AAAA,MAChC,OAAM;AAAA,MACN,eAAY;AAAA,MACZ,MAAK;AAAA,IAAA;AAAA,EAAA,EACT,CACJ,IAEAD,2BAAAA,IAAC,QAAA,EAAK,WAAWF,kBAAO,mBAAmB,GAAG,eAAY,QACtD,UAAAE,2BAAAA,IAAC,MAAA,EAAK,eAAY,QAAO,GAC7B;AAGJ,QAAM,UACFE,2BAAAA,KAAAC,WAAAA,UAAA,EACK,UAAA;AAAA,IAAA,iBAAiB,WAAW;AAAA,IAC7BH,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAWH,GAAAA,GAAGC,kBAAO,oBAAoB,GAAGM,MAAAA,qBAAqB,eAAe;AAAA,UAC5E,CAACN,kBAAO,0BAA0B,CAAC,GAAG,kBAAkB;AAAA,QAAA,CAC3D;AAAA,QAEA;AAAA,MAAA;AAAA,IAAA;AAAA,IAEJ,iBAAiB,SAAS;AAAA,EAAA,GAC/B;AAGJ,MAAI,UAAU;AACV,UAAM,EAAE,MAAM,YAAY,GAAG,gBAAgB;AAa7C,UAAM;AAAA,MACF,UAAU;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,MACN,GAAG;AAAA,IAAA,IACH;AAMJ,UAAM,SAAS,gBAAgB;AAC/B,UAAM,MAAM,gBAAgB;AAC5B,UAAM,kBAAkB,QAAQ,YAAA,MAAkB;AAClD,UAAM,YAAY,IAAI;AAAA,OACjB,OAAO,IACH,MAAM,KAAK,EACX,OAAO,OAAO,EACd,IAAI,CAAC,UAAU,MAAM,aAAa;AAAA,IAAA;AAG3C,QAAI,iBAAiB;AACjB,gBAAU,IAAI,UAAU;AACxB,gBAAU,IAAI,YAAY;AAAA,IAC9B;AAEA,UAAM,cAAc,UAAU,OAAO,IAAI,MAAM,KAAK,SAAS,EAAE,KAAK,GAAG,IAAI;AAE3E,UAAM,YAAY;AAAA,MACd,GAAG;AAAA,MACH;AAAA,MACA;AAAA,MACA,KAAK;AAAA,MACL,WAAW;AAAA,MACX,aAAa,WAAW;AAAA,MACxB,iBAAiB,WAAW;AAAA,MAC5B,UAAU,UAAU,KAAK,gBAAgB;AAAA,MACzC,SAAS,UACH,CAAC,MAAqC;AAClC,UAAE,eAAA;AACF,UAAE,gBAAA;AAAA,MACN,IACA,gBAAgB;AAAA,MACtB,UAAU;AAAA,IAAA;AAGd,QAAI,YAAY;AACZ,aAAOE,2BAAAA,IAAAG,WAAAA,UAAA,EAAG,UAAA,WAAW,SAAS,GAAE;AAAA,IACpC;AAEA,WAAOH,+BAAC,KAAA,EAAG,GAAG,UAAA,CAAW;AAAA,EAC7B;AAEA,QAAM;AAAA,IACF,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,YAAY;AAAA,IACZ,GAAG;AAAA,EAAA,IACH;AAYJ,SACIA,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACG;AAAA,MACA;AAAA,MACA,UAAU,YAAY;AAAA,MACtB,WAAW;AAAA,MACX,iBAAe,WAAW;AAAA,MAC1B,aAAW,WAAW;AAAA,MACtB,SACI,UACM,CAAC,MAAM;AACH,UAAE,eAAA;AACF,UAAE,gBAAA;AAAA,MACN,IACA;AAAA,MAET,GAAG;AAAA,MAEH,UAAA;AAAA,IAAA;AAAA,EAAA;AAGb;;"}
@@ -1,4 +1,4 @@
1
- @layer dds-components {._icon-button_mhilb_1 {
1
+ @layer dds-base, dds-components;@layer dds-components { @layer fallback, components; }@layer dds-components.components{._icon-button_mhilb_1 {
2
2
  --_button-icon-size: 24px;
3
3
 
4
4
  display: inline-flex;
@@ -177,4 +177,7 @@
177
177
  box-shadow: none;
178
178
  }
179
179
  }
180
- }
180
+
181
+ /**
182
+ * Do not edit directly, this file was auto-generated.
183
+ */ }
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../../src/components/IconButton/IconButton.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,eAAO,MAAM,UAAU,GAAI,wGAWxB,eAAe,4CA0JjB,CAAC"}
1
+ {"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../../src/components/IconButton/IconButton.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,eAAO,MAAM,UAAU,GAAI,wGAWxB,eAAe,4CA0JjB,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
- import focusStyles from "../../styles/utils/focus.module.css.js";
3
- import textDecorationStyles from "../../styles/utils/text-decoration.module.css.js";
2
+ import { textDecorationStyles, focusStyles } from "../../styles/utils/index.js";
4
3
  import styles from "./IconButton.module.css.js";
5
4
  import { cn } from "../../utils/cn/cn.js";
6
5
  import { Spinner } from "../Spinner/Spinner.js";
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.js","sources":["../../../src/components/IconButton/IconButton.tsx"],"sourcesContent":["import type { AnchorHTMLAttributes, MouseEvent, ReactNode, Ref } from 'react';\nimport { cn } from '../../utils/cn';\nimport focusStyles from '../../styles/utils/focus.module.css';\nimport textDecorationStyles from '../../styles/utils/text-decoration.module.css';\nimport { Spinner } from '../Spinner';\nimport styles from './IconButton.module.css';\nimport type { IconButtonProps } from './IconButton.types';\n\nexport const IconButton = ({\n icon,\n iconPosition = 'start',\n labelBehavior = 'truncate',\n size = 'normal',\n loading = false,\n linkColoring = false,\n className,\n children,\n ref,\n ...props\n}: IconButtonProps) => {\n const isDisabled = 'disabled' in props && props.disabled;\n const isAnchor = 'href' in props && props.href != null;\n\n const classes = cn(\n styles['icon-button'],\n styles[`icon-button--${size}`],\n focusStyles.focusable,\n { [styles['icon-button--disabled']]: isDisabled },\n { [styles['icon-button--loading']]: loading },\n { [styles['icon-button--link-coloring']]: linkColoring },\n className,\n );\n\n const Icon = icon;\n\n const iconSlot = loading ? (\n <span className={styles['icon-button__icon']} aria-hidden=\"true\">\n <Spinner\n size={size === 'small' ? 'xs' : 's'}\n color=\"inherit\"\n aria-hidden=\"true\"\n role=\"presentation\"\n />\n </span>\n ) : (\n <span className={styles['icon-button__icon']} aria-hidden=\"true\">\n <Icon aria-hidden=\"true\" />\n </span>\n );\n\n const content = (\n <>\n {iconPosition === 'start' && iconSlot}\n <span\n className={cn(styles['icon-button__label'], textDecorationStyles.underlineLink, {\n [styles['icon-button__label--wrap']]: labelBehavior === 'wrap',\n })}\n >\n {children}\n </span>\n {iconPosition === 'end' && iconSlot}\n </>\n );\n\n if (isAnchor) {\n const { href, renderLink, ...anchorProps } = props as Omit<\n typeof props,\n 'icon' | 'iconPosition' | 'size' | 'loading' | 'linkColoring'\n > & {\n href: string;\n renderLink?: (\n props: AnchorHTMLAttributes<HTMLAnchorElement> & {\n href: string;\n children: ReactNode;\n },\n ) => ReactNode;\n };\n\n const {\n disabled: _disabled,\n type: _type,\n name: _name,\n ...safeAnchorProps\n } = anchorProps as typeof anchorProps & {\n disabled?: boolean;\n type?: 'button' | 'submit' | 'reset';\n name?: string;\n };\n\n const target = safeAnchorProps.target;\n const rel = safeAnchorProps.rel;\n const shouldHardenRel = target?.toLowerCase() === '_blank';\n const relTokens = new Set(\n (rel ?? '')\n .split(/\\s+/)\n .filter(Boolean)\n .map((token) => token.toLowerCase()),\n );\n\n if (shouldHardenRel) {\n relTokens.add('noopener');\n relTokens.add('noreferrer');\n }\n\n const hardenedRel = relTokens.size > 0 ? Array.from(relTokens).join(' ') : undefined;\n\n const linkProps = {\n ...safeAnchorProps,\n ref: ref as Ref<HTMLAnchorElement>,\n href,\n rel: hardenedRel,\n className: classes,\n 'aria-busy': loading || undefined,\n 'aria-disabled': loading || undefined,\n tabIndex: loading ? -1 : safeAnchorProps.tabIndex,\n onClick: loading\n ? (e: MouseEvent<HTMLAnchorElement>) => {\n e.preventDefault();\n e.stopPropagation();\n }\n : safeAnchorProps.onClick,\n children: content,\n };\n\n if (renderLink) {\n return <>{renderLink(linkProps)}</>;\n }\n\n return <a {...linkProps} />;\n }\n\n const {\n type = 'button',\n disabled,\n onClick,\n href: _href,\n target: _target,\n rel: _rel,\n renderLink: _renderLink,\n ...buttonProps\n } = props as Omit<\n typeof props,\n 'icon' | 'iconPosition' | 'size' | 'loading' | 'href' | 'linkColoring'\n > & {\n type?: 'button' | 'submit' | 'reset';\n disabled?: boolean;\n href?: string;\n target?: string;\n rel?: string;\n renderLink?: unknown;\n };\n\n return (\n <button\n ref={ref as Ref<HTMLButtonElement>}\n type={type}\n disabled={disabled || loading}\n className={classes}\n aria-disabled={loading || undefined}\n aria-busy={loading || undefined}\n onClick={\n loading\n ? (e) => {\n e.preventDefault();\n e.stopPropagation();\n }\n : onClick\n }\n {...buttonProps}\n >\n {content}\n </button>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IconButton.js","sources":["../../../src/components/IconButton/IconButton.tsx"],"sourcesContent":["import type { AnchorHTMLAttributes, MouseEvent, ReactNode, Ref } from 'react';\nimport { cn } from '../../utils/cn';\nimport { focusStyles, textDecorationStyles } from '../../styles/utils';\nimport { Spinner } from '../Spinner';\nimport styles from './IconButton.module.css';\nimport type { IconButtonProps } from './IconButton.types';\n\nexport const IconButton = ({\n icon,\n iconPosition = 'start',\n labelBehavior = 'truncate',\n size = 'normal',\n loading = false,\n linkColoring = false,\n className,\n children,\n ref,\n ...props\n}: IconButtonProps) => {\n const isDisabled = 'disabled' in props && props.disabled;\n const isAnchor = 'href' in props && props.href != null;\n\n const classes = cn(\n styles['icon-button'],\n styles[`icon-button--${size}`],\n focusStyles.focusable,\n { [styles['icon-button--disabled']]: isDisabled },\n { [styles['icon-button--loading']]: loading },\n { [styles['icon-button--link-coloring']]: linkColoring },\n className,\n );\n\n const Icon = icon;\n\n const iconSlot = loading ? (\n <span className={styles['icon-button__icon']} aria-hidden=\"true\">\n <Spinner\n size={size === 'small' ? 'xs' : 's'}\n color=\"inherit\"\n aria-hidden=\"true\"\n role=\"presentation\"\n />\n </span>\n ) : (\n <span className={styles['icon-button__icon']} aria-hidden=\"true\">\n <Icon aria-hidden=\"true\" />\n </span>\n );\n\n const content = (\n <>\n {iconPosition === 'start' && iconSlot}\n <span\n className={cn(styles['icon-button__label'], textDecorationStyles.underlineLink, {\n [styles['icon-button__label--wrap']]: labelBehavior === 'wrap',\n })}\n >\n {children}\n </span>\n {iconPosition === 'end' && iconSlot}\n </>\n );\n\n if (isAnchor) {\n const { href, renderLink, ...anchorProps } = props as Omit<\n typeof props,\n 'icon' | 'iconPosition' | 'size' | 'loading' | 'linkColoring'\n > & {\n href: string;\n renderLink?: (\n props: AnchorHTMLAttributes<HTMLAnchorElement> & {\n href: string;\n children: ReactNode;\n },\n ) => ReactNode;\n };\n\n const {\n disabled: _disabled,\n type: _type,\n name: _name,\n ...safeAnchorProps\n } = anchorProps as typeof anchorProps & {\n disabled?: boolean;\n type?: 'button' | 'submit' | 'reset';\n name?: string;\n };\n\n const target = safeAnchorProps.target;\n const rel = safeAnchorProps.rel;\n const shouldHardenRel = target?.toLowerCase() === '_blank';\n const relTokens = new Set(\n (rel ?? '')\n .split(/\\s+/)\n .filter(Boolean)\n .map((token) => token.toLowerCase()),\n );\n\n if (shouldHardenRel) {\n relTokens.add('noopener');\n relTokens.add('noreferrer');\n }\n\n const hardenedRel = relTokens.size > 0 ? Array.from(relTokens).join(' ') : undefined;\n\n const linkProps = {\n ...safeAnchorProps,\n ref: ref as Ref<HTMLAnchorElement>,\n href,\n rel: hardenedRel,\n className: classes,\n 'aria-busy': loading || undefined,\n 'aria-disabled': loading || undefined,\n tabIndex: loading ? -1 : safeAnchorProps.tabIndex,\n onClick: loading\n ? (e: MouseEvent<HTMLAnchorElement>) => {\n e.preventDefault();\n e.stopPropagation();\n }\n : safeAnchorProps.onClick,\n children: content,\n };\n\n if (renderLink) {\n return <>{renderLink(linkProps)}</>;\n }\n\n return <a {...linkProps} />;\n }\n\n const {\n type = 'button',\n disabled,\n onClick,\n href: _href,\n target: _target,\n rel: _rel,\n renderLink: _renderLink,\n ...buttonProps\n } = props as Omit<\n typeof props,\n 'icon' | 'iconPosition' | 'size' | 'loading' | 'href' | 'linkColoring'\n > & {\n type?: 'button' | 'submit' | 'reset';\n disabled?: boolean;\n href?: string;\n target?: string;\n rel?: string;\n renderLink?: unknown;\n };\n\n return (\n <button\n ref={ref as Ref<HTMLButtonElement>}\n type={type}\n disabled={disabled || loading}\n className={classes}\n aria-disabled={loading || undefined}\n aria-busy={loading || undefined}\n onClick={\n loading\n ? (e) => {\n e.preventDefault();\n e.stopPropagation();\n }\n : onClick\n }\n {...buttonProps}\n >\n {content}\n </button>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- @layer dds-components {._label_7ugso_1 {
1
+ @layer dds-base, dds-components;@layer dds-components { @layer fallback, components; }@layer dds-components.components{._label_7ugso_1 {
2
2
  --_label-height: 22px;
3
3
 
4
4
  display: inline-block;
@@ -40,4 +40,7 @@
40
40
  ._label--other_7ugso_40 {
41
41
  background-color: var(--color-semantic-accent-sky-strong);
42
42
  }
43
- }
43
+
44
+ /**
45
+ * Do not edit directly, this file was auto-generated.
46
+ */ }