@bi-digital/react 0.7.0 → 0.9.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 (200) hide show
  1. package/README.md +0 -2
  2. package/dist/{alert-footer-BpkOdCCs.d.mts → alert-footer-CHHPzMiX.d.mts} +80 -73
  3. package/dist/{button-CDtQwUfp.mjs → button-Df0Se51p.mjs} +3 -3
  4. package/dist/button-Df0Se51p.mjs.map +1 -0
  5. package/dist/{card-action-CkWX8kB1.mjs → card-action-DAFhhfZ5.mjs} +2 -2
  6. package/dist/{card-action-CkWX8kB1.mjs.map → card-action-DAFhhfZ5.mjs.map} +1 -1
  7. package/dist/components/alert/alert-footer.d.mts +10 -10
  8. package/dist/components/alert/alert.d.mts +10 -10
  9. package/dist/components/alert/index.d.mts +10 -10
  10. package/dist/components/avatar/avatar.d.mts +10 -10
  11. package/dist/components/avatar/index.d.mts +10 -10
  12. package/dist/components/badge/badge.d.mts +10 -10
  13. package/dist/components/badge/index.d.mts +10 -10
  14. package/dist/components/button/button.d.mts +10 -10
  15. package/dist/components/button/button.mjs +1 -1
  16. package/dist/components/button/index.d.mts +10 -10
  17. package/dist/components/button/index.mjs +1 -1
  18. package/dist/components/card/card-action.d.mts +10 -10
  19. package/dist/components/card/card-action.mjs +2 -2
  20. package/dist/components/card/card-actions.d.mts +10 -10
  21. package/dist/components/card/card-content.d.mts +10 -10
  22. package/dist/components/card/card-date.d.mts +10 -10
  23. package/dist/components/card/card-header.d.mts +10 -10
  24. package/dist/components/card/card-media.d.mts +10 -10
  25. package/dist/components/card/card.d.mts +10 -10
  26. package/dist/components/card/index.d.mts +10 -10
  27. package/dist/components/card/index.mjs +2 -2
  28. package/dist/components/checkbox/checkbox-subsection.d.mts +10 -10
  29. package/dist/components/checkbox/checkbox.d.mts +10 -10
  30. package/dist/components/checkbox/index.d.mts +10 -10
  31. package/dist/components/chip/chip.d.mts +10 -10
  32. package/dist/components/chip/index.d.mts +10 -10
  33. package/dist/components/details/details-content.d.mts +10 -10
  34. package/dist/components/details/details-summary.d.mts +10 -10
  35. package/dist/components/details/details.d.mts +10 -10
  36. package/dist/components/details/index.d.mts +10 -10
  37. package/dist/components/dialog/dialog-close-button.d.mts +10 -10
  38. package/dist/components/dialog/dialog-close-button.mjs +2 -2
  39. package/dist/components/dialog/dialog-content.d.mts +10 -10
  40. package/dist/components/dialog/dialog-footer.d.mts +10 -10
  41. package/dist/components/dialog/dialog-header.d.mts +10 -10
  42. package/dist/components/dialog/dialog-trigger-context.d.mts +1 -1
  43. package/dist/components/dialog/dialog-trigger.d.mts +10 -10
  44. package/dist/components/dialog/dialog-trigger.mjs +2 -2
  45. package/dist/components/dialog/dialog.d.mts +10 -10
  46. package/dist/components/dialog/index.d.mts +10 -10
  47. package/dist/components/dialog/index.mjs +3 -3
  48. package/dist/components/drawer/drawer-close-button.d.mts +10 -10
  49. package/dist/components/drawer/drawer-close-button.mjs +4 -4
  50. package/dist/components/drawer/drawer-content.d.mts +10 -10
  51. package/dist/components/drawer/drawer-content.mjs +3 -3
  52. package/dist/components/drawer/drawer-footer.d.mts +10 -10
  53. package/dist/components/drawer/drawer-footer.mjs +3 -3
  54. package/dist/components/drawer/drawer-header.d.mts +10 -10
  55. package/dist/components/drawer/drawer-header.mjs +3 -3
  56. package/dist/components/drawer/drawer-trigger-context.d.mts +1 -1
  57. package/dist/components/drawer/drawer-trigger-context.mjs +3 -3
  58. package/dist/components/drawer/drawer-trigger.d.mts +10 -10
  59. package/dist/components/drawer/drawer-trigger.mjs +4 -4
  60. package/dist/components/drawer/drawer.d.mts +10 -10
  61. package/dist/components/drawer/drawer.mjs +3 -3
  62. package/dist/components/drawer/index.d.mts +10 -10
  63. package/dist/components/drawer/index.mjs +5 -5
  64. package/dist/components/dropdown/dropdown-button.d.mts +10 -10
  65. package/dist/components/dropdown/dropdown-button.mjs +2 -2
  66. package/dist/components/dropdown/dropdown-item.d.mts +1 -1
  67. package/dist/components/dropdown/dropdown-list.d.mts +1 -1
  68. package/dist/components/dropdown/dropdown-trigger-context.d.mts +10 -10
  69. package/dist/components/dropdown/dropdown-trigger-context.mjs +4 -4
  70. package/dist/components/dropdown/dropdown-trigger.d.mts +10 -10
  71. package/dist/components/dropdown/dropdown-trigger.mjs +5 -5
  72. package/dist/components/dropdown/dropdown.d.mts +10 -10
  73. package/dist/components/dropdown/dropdown.mjs +5 -5
  74. package/dist/components/dropdown/index.d.mts +10 -10
  75. package/dist/components/dropdown/index.mjs +7 -7
  76. package/dist/components/field/field-affix.d.mts +10 -10
  77. package/dist/components/field/field-description.d.mts +10 -10
  78. package/dist/components/field/field.d.mts +10 -10
  79. package/dist/components/field/index.d.mts +10 -10
  80. package/dist/components/fieldset/fieldset-description.d.mts +10 -10
  81. package/dist/components/fieldset/fieldset-legend.d.mts +10 -10
  82. package/dist/components/fieldset/fieldset.d.mts +10 -10
  83. package/dist/components/fieldset/index.d.mts +10 -10
  84. package/dist/components/filter-group/filter-group.d.mts +10 -10
  85. package/dist/components/filter-group/index.d.mts +10 -10
  86. package/dist/components/footer/footer-links.d.mts +1 -1
  87. package/dist/components/footer/footer.d.mts +10 -10
  88. package/dist/components/footer/footer.mjs +2 -2
  89. package/dist/components/footer/index.d.mts +10 -10
  90. package/dist/components/footer/index.mjs +2 -2
  91. package/dist/components/index.d.mts +10 -10
  92. package/dist/components/index.mjs +16 -16
  93. package/dist/components/input/index.d.mts +10 -10
  94. package/dist/components/input/input.d.mts +10 -10
  95. package/dist/components/label/index.d.mts +10 -10
  96. package/dist/components/label/label.d.mts +10 -10
  97. package/dist/components/link/index.d.mts +10 -10
  98. package/dist/components/link/link.d.mts +10 -10
  99. package/dist/components/logo/index.d.mts +10 -10
  100. package/dist/components/logo/logo.d.mts +10 -10
  101. package/dist/components/navbar/index.d.mts +10 -10
  102. package/dist/components/navbar/navbar.d.mts +10 -10
  103. package/dist/components/navbar/sub-navbar.d.mts +10 -10
  104. package/dist/components/pagination/index.d.mts +10 -10
  105. package/dist/components/pagination/index.mjs +2 -2
  106. package/dist/components/pagination/pagination-button.d.mts +10 -10
  107. package/dist/components/pagination/pagination-button.mjs +2 -2
  108. package/dist/components/pagination/pagination-item.d.mts +1 -1
  109. package/dist/components/pagination/pagination.d.mts +10 -10
  110. package/dist/components/popover/index.d.mts +10 -10
  111. package/dist/components/popover/index.mjs +4 -4
  112. package/dist/components/popover/popover-trigger-context.d.mts +1 -1
  113. package/dist/components/popover/popover-trigger.d.mts +10 -10
  114. package/dist/components/popover/popover-trigger.mjs +2 -2
  115. package/dist/components/popover/popover.d.mts +10 -10
  116. package/dist/components/popover/popover.mjs +2 -2
  117. package/dist/components/radio/index.d.mts +10 -10
  118. package/dist/components/radio/radio.d.mts +10 -10
  119. package/dist/components/search/index.d.mts +10 -10
  120. package/dist/components/search/index.mjs +2 -2
  121. package/dist/components/search/search.d.mts +10 -10
  122. package/dist/components/search/search.mjs +2 -2
  123. package/dist/components/select/index.d.mts +10 -10
  124. package/dist/components/select/select-optgroup.d.mts +10 -10
  125. package/dist/components/select/select-option.d.mts +10 -10
  126. package/dist/components/select/select.d.mts +10 -10
  127. package/dist/components/selectfield/index.d.mts +10 -10
  128. package/dist/components/selectfield/selectfield.d.mts +10 -10
  129. package/dist/components/skip-link/index.d.mts +10 -10
  130. package/dist/components/skip-link/skip-link.d.mts +10 -10
  131. package/dist/components/spinner/index.d.mts +10 -10
  132. package/dist/components/spinner/spinner.d.mts +10 -10
  133. package/dist/components/sticky-header/index.d.mts +1 -1
  134. package/dist/components/sticky-header/sticky-header.d.mts +1 -1
  135. package/dist/components/switch/index.d.mts +10 -10
  136. package/dist/components/switch/switch.d.mts +10 -10
  137. package/dist/components/tabs/index.d.mts +10 -10
  138. package/dist/components/tabs/index.mjs +2 -2
  139. package/dist/components/tabs/tab.d.mts +10 -10
  140. package/dist/components/tabs/tab.mjs +2 -2
  141. package/dist/components/tabs/tabs-list.d.mts +10 -10
  142. package/dist/components/tabs/tabs-panel.d.mts +10 -10
  143. package/dist/components/tabs/tabs.d.mts +10 -10
  144. package/dist/components/textarea/index.d.mts +10 -10
  145. package/dist/components/textarea/textarea.d.mts +10 -10
  146. package/dist/components/textfield/index.d.mts +10 -10
  147. package/dist/components/textfield/textfield.d.mts +10 -10
  148. package/dist/components/validation-message/index.d.mts +10 -10
  149. package/dist/components/validation-message/validation-message.d.mts +10 -10
  150. package/dist/{dialog-close-button-BQiLlxh_.mjs → dialog-close-button-CJZrsHfN.mjs} +2 -2
  151. package/dist/{dialog-close-button-BQiLlxh_.mjs.map → dialog-close-button-CJZrsHfN.mjs.map} +1 -1
  152. package/dist/{dialog-trigger-BwjU9AQE.mjs → dialog-trigger-CEvyANEF.mjs} +2 -2
  153. package/dist/{dialog-trigger-BwjU9AQE.mjs.map → dialog-trigger-CEvyANEF.mjs.map} +1 -1
  154. package/dist/{dialog-trigger-context-DTtpry85.d.mts → dialog-trigger-context-Dlf5Whq6.d.mts} +3 -3
  155. package/dist/{drawer-close-button-BzgfCB46.mjs → drawer-close-button-gjzgYKSw.mjs} +2 -2
  156. package/dist/{drawer-close-button-BzgfCB46.mjs.map → drawer-close-button-gjzgYKSw.mjs.map} +1 -1
  157. package/dist/{drawer-trigger-uVwwMXt_.mjs → drawer-trigger-CUFZtPLQ.mjs} +2 -2
  158. package/dist/{drawer-trigger-uVwwMXt_.mjs.map → drawer-trigger-CUFZtPLQ.mjs.map} +1 -1
  159. package/dist/{drawer-trigger-context-B9FQbPQM.d.mts → drawer-trigger-context-3hDiHR-k.d.mts} +3 -3
  160. package/dist/{dropdown-Cpj49-R5.mjs → dropdown-BZZfp-oa.mjs} +2 -2
  161. package/dist/{dropdown-Cpj49-R5.mjs.map → dropdown-BZZfp-oa.mjs.map} +1 -1
  162. package/dist/{dropdown-button-B6EgzSgh.mjs → dropdown-button-DFRD5c3-.mjs} +2 -2
  163. package/dist/{dropdown-button-B6EgzSgh.mjs.map → dropdown-button-DFRD5c3-.mjs.map} +1 -1
  164. package/dist/{dropdown-item-DXKNHOz3.d.mts → dropdown-item-wInrqt83.d.mts} +3 -3
  165. package/dist/{dropdown-list-C0ayMUa0.d.mts → dropdown-list-z14BOCh4.d.mts} +3 -3
  166. package/dist/{dropdown-trigger-8zD-9jXF.mjs → dropdown-trigger-FhCAqY-W.mjs} +2 -2
  167. package/dist/{dropdown-trigger-8zD-9jXF.mjs.map → dropdown-trigger-FhCAqY-W.mjs.map} +1 -1
  168. package/dist/{footer-CMS77qh0.mjs → footer-TlcFTYFC.mjs} +2 -2
  169. package/dist/{footer-CMS77qh0.mjs.map → footer-TlcFTYFC.mjs.map} +1 -1
  170. package/dist/{footer-links-DHz69lVl.d.mts → footer-links-C7vC-VD7.d.mts} +3 -3
  171. package/dist/main.d.mts +10 -10
  172. package/dist/main.mjs +16 -16
  173. package/dist/{pagination-button-DT0m4mTM.mjs → pagination-button-F_ZOuaN-.mjs} +2 -2
  174. package/dist/{pagination-button-DT0m4mTM.mjs.map → pagination-button-F_ZOuaN-.mjs.map} +1 -1
  175. package/dist/{pagination-item-Cvl83z9g.d.mts → pagination-item-cKOuhfhM.d.mts} +3 -3
  176. package/dist/{popover-BJuqdEHo.mjs → popover-B8P0dE2-.mjs} +6 -3
  177. package/dist/popover-B8P0dE2-.mjs.map +1 -0
  178. package/dist/{popover-Dqhgmd9j.mjs → popover-CGqBsAam.mjs} +7 -4
  179. package/dist/popover-CGqBsAam.mjs.map +1 -0
  180. package/dist/{popover-trigger-T4NXzZPy.mjs → popover-trigger-BDYAK6jg.mjs} +2 -2
  181. package/dist/{popover-trigger-T4NXzZPy.mjs.map → popover-trigger-BDYAK6jg.mjs.map} +1 -1
  182. package/dist/{popover-trigger-context-BfMeXz8y.d.mts → popover-trigger-context-sQGC75uf.d.mts} +3 -3
  183. package/dist/{search-CTkPGLRm.mjs → search-B9aa1_12.mjs} +4 -4
  184. package/dist/{search-CTkPGLRm.mjs.map → search-B9aa1_12.mjs.map} +1 -1
  185. package/dist/{sticky-header-BRlM-wit.d.mts → sticky-header-Y0uT-nWI.d.mts} +3 -3
  186. package/dist/{tab-qLMKkR-4.mjs → tab-Bm-746fZ.mjs} +2 -2
  187. package/dist/{tab-qLMKkR-4.mjs.map → tab-Bm-746fZ.mjs.map} +1 -1
  188. package/dist/useIsomorphicLayoutEffect-PJRUcTSc.d.mts +7 -0
  189. package/dist/utilities/hooks/index.d.mts +10 -10
  190. package/dist/utilities/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.mts +1 -1
  191. package/dist/utilities/hooks/usePagination/usePagination.d.mts +10 -10
  192. package/dist/utilities/index.d.mts +10 -10
  193. package/dist/vanilla/dropdown/index.mjs +1 -1
  194. package/dist/vanilla/index.mjs +1 -1
  195. package/dist/vanilla/popover/index.mjs +1 -1
  196. package/package.json +4 -7
  197. package/dist/button-CDtQwUfp.mjs.map +0 -1
  198. package/dist/popover-BJuqdEHo.mjs.map +0 -1
  199. package/dist/popover-Dqhgmd9j.mjs.map +0 -1
  200. package/dist/useIsomorphicLayoutEffect-gxToSQn7.d.mts +0 -7
@@ -1,15 +1,15 @@
1
1
  import "../../../useCheckboxGroup-BUpI46_M.mjs";
2
- import "../../../useIsomorphicLayoutEffect-gxToSQn7.mjs";
2
+ import "../../../useIsomorphicLayoutEffect-PJRUcTSc.mjs";
3
3
  import "../../../types-Bgj7p8nD.mjs";
4
- import { i as usePagination, r as UsePaginationProps } from "../../../alert-footer-BpkOdCCs.mjs";
5
- import "../../../dialog-trigger-context-DTtpry85.mjs";
6
- import "../../../drawer-trigger-context-B9FQbPQM.mjs";
7
- import "../../../popover-trigger-context-BfMeXz8y.mjs";
8
- import "../../../dropdown-item-DXKNHOz3.mjs";
9
- import "../../../dropdown-list-C0ayMUa0.mjs";
10
- import "../../../footer-links-DHz69lVl.mjs";
11
- import "../../../pagination-item-Cvl83z9g.mjs";
12
- import "../../../sticky-header-BRlM-wit.mjs";
4
+ import { i as usePagination, r as UsePaginationProps } from "../../../alert-footer-CHHPzMiX.mjs";
5
+ import "../../../dialog-trigger-context-Dlf5Whq6.mjs";
6
+ import "../../../drawer-trigger-context-3hDiHR-k.mjs";
7
+ import "../../../popover-trigger-context-sQGC75uf.mjs";
8
+ import "../../../dropdown-item-wInrqt83.mjs";
9
+ import "../../../dropdown-list-z14BOCh4.mjs";
10
+ import "../../../footer-links-C7vC-VD7.mjs";
11
+ import "../../../pagination-item-cKOuhfhM.mjs";
12
+ import "../../../sticky-header-Y0uT-nWI.mjs";
13
13
  import "../../../index-C3reD4RP.mjs";
14
14
  import "../../../useIsElementAboveViewport-BcIGWQqn.mjs";
15
15
  export { UsePaginationProps, usePagination };
@@ -1,15 +1,15 @@
1
1
  import { r as useCheckboxGroup, t as UseCheckboxGroupOptions } from "../useCheckboxGroup-BUpI46_M.mjs";
2
- import { t as useIsomorphicLayoutEffect } from "../useIsomorphicLayoutEffect-gxToSQn7.mjs";
2
+ import { t as useIsomorphicLayoutEffect } from "../useIsomorphicLayoutEffect-PJRUcTSc.mjs";
3
3
  import "../types-Bgj7p8nD.mjs";
4
- import { i as usePagination, r as UsePaginationProps } from "../alert-footer-BpkOdCCs.mjs";
5
- import "../dialog-trigger-context-DTtpry85.mjs";
6
- import "../drawer-trigger-context-B9FQbPQM.mjs";
7
- import "../popover-trigger-context-BfMeXz8y.mjs";
8
- import "../dropdown-item-DXKNHOz3.mjs";
9
- import "../dropdown-list-C0ayMUa0.mjs";
10
- import "../footer-links-DHz69lVl.mjs";
11
- import "../pagination-item-Cvl83z9g.mjs";
12
- import "../sticky-header-BRlM-wit.mjs";
4
+ import { i as usePagination, r as UsePaginationProps } from "../alert-footer-CHHPzMiX.mjs";
5
+ import "../dialog-trigger-context-Dlf5Whq6.mjs";
6
+ import "../drawer-trigger-context-3hDiHR-k.mjs";
7
+ import "../popover-trigger-context-sQGC75uf.mjs";
8
+ import "../dropdown-item-wInrqt83.mjs";
9
+ import "../dropdown-list-z14BOCh4.mjs";
10
+ import "../footer-links-C7vC-VD7.mjs";
11
+ import "../pagination-item-cKOuhfhM.mjs";
12
+ import "../sticky-header-Y0uT-nWI.mjs";
13
13
  import "../index-C3reD4RP.mjs";
14
14
  import { t as useIsElementAboveViewport } from "../useIsElementAboveViewport-BcIGWQqn.mjs";
15
15
  import { t as useScrollDirection } from "../useScrollDirection-Cm7w2CbB.mjs";
@@ -1,4 +1,4 @@
1
- import { n as initPopover } from "../../popover-BJuqdEHo.mjs";
1
+ import { n as initPopover } from "../../popover-B8P0dE2-.mjs";
2
2
 
3
3
  //#region src/vanilla/dropdown/index.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { n as initPopover, t as arrowPseudoElement } from "../popover-BJuqdEHo.mjs";
1
+ import { n as initPopover, t as arrowPseudoElement } from "../popover-B8P0dE2-.mjs";
2
2
  import { initDropdown } from "./dropdown/index.mjs";
3
3
  import { initSubNavbar } from "./sub-navbar/index.mjs";
4
4
 
@@ -1,3 +1,3 @@
1
- import { n as initPopover, t as arrowPseudoElement } from "../../popover-BJuqdEHo.mjs";
1
+ import { n as initPopover, t as arrowPseudoElement } from "../../popover-B8P0dE2-.mjs";
2
2
 
3
3
  export { arrowPseudoElement, initPopover };
package/package.json CHANGED
@@ -1,10 +1,7 @@
1
1
  {
2
2
  "name": "@bi-digital/react",
3
3
  "type": "module",
4
- "version": "0.7.0",
5
- "engines": {
6
- "node": "^20.19.0 || >=22.12.0"
7
- },
4
+ "version": "0.9.0",
8
5
  "description": "React components from BI Digital",
9
6
  "author": "BI Digital",
10
7
  "homepage": "https://designsystem.bi.no/",
@@ -41,7 +38,7 @@
41
38
  "@radix-ui/react-tabs": "^1.1.13",
42
39
  "@radix-ui/react-use-controllable-state": "^1.2.2",
43
40
  "clsx": "^2.1.1",
44
- "@bi-digital/icons": "0.7.0"
41
+ "@bi-digital/icons": "0.9.0"
45
42
  },
46
43
  "devDependencies": {
47
44
  "@testing-library/dom": "^10.4.1",
@@ -52,7 +49,7 @@
52
49
  "@types/react-dom": "^19.2.3",
53
50
  "@vitest/coverage-v8": "^4.0.8",
54
51
  "@vitest/expect": "^4.0.18",
55
- "jsdom": "^28.0.0",
52
+ "jsdom": "^28.1.0",
56
53
  "react": "^19.2.0",
57
54
  "react-dom": "^19.2.0",
58
55
  "tsconfck": "^3.1.6",
@@ -62,7 +59,7 @@
62
59
  "peerDependencies": {
63
60
  "react": "^19",
64
61
  "react-dom": "^19",
65
- "@bi-digital/css": "0.7.0"
62
+ "@bi-digital/css": "0.9.0"
66
63
  },
67
64
  "scripts": {
68
65
  "build": "tsdown",
@@ -1 +0,0 @@
1
- {"version":3,"file":"button-CDtQwUfp.mjs","names":[],"sources":["../src/components/button/button.tsx"],"sourcesContent":["import clsx from 'clsx/lite';\nimport type { ButtonHTMLAttributes, ReactNode, Ref } from 'react';\nimport { Slot, Slottable } from '@radix-ui/react-slot';\nimport { Spinner } from '../spinner';\nimport type { MergeRight } from '../../utilities';\nimport type { DefaultProps } from '../../types';\n\nexport type ButtonProps = MergeRight<\n DefaultProps & ButtonHTMLAttributes<HTMLButtonElement>,\n {\n /**\n * The button size.\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /**\n * The button variant.\n * @default 'filled'\n */\n variant?: 'filled' | 'outlined' | 'text' | 'flat';\n /**\n * Stretch the button to the full width.\n * @default false\n */\n stretch?: boolean;\n /**\n * Display a loading animation with the Spinner-component.\n * Replaces the `startIcon` if used\n * @default false\n */\n submitting?: boolean;\n /**\n * Display as icon-button, only use when showing an icon as the label.\n * Not compatible with the icon-slots or `stretch`.\n * Always provide a descriptive aria-label for accessibility when set to true.\n * @default false\n */\n icon?: boolean;\n /** Set an icon before the button label, no effect if `icon=true` */\n startIcon?: ReactNode;\n /** Set an icon after the button label, no effect if `icon=true` */\n endIcon?: ReactNode;\n /** Make the button active by showing an active state. */\n active?: boolean;\n ref?: Ref<HTMLButtonElement>;\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n * @default false\n */\n asChild?: boolean;\n /**\n * Specify the type of button. Unset when `asChild` is true\n * @default 'button'\n */\n type?: ButtonHTMLAttributes<HTMLButtonElement>['type'];\n }\n>;\n\nexport const Button = ({\n asChild,\n variant = 'filled',\n size = 'medium',\n stretch,\n dark,\n submitting,\n icon,\n children,\n className,\n startIcon,\n endIcon,\n active,\n ref,\n ...props\n}: ButtonProps) => {\n const Component = asChild ? Slot : 'button';\n\n return (\n <Component\n aria-busy={Boolean(submitting) || undefined}\n aria-disabled={Boolean(submitting) || undefined}\n className={clsx('bi-button', className)}\n data-variant={variant}\n data-size={size}\n data-stretch={stretch || undefined}\n data-dark={dark || undefined}\n data-icon={icon || undefined}\n data-active={active || undefined}\n ref={ref}\n /* don't set type when we use `asChild` */\n type={asChild ? undefined : 'button'}\n /* if consumers set type, our default does not set anything, as `rest` contains this */\n {...props}\n >\n {!icon &&\n (submitting ? (\n <Spinner aria-hidden='true' className='bi-button--start-icon' />\n ) : (\n startIcon && <span className='bi-button--start-icon'>{startIcon}</span>\n ))}\n <Slottable>{icon && submitting ? <Spinner aria-hidden='true' /> : children}</Slottable>\n {!icon && endIcon && <span className='bi-button--end-icon'>{endIcon}</span>}\n </Component>\n );\n};\n"],"mappings":";;;;;;AA0DA,MAAa,UAAU,EACrB,SACA,UAAU,UACV,OAAO,UACP,SACA,MACA,YACA,MACA,UACA,WACA,WACA,SACA,QACA,KACA,GAAG,YACc;AAGjB,QACE,qBAHgB,UAAU,OAAO;EAI/B,aAAW,QAAQ,WAAW,IAAI;EAClC,iBAAe,QAAQ,WAAW,IAAI;EACtC,WAAW,KAAK,aAAa,UAAU;EACvC,gBAAc;EACd,aAAW;EACX,gBAAc,WAAW;EACzB,aAAW,QAAQ;EACnB,aAAW,QAAQ;EACnB,eAAa,UAAU;EAClB;EAEL,MAAM,UAAU,SAAY;EAE5B,GAAI;;GAEH,CAAC,SACC,aACC,oBAAC;IAAQ,eAAY;IAAO,WAAU;KAA0B,GAEhE,aAAa,oBAAC;IAAK,WAAU;cAAyB;KAAiB;GAE3E,oBAAC,uBAAW,QAAQ,aAAa,oBAAC,WAAQ,eAAY,SAAS,GAAG,WAAqB;GACtF,CAAC,QAAQ,WAAW,oBAAC;IAAK,WAAU;cAAuB;KAAe;;GACjE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"popover-BJuqdEHo.mjs","names":[],"sources":["../src/vanilla/popover/index.ts"],"sourcesContent":["import { autoUpdate, computePosition, flip, offset, shift, hide } from '@floating-ui/dom';\nimport type { Middleware, Placement } from '@floating-ui/dom';\n\nexport type InitPopoverOptions = {\n /** The id of the popover to initialize. The trigger element should have a `aria-controls` attribute with the same id. */\n id: string;\n /**\n * Placement of the popover relative to the trigger.\n * @default 'top'\n */\n placement?: Placement;\n /**\n * Additional middleware to use for positioning the popover.\n *\n * @example\n * Prevent the popover from overflowing the navbar by using the `size` middleware:\n * ```ts\n * positionMiddleware: [\n * size({\n * apply: ({ availableHeight, elements, ...state }) => {\n * const available = `${Math.max(0, availableHeight)}px`;\n * const maxHeight = state.placement.includes('top')\n * ? `calc(${available} - var(--bi-layout-navbar-height, 0))`\n * : available;\n * elements.floating.style.maxHeight = maxHeight;\n * },\n * padding,\n * })\n * ]}\n * ```\n */\n positionMiddleware?: Middleware[];\n /**\n * Whether to disable auto placement.\n * @default false\n */\n disableAutoPlacement?: boolean;\n /**\n * The padding used by the `offset` middleware.\n * @default '20'\n */\n padding?: number;\n};\n\n/**\n * Initializes the popover.\n * @param options - InitPopoverOptions\n * @returns A function to programmatically toggle the popover.\n */\nexport const initPopover = ({\n id,\n disableAutoPlacement = false,\n placement = 'top',\n positionMiddleware = [],\n padding = 20,\n}: InitPopoverOptions) => {\n let cleanup: (() => void) | undefined;\n const popover = document.getElementById(id);\n const triggerSelector = `[aria-controls=\"${id}\"]`;\n const trigger = document.querySelector(triggerSelector);\n\n if (!popover || !trigger) return;\n\n const togglePopover = (open: boolean) => {\n if (open) {\n cleanup = autoUpdate(trigger, popover, () => {\n computePosition(trigger, popover, {\n middleware: [\n offset(padding),\n ...(disableAutoPlacement ? [] : [flip({ padding }), shift({ padding })]),\n ...positionMiddleware,\n hide({ padding }),\n ...(popover.dataset.arrow === 'true' ? [arrowPseudoElement] : []),\n ],\n strategy: 'fixed',\n placement,\n }).then(({ x, y, middlewareData }) => {\n popover.style.translate = `${x}px ${y}px`;\n popover.style.visibility = middlewareData.hide?.referenceHidden ? 'hidden' : 'visible';\n });\n });\n popover.setAttribute('aria-hidden', 'false');\n trigger.setAttribute('aria-expanded', 'true');\n } else {\n cleanup?.();\n popover.setAttribute('aria-hidden', 'true');\n trigger.setAttribute('aria-expanded', 'false');\n }\n };\n\n document.addEventListener(\n 'click',\n (event) => {\n const el = event.target as Element | null;\n const isTrigger = el?.closest?.(triggerSelector);\n const isOutside = !isTrigger && !popover.contains(el as Node);\n const isOpen = popover.getAttribute('aria-hidden') === 'false';\n\n if (isTrigger) {\n togglePopover(!isOpen);\n }\n if (isOutside && isOpen) {\n togglePopover(false);\n }\n },\n true,\n );\n\n return togglePopover;\n};\n\nexport const arrowPseudoElement: Middleware = {\n name: 'ArrowPseudoElement',\n fn(data) {\n const { elements, rects, placement } = data;\n\n let arrowX = `${Math.round(rects.reference.width / 2 + rects.reference.x - data.x)}px`;\n let arrowY = `${Math.round(rects.reference.height / 2 + rects.reference.y - data.y)}px`;\n\n if (rects.reference.width > rects.floating.width) {\n arrowX = `${Math.round(rects.floating.width / 2)}px`;\n }\n\n if (rects.reference.height > rects.floating.height) {\n arrowY = `${Math.round(rects.floating.height / 2)}px`;\n }\n\n switch (placement.split('-')[0]) {\n case 'top':\n arrowY = '100%';\n break;\n case 'right':\n arrowX = '0';\n break;\n case 'bottom':\n arrowY = '0';\n break;\n case 'left':\n arrowX = '100%';\n break;\n }\n\n elements.floating.setAttribute('data-placement', placement.split('-')[0]); // We only need top/left/right/bottom\n elements.floating.style.setProperty('--bic-popover-arrow-x', arrowX);\n elements.floating.style.setProperty('--bic-popover-arrow-y', arrowY);\n return data;\n },\n};\n"],"mappings":";;;;;;;;AAiDA,MAAa,eAAe,EAC1B,IACA,uBAAuB,OACvB,YAAY,OACZ,qBAAqB,EAAE,EACvB,UAAU,SACc;CACxB,IAAI;CACJ,MAAM,UAAU,SAAS,eAAe,GAAG;CAC3C,MAAM,kBAAkB,mBAAmB,GAAG;CAC9C,MAAM,UAAU,SAAS,cAAc,gBAAgB;AAEvD,KAAI,CAAC,WAAW,CAAC,QAAS;CAE1B,MAAM,iBAAiB,SAAkB;AACvC,MAAI,MAAM;AACR,aAAU,WAAW,SAAS,eAAe;AAC3C,oBAAgB,SAAS,SAAS;KAChC,YAAY;MACV,OAAO,QAAQ;MACf,GAAI,uBAAuB,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;MACvE,GAAG;MACH,KAAK,EAAE,SAAS,CAAC;MACjB,GAAI,QAAQ,QAAQ,UAAU,SAAS,CAAC,mBAAmB,GAAG,EAAE;MACjE;KACD,UAAU;KACV;KACD,CAAC,CAAC,MAAM,EAAE,GAAG,GAAG,qBAAqB;AACpC,aAAQ,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE;AACtC,aAAQ,MAAM,aAAa,eAAe,MAAM,kBAAkB,WAAW;MAC7E;KACF;AACF,WAAQ,aAAa,eAAe,QAAQ;AAC5C,WAAQ,aAAa,iBAAiB,OAAO;SACxC;AACL,cAAW;AACX,WAAQ,aAAa,eAAe,OAAO;AAC3C,WAAQ,aAAa,iBAAiB,QAAQ;;;AAIlD,UAAS,iBACP,UACC,UAAU;EACT,MAAM,KAAK,MAAM;EACjB,MAAM,YAAY,IAAI,UAAU,gBAAgB;EAChD,MAAM,YAAY,CAAC,aAAa,CAAC,QAAQ,SAAS,GAAW;EAC7D,MAAM,SAAS,QAAQ,aAAa,cAAc,KAAK;AAEvD,MAAI,UACF,eAAc,CAAC,OAAO;AAExB,MAAI,aAAa,OACf,eAAc,MAAM;IAGxB,KACD;AAED,QAAO;;AAGT,MAAa,qBAAiC;CAC5C,MAAM;CACN,GAAG,MAAM;EACP,MAAM,EAAE,UAAU,OAAO,cAAc;EAEvC,IAAI,SAAS,GAAG,KAAK,MAAM,MAAM,UAAU,QAAQ,IAAI,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;EACnF,IAAI,SAAS,GAAG,KAAK,MAAM,MAAM,UAAU,SAAS,IAAI,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;AAEpF,MAAI,MAAM,UAAU,QAAQ,MAAM,SAAS,MACzC,UAAS,GAAG,KAAK,MAAM,MAAM,SAAS,QAAQ,EAAE,CAAC;AAGnD,MAAI,MAAM,UAAU,SAAS,MAAM,SAAS,OAC1C,UAAS,GAAG,KAAK,MAAM,MAAM,SAAS,SAAS,EAAE,CAAC;AAGpD,UAAQ,UAAU,MAAM,IAAI,CAAC,IAA7B;GACE,KAAK;AACH,aAAS;AACT;GACF,KAAK;AACH,aAAS;AACT;GACF,KAAK;AACH,aAAS;AACT;GACF,KAAK;AACH,aAAS;AACT;;AAGJ,WAAS,SAAS,aAAa,kBAAkB,UAAU,MAAM,IAAI,CAAC,GAAG;AACzE,WAAS,SAAS,MAAM,YAAY,yBAAyB,OAAO;AACpE,WAAS,SAAS,MAAM,YAAY,yBAAyB,OAAO;AACpE,SAAO;;CAEV"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"popover-Dqhgmd9j.mjs","names":["cl"],"sources":["../src/components/popover/popover.tsx"],"sourcesContent":["// Thanks to Designsystemet:\n// https://github.com/digdir/designsystemet/blob/8aa6dc274e5b0338d15572f44b5dd3fab6fa4eb1/packages/react/src/components/Popover/Popover.tsx\n\nimport { autoUpdate, computePosition, flip, offset, shift, hide } from '@floating-ui/dom';\nimport type { Middleware, Placement } from '@floating-ui/dom';\nimport { Slot } from '@radix-ui/react-slot';\nimport cl from 'clsx/lite';\nimport { use, useRef } from 'react';\nimport type { HTMLAttributes, Ref } from 'react';\nimport { useEffect } from 'react';\nimport type { DefaultProps } from '../../types';\nimport type { MergeRight } from '../../utilities';\nimport { useMergeRefs } from '../../utilities/hooks/useMergeRefs/useMergeRefs';\nimport { Context } from './popover-trigger-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { arrowPseudoElement } from '../../vanilla/popover';\n\nexport type PopoverProps = MergeRight<\n DefaultProps & HTMLAttributes<HTMLDivElement>,\n {\n /**\n * `id` to connect the trigger with the popover - required when not using PopoverContext.\n */\n id?: string;\n /**\n * Placement of the popover on the trigger.\n * @default 'top'\n */\n placement?: Placement;\n /**\n * When a boolean is provided, the popover will be controlled.\n * @default undefined\n */\n open?: boolean;\n /**\n * Callback when the open state changes.\n * @param open - The new open state of the popover.\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * Whether to disable auto placement.\n * @default false\n */\n disableAutoPlacement?: boolean;\n /**\n * Additional middleware to use for positioning the popover.\n *\n * @example\n * Prevent the popover from overflowing the navbar by using the `size` middleware:\n * ```ts\n * positionMiddleware={[\n * size({\n * apply: ({ availableHeight, elements, ...state }) => {\n * const available = `${Math.max(0, availableHeight)}px`;\n * const maxHeight = state.placement.includes('top')\n * ? `calc(${available} - var(--bi-layout-navbar-height, 0))`\n * : available;\n * elements.floating.style.maxHeight = maxHeight;\n * },\n * padding,\n * })\n * ]}\n * ```\n */\n positionMiddleware?: Middleware[];\n /**\n * The padding used by the `offset` middleware.\n * @default '20'\n */\n padding?: number;\n /**\n * Show an arrow on the popover, pointing toward the center of the reference element.\n * @default false\n */\n arrow?: boolean;\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n * @default false\n */\n asChild?: boolean;\n ref?: Ref<HTMLDivElement>;\n }\n>;\n\n/**\n * Popover component, used to display content in a popover over an element.\n *\n * @example with TriggerContext\n * <PopoverTriggerContext>\n * <PopoverTrigger>Open Popover</PopoverTrigger>\n * <Popover>\n * Content\n * </Popover>\n * </PopoverTriggerContext>\n *\n * @example without TriggerContext\n * <Button aria-controls=\"my-popover\" aria-expanded={open}>Open Popover</Button>\n * <Popover open={open} onOpenChange={onOpenChange} id=\"my-popover\">\n * Content\n * </Popover>\n */\nexport const Popover = ({\n id,\n className,\n onOpenChange,\n open,\n placement = 'top',\n disableAutoPlacement = false,\n positionMiddleware = [],\n padding = 20,\n dark = false,\n arrow = false,\n asChild = false,\n ref,\n ...rest\n}: PopoverProps) => {\n const Component = asChild ? Slot : 'div';\n\n const popoverRef = useRef<HTMLDivElement>(null);\n const isControlled = useRef(open !== undefined);\n const mergedRefs = useMergeRefs([popoverRef, ref]);\n const { popoverId, setPopoverId, popoverOpen, setPopoverOpen } = use(Context);\n\n const [isOpen, setIsOpen] = useControllableState({\n // False positive: isControlled will never change, but is just used to store the initial controlled state\n prop: isControlled.current ? open : popoverOpen,\n onChange: (val) => {\n onOpenChange?.(val);\n setPopoverOpen?.(val);\n },\n defaultProp: false,\n caller: 'Popover',\n });\n\n useEffect(() => {\n const popover = popoverRef.current;\n const handleClick = (event: MouseEvent) => {\n const el = event.target as Element | null;\n const isTrigger = el?.closest?.(`[aria-controls=\"${popover?.id}\"]`);\n const isOutside = !isTrigger && !popover?.contains(el as Node);\n\n if (isOutside) {\n setIsOpen(false);\n }\n };\n\n const handleKeydown = (event: KeyboardEvent) => {\n if (event.key !== 'Escape' || !isOpen) return;\n event.preventDefault(); // Prevent closing fullscreen in Safari\n setIsOpen(false);\n };\n\n document.addEventListener('click', handleClick, true); // Use capture to execute before React event API\n document.addEventListener('keydown', handleKeydown);\n return () => {\n document.removeEventListener('click', handleClick, true);\n document.removeEventListener('keydown', handleKeydown);\n };\n }, [isOpen, setIsOpen]);\n\n useEffect(() => {\n const popover = popoverRef.current;\n const trigger = document.querySelector(`[aria-controls=\"${popover?.id}\"]`);\n\n if (popover && trigger && isOpen)\n return autoUpdate(trigger, popover, () => {\n computePosition(trigger, popover, {\n middleware: [\n offset(padding),\n ...(disableAutoPlacement ? [] : [flip({ padding }), shift({ padding })]),\n ...positionMiddleware,\n hide({ padding, strategy: 'escaped' }),\n ...(arrow ? [arrowPseudoElement] : []),\n ],\n strategy: 'fixed',\n placement,\n }).then(({ x, y, middlewareData }) => {\n popover.style.translate = `${x}px ${y}px`;\n popover.style.visibility = middlewareData.hide?.referenceHidden ? 'hidden' : 'visible';\n });\n });\n }, [isOpen, placement, id, disableAutoPlacement, positionMiddleware, padding, arrow]);\n\n // Update context with id\n useEffect(() => {\n if (id) setPopoverId?.(id);\n }, [id, setPopoverId]);\n\n return (\n <Component\n className={cl('bi-popover', className)}\n id={id || popoverId}\n aria-hidden={!isOpen}\n data-arrow={arrow || undefined}\n data-dark={dark}\n ref={mergedRefs}\n {...rest}\n />\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqGA,MAAa,WAAW,EACtB,IACA,WACA,cACA,MACA,YAAY,OACZ,uBAAuB,OACvB,qBAAqB,EAAE,EACvB,UAAU,IACV,OAAO,OACP,QAAQ,OACR,UAAU,OACV,KACA,GAAG,WACe;CAClB,MAAM,YAAY,UAAU,OAAO;CAEnC,MAAM,aAAa,OAAuB,KAAK;CAC/C,MAAM,eAAe,OAAO,SAAS,OAAU;CAC/C,MAAM,aAAa,aAAa,CAAC,YAAY,IAAI,CAAC;CAClD,MAAM,EAAE,WAAW,cAAc,aAAa,mBAAmB,IAAI,QAAQ;CAE7E,MAAM,CAAC,QAAQ,aAAa,qBAAqB;EAE/C,MAAM,aAAa,UAAU,OAAO;EACpC,WAAW,QAAQ;AACjB,kBAAe,IAAI;AACnB,oBAAiB,IAAI;;EAEvB,aAAa;EACb,QAAQ;EACT,CAAC;AAEF,iBAAgB;EACd,MAAM,UAAU,WAAW;EAC3B,MAAM,eAAe,UAAsB;GACzC,MAAM,KAAK,MAAM;AAIjB,OAFkB,CADA,IAAI,UAAU,mBAAmB,SAAS,GAAG,IAAI,IACnC,CAAC,SAAS,SAAS,GAAW,CAG5D,WAAU,MAAM;;EAIpB,MAAM,iBAAiB,UAAyB;AAC9C,OAAI,MAAM,QAAQ,YAAY,CAAC,OAAQ;AACvC,SAAM,gBAAgB;AACtB,aAAU,MAAM;;AAGlB,WAAS,iBAAiB,SAAS,aAAa,KAAK;AACrD,WAAS,iBAAiB,WAAW,cAAc;AACnD,eAAa;AACX,YAAS,oBAAoB,SAAS,aAAa,KAAK;AACxD,YAAS,oBAAoB,WAAW,cAAc;;IAEvD,CAAC,QAAQ,UAAU,CAAC;AAEvB,iBAAgB;EACd,MAAM,UAAU,WAAW;EAC3B,MAAM,UAAU,SAAS,cAAc,mBAAmB,SAAS,GAAG,IAAI;AAE1E,MAAI,WAAW,WAAW,OACxB,QAAO,WAAW,SAAS,eAAe;AACxC,mBAAgB,SAAS,SAAS;IAChC,YAAY;KACV,OAAO,QAAQ;KACf,GAAI,uBAAuB,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;KACvE,GAAG;KACH,KAAK;MAAE;MAAS,UAAU;MAAW,CAAC;KACtC,GAAI,QAAQ,CAAC,mBAAmB,GAAG,EAAE;KACtC;IACD,UAAU;IACV;IACD,CAAC,CAAC,MAAM,EAAE,GAAG,GAAG,qBAAqB;AACpC,YAAQ,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE;AACtC,YAAQ,MAAM,aAAa,eAAe,MAAM,kBAAkB,WAAW;KAC7E;IACF;IACH;EAAC;EAAQ;EAAW;EAAI;EAAsB;EAAoB;EAAS;EAAM,CAAC;AAGrF,iBAAgB;AACd,MAAI,GAAI,gBAAe,GAAG;IACzB,CAAC,IAAI,aAAa,CAAC;AAEtB,QACE,oBAAC;EACC,WAAWA,KAAG,cAAc,UAAU;EACtC,IAAI,MAAM;EACV,eAAa,CAAC;EACd,cAAY,SAAS;EACrB,aAAW;EACX,KAAK;EACL,GAAI;GACJ"}
@@ -1,7 +0,0 @@
1
- import { useEffect } from "react";
2
-
3
- //#region src/utilities/hooks/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts
4
- declare const useIsomorphicLayoutEffect: typeof useEffect;
5
- //#endregion
6
- export { useIsomorphicLayoutEffect as t };
7
- //# sourceMappingURL=useIsomorphicLayoutEffect-gxToSQn7.d.mts.map