@cognite/aura 0.3.5 → 1.46105.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 (446) hide show
  1. package/CHANGELOG.md +264 -0
  2. package/DESIGN.md +638 -281
  3. package/LICENSE +21 -0
  4. package/README.md +21 -13
  5. package/dist/colors-deprecated.css +587 -0
  6. package/dist/colors.css +803 -830
  7. package/dist/components/index.d.ts +63 -57
  8. package/dist/components/index.js +62 -59
  9. package/dist/components/index.js.map +1 -0
  10. package/dist/components/ui/core/accordion/accordion.d.ts +19 -18
  11. package/dist/components/ui/core/accordion/accordion.js +99 -78
  12. package/dist/components/ui/core/accordion/accordion.js.map +1 -0
  13. package/dist/components/ui/core/action-toolbar/action-toolbar-motion.d.ts +8 -0
  14. package/dist/components/ui/core/action-toolbar/action-toolbar-motion.js +125 -0
  15. package/dist/components/ui/core/action-toolbar/action-toolbar-motion.js.map +1 -0
  16. package/dist/components/ui/core/action-toolbar/action-toolbar.d.ts +31 -31
  17. package/dist/components/ui/core/action-toolbar/action-toolbar.js +156 -106
  18. package/dist/components/ui/core/action-toolbar/action-toolbar.js.map +1 -0
  19. package/dist/components/ui/core/alert/alert.d.ts +25 -25
  20. package/dist/components/ui/core/alert/alert.js +181 -152
  21. package/dist/components/ui/core/alert/alert.js.map +1 -0
  22. package/dist/components/ui/core/avatar/avatar.d.ts +10 -9
  23. package/dist/components/ui/core/avatar/avatar.js +75 -65
  24. package/dist/components/ui/core/avatar/avatar.js.map +1 -0
  25. package/dist/components/ui/core/badge/badge.d.ts +13 -12
  26. package/dist/components/ui/core/badge/badge.js +88 -72
  27. package/dist/components/ui/core/badge/badge.js.map +1 -0
  28. package/dist/components/ui/core/banner/banner.d.ts +18 -18
  29. package/dist/components/ui/core/banner/banner.js +179 -142
  30. package/dist/components/ui/core/banner/banner.js.map +1 -0
  31. package/dist/components/ui/core/breadcrumb/breadcrumb.d.ts +12 -12
  32. package/dist/components/ui/core/breadcrumb/breadcrumb.js +139 -104
  33. package/dist/components/ui/core/breadcrumb/breadcrumb.js.map +1 -0
  34. package/dist/components/ui/core/button/button.d.ts +7 -7
  35. package/dist/components/ui/core/button/button.gallery.d.ts +2 -0
  36. package/dist/components/ui/core/button/button.gallery.js +76 -0
  37. package/dist/components/ui/core/button/button.gallery.js.map +1 -0
  38. package/dist/components/ui/core/button/button.js +57 -47
  39. package/dist/components/ui/core/button/button.js.map +1 -0
  40. package/dist/components/ui/core/button-group/button-group.d.ts +9 -9
  41. package/dist/components/ui/core/button-group/button-group.js +50 -40
  42. package/dist/components/ui/core/button-group/button-group.js.map +1 -0
  43. package/dist/components/ui/core/calendar/calendar-header.d.ts +7 -7
  44. package/dist/components/ui/core/calendar/calendar-header.js +102 -63
  45. package/dist/components/ui/core/calendar/calendar-header.js.map +1 -0
  46. package/dist/components/ui/core/calendar/calendar-utils.d.ts +30 -30
  47. package/dist/components/ui/core/calendar/calendar-utils.js +116 -39
  48. package/dist/components/ui/core/calendar/calendar-utils.js.map +1 -0
  49. package/dist/components/ui/core/calendar/calendar.d.ts +10 -10
  50. package/dist/components/ui/core/calendar/calendar.js +95 -66
  51. package/dist/components/ui/core/calendar/calendar.js.map +1 -0
  52. package/dist/components/ui/core/calendar/constants.js +3 -0
  53. package/dist/components/ui/core/calendar/constants.js.map +1 -0
  54. package/dist/components/ui/core/card/card.d.ts +20 -20
  55. package/dist/components/ui/core/card/card.js +133 -104
  56. package/dist/components/ui/core/card/card.js.map +1 -0
  57. package/dist/components/ui/core/chart/chart.d.ts +55 -53
  58. package/dist/components/ui/core/chart/chart.js +196 -116
  59. package/dist/components/ui/core/chart/chart.js.map +1 -0
  60. package/dist/components/ui/core/chart/index.d.ts +2 -2
  61. package/dist/components/ui/core/chart/index.js +3 -2
  62. package/dist/components/ui/core/chart/index.js.map +1 -0
  63. package/dist/components/ui/core/checkbox/checkbox.d.ts +9 -9
  64. package/dist/components/ui/core/checkbox/checkbox.js +88 -68
  65. package/dist/components/ui/core/checkbox/checkbox.js.map +1 -0
  66. package/dist/components/ui/core/checkbox/checkbox.metadata.d.ts +1 -1
  67. package/dist/components/ui/core/checkbox/checkbox.metadata.js +6 -7
  68. package/dist/components/ui/core/checkbox/checkbox.metadata.js.map +1 -0
  69. package/dist/components/ui/core/code-block/code-block.d.ts +19 -19
  70. package/dist/components/ui/core/code-block/code-block.js +259 -175
  71. package/dist/components/ui/core/code-block/code-block.js.map +1 -0
  72. package/dist/components/ui/core/collapsible/collapsible.d.ts +5 -5
  73. package/dist/components/ui/core/collapsible/collapsible.js +36 -30
  74. package/dist/components/ui/core/collapsible/collapsible.js.map +1 -0
  75. package/dist/components/ui/core/combobox/combobox.d.ts +13 -13
  76. package/dist/components/ui/core/combobox/combobox.js +89 -40
  77. package/dist/components/ui/core/combobox/combobox.js.map +1 -0
  78. package/dist/components/ui/core/command/command.d.ts +20 -18
  79. package/dist/components/ui/core/command/command.js +137 -85
  80. package/dist/components/ui/core/command/command.js.map +1 -0
  81. package/dist/components/ui/core/conversation/conversation.d.ts +14 -0
  82. package/dist/components/ui/core/conversation/conversation.js +51 -0
  83. package/dist/components/ui/core/conversation/conversation.js.map +1 -0
  84. package/dist/components/ui/core/count/count.d.ts +8 -6
  85. package/dist/components/ui/core/count/count.js +51 -21
  86. package/dist/components/ui/core/count/count.js.map +1 -0
  87. package/dist/components/ui/core/data-grid/data-grid-cell.d.ts +7 -7
  88. package/dist/components/ui/core/data-grid/data-grid-cell.js +22 -22
  89. package/dist/components/ui/core/data-grid/data-grid-cell.js.map +1 -0
  90. package/dist/components/ui/core/data-grid/data-grid-filter-clauses.d.ts +14 -0
  91. package/dist/components/ui/core/data-grid/data-grid-filter-clauses.js +36 -0
  92. package/dist/components/ui/core/data-grid/data-grid-filter-clauses.js.map +1 -0
  93. package/dist/components/ui/core/data-grid/data-grid-filter-panel.d.ts +41 -0
  94. package/dist/components/ui/core/data-grid/data-grid-filter-panel.js +273 -0
  95. package/dist/components/ui/core/data-grid/data-grid-filter-panel.js.map +1 -0
  96. package/dist/components/ui/core/data-grid/data-grid-footer.d.ts +6 -0
  97. package/dist/components/ui/core/data-grid/data-grid-footer.js +34 -0
  98. package/dist/components/ui/core/data-grid/data-grid-footer.js.map +1 -0
  99. package/dist/components/ui/core/data-grid/data-grid-header-row.d.ts +10 -10
  100. package/dist/components/ui/core/data-grid/data-grid-header-row.js +69 -55
  101. package/dist/components/ui/core/data-grid/data-grid-header-row.js.map +1 -0
  102. package/dist/components/ui/core/data-grid/data-grid-header.d.ts +11 -0
  103. package/dist/components/ui/core/data-grid/data-grid-header.js +67 -0
  104. package/dist/components/ui/core/data-grid/data-grid-header.js.map +1 -0
  105. package/dist/components/ui/core/data-grid/data-grid-row.d.ts +15 -15
  106. package/dist/components/ui/core/data-grid/data-grid-row.js +104 -76
  107. package/dist/components/ui/core/data-grid/data-grid-row.js.map +1 -0
  108. package/dist/components/ui/core/data-grid/data-grid.d.ts +85 -35
  109. package/dist/components/ui/core/data-grid/data-grid.fixtures.d.ts +7 -7
  110. package/dist/components/ui/core/data-grid/data-grid.fixtures.js +139 -0
  111. package/dist/components/ui/core/data-grid/data-grid.fixtures.js.map +1 -0
  112. package/dist/components/ui/core/data-grid/data-grid.js +402 -132
  113. package/dist/components/ui/core/data-grid/data-grid.js.map +1 -0
  114. package/dist/components/ui/core/data-grid/data-grid.utils.d.ts +3 -3
  115. package/dist/components/ui/core/data-grid/data-grid.utils.js +44 -33
  116. package/dist/components/ui/core/data-grid/data-grid.utils.js.map +1 -0
  117. package/dist/components/ui/core/data-grid/index.d.ts +4 -1
  118. package/dist/components/ui/core/data-grid/index.js +5 -2
  119. package/dist/components/ui/core/data-grid/index.js.map +1 -0
  120. package/dist/components/ui/core/date-time-pickers/date-picker/date-picker.d.ts +11 -13
  121. package/dist/components/ui/core/date-time-pickers/date-picker/date-picker.js +85 -61
  122. package/dist/components/ui/core/date-time-pickers/date-picker/date-picker.js.map +1 -0
  123. package/dist/components/ui/core/date-time-pickers/date-picker/index.d.ts +3 -3
  124. package/dist/components/ui/core/date-time-pickers/date-picker/index.js +3 -0
  125. package/dist/components/ui/core/date-time-pickers/date-picker/index.js.map +1 -0
  126. package/dist/components/ui/core/date-time-pickers/date-picker/types.d.ts +14 -14
  127. package/dist/components/ui/core/date-time-pickers/date-picker/types.js +3 -0
  128. package/dist/components/ui/core/date-time-pickers/date-picker/types.js.map +1 -0
  129. package/dist/components/ui/core/date-time-pickers/date-picker/use-date-picker.d.ts +2 -2
  130. package/dist/components/ui/core/date-time-pickers/date-picker/use-date-picker.js +51 -36
  131. package/dist/components/ui/core/date-time-pickers/date-picker/use-date-picker.js.map +1 -0
  132. package/dist/components/ui/core/date-time-pickers/date-range-picker/date-range-picker.d.ts +11 -13
  133. package/dist/components/ui/core/date-time-pickers/date-range-picker/date-range-picker.js +89 -64
  134. package/dist/components/ui/core/date-time-pickers/date-range-picker/date-range-picker.js.map +1 -0
  135. package/dist/components/ui/core/date-time-pickers/date-range-picker/index.d.ts +3 -3
  136. package/dist/components/ui/core/date-time-pickers/date-range-picker/index.js +3 -0
  137. package/dist/components/ui/core/date-time-pickers/date-range-picker/index.js.map +1 -0
  138. package/dist/components/ui/core/date-time-pickers/date-range-picker/types.d.ts +20 -20
  139. package/dist/components/ui/core/date-time-pickers/date-range-picker/types.js +3 -0
  140. package/dist/components/ui/core/date-time-pickers/date-range-picker/types.js.map +1 -0
  141. package/dist/components/ui/core/date-time-pickers/date-range-picker/use-date-range-picker.d.ts +4 -4
  142. package/dist/components/ui/core/date-time-pickers/date-range-picker/use-date-range-picker.js +95 -60
  143. package/dist/components/ui/core/date-time-pickers/date-range-picker/use-date-range-picker.js.map +1 -0
  144. package/dist/components/ui/core/date-time-pickers/date-time-picker/date-time-picker.d.ts +15 -0
  145. package/dist/components/ui/core/date-time-pickers/date-time-picker/date-time-picker.js +120 -0
  146. package/dist/components/ui/core/date-time-pickers/date-time-picker/date-time-picker.js.map +1 -0
  147. package/dist/components/ui/core/date-time-pickers/date-time-picker/index.d.ts +3 -1
  148. package/dist/components/ui/core/date-time-pickers/date-time-picker/index.js +3 -0
  149. package/dist/components/ui/core/date-time-pickers/date-time-picker/index.js.map +1 -0
  150. package/dist/components/ui/core/date-time-pickers/date-time-picker/types.d.ts +25 -32
  151. package/dist/components/ui/core/date-time-pickers/date-time-picker/types.js +3 -0
  152. package/dist/components/ui/core/date-time-pickers/date-time-picker/types.js.map +1 -0
  153. package/dist/components/ui/core/date-time-pickers/date-time-picker/use-date-time-picker.d.ts +2 -2
  154. package/dist/components/ui/core/date-time-pickers/date-time-picker/use-date-time-picker.js +78 -0
  155. package/dist/components/ui/core/date-time-pickers/date-time-picker/use-date-time-picker.js.map +1 -0
  156. package/dist/components/ui/core/date-time-pickers/date-time-range-picker/date-time-range-picker.d.ts +13 -15
  157. package/dist/components/ui/core/date-time-pickers/date-time-range-picker/date-time-range-picker.js +165 -119
  158. package/dist/components/ui/core/date-time-pickers/date-time-range-picker/date-time-range-picker.js.map +1 -0
  159. package/dist/components/ui/core/date-time-pickers/date-time-range-picker/index.d.ts +3 -3
  160. package/dist/components/ui/core/date-time-pickers/date-time-range-picker/index.js +3 -0
  161. package/dist/components/ui/core/date-time-pickers/date-time-range-picker/index.js.map +1 -0
  162. package/dist/components/ui/core/date-time-pickers/date-time-range-picker/types.d.ts +37 -37
  163. package/dist/components/ui/core/date-time-pickers/date-time-range-picker/types.js +3 -0
  164. package/dist/components/ui/core/date-time-pickers/date-time-range-picker/types.js.map +1 -0
  165. package/dist/components/ui/core/date-time-pickers/date-time-range-picker/use-date-time-range-picker.d.ts +3 -3
  166. package/dist/components/ui/core/date-time-pickers/date-time-range-picker/use-date-time-range-picker.js +163 -104
  167. package/dist/components/ui/core/date-time-pickers/date-time-range-picker/use-date-time-range-picker.js.map +1 -0
  168. package/dist/components/ui/core/date-time-pickers/index.d.ts +17 -12
  169. package/dist/components/ui/core/date-time-pickers/index.js +10 -6
  170. package/dist/components/ui/core/date-time-pickers/index.js.map +1 -0
  171. package/dist/components/ui/core/date-time-pickers/shared/am-pm-scroll/am-pm-scroll.d.ts +5 -5
  172. package/dist/components/ui/core/date-time-pickers/shared/am-pm-scroll/am-pm-scroll.js +52 -42
  173. package/dist/components/ui/core/date-time-pickers/shared/am-pm-scroll/am-pm-scroll.js.map +1 -0
  174. package/dist/components/ui/core/date-time-pickers/shared/constants.d.ts +6 -1
  175. package/dist/components/ui/core/date-time-pickers/shared/constants.js +23 -0
  176. package/dist/components/ui/core/date-time-pickers/shared/constants.js.map +1 -0
  177. package/dist/components/ui/core/date-time-pickers/shared/date-time-input/date-time-input.d.ts +16 -15
  178. package/dist/components/ui/core/date-time-pickers/shared/date-time-input/date-time-input.js +87 -64
  179. package/dist/components/ui/core/date-time-pickers/shared/date-time-input/date-time-input.js.map +1 -0
  180. package/dist/components/ui/core/date-time-pickers/shared/date-time-input/range-input-display.d.ts +10 -9
  181. package/dist/components/ui/core/date-time-pickers/shared/date-time-input/range-input-display.js +89 -38
  182. package/dist/components/ui/core/date-time-pickers/shared/date-time-input/range-input-display.js.map +1 -0
  183. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-popover-state.d.ts +5 -5
  184. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-popover-state.js +34 -23
  185. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-popover-state.js.map +1 -0
  186. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-range-date-state.d.ts +23 -23
  187. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-range-date-state.js +95 -52
  188. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-range-date-state.js.map +1 -0
  189. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-range-step-manager.d.ts +5 -5
  190. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-range-step-manager.js +22 -18
  191. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-range-step-manager.js.map +1 -0
  192. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-single-date-state.d.ts +19 -19
  193. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-single-date-state.js +41 -24
  194. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-single-date-state.js.map +1 -0
  195. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-time-state.d.ts +13 -13
  196. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-time-state.js +33 -24
  197. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-time-state.js.map +1 -0
  198. package/dist/components/ui/core/date-time-pickers/shared/scroll-cell-classes.d.ts +5 -5
  199. package/dist/components/ui/core/date-time-pickers/shared/scroll-cell-classes.js +9 -4
  200. package/dist/components/ui/core/date-time-pickers/shared/scroll-cell-classes.js.map +1 -0
  201. package/dist/components/ui/core/date-time-pickers/shared/shortcuts-panel/shortcuts-panel.d.ts +13 -9
  202. package/dist/components/ui/core/date-time-pickers/shared/shortcuts-panel/shortcuts-panel.js +22 -17
  203. package/dist/components/ui/core/date-time-pickers/shared/shortcuts-panel/shortcuts-panel.js.map +1 -0
  204. package/dist/components/ui/core/date-time-pickers/shared/time-picker-panel/index.d.ts +2 -2
  205. package/dist/components/ui/core/date-time-pickers/shared/time-picker-panel/index.js +3 -0
  206. package/dist/components/ui/core/date-time-pickers/shared/time-picker-panel/index.js.map +1 -0
  207. package/dist/components/ui/core/date-time-pickers/shared/time-picker-panel/time-picker-panel.d.ts +13 -13
  208. package/dist/components/ui/core/date-time-pickers/shared/time-picker-panel/time-picker-panel.js +49 -40
  209. package/dist/components/ui/core/date-time-pickers/shared/time-picker-panel/time-picker-panel.js.map +1 -0
  210. package/dist/components/ui/core/date-time-pickers/shared/time-picker-scroll/time-picker-scroll.d.ts +7 -7
  211. package/dist/components/ui/core/date-time-pickers/shared/time-picker-scroll/time-picker-scroll.js +41 -34
  212. package/dist/components/ui/core/date-time-pickers/shared/time-picker-scroll/time-picker-scroll.js.map +1 -0
  213. package/dist/components/ui/core/date-time-pickers/time-picker/index.d.ts +3 -3
  214. package/dist/components/ui/core/date-time-pickers/time-picker/index.js +3 -0
  215. package/dist/components/ui/core/date-time-pickers/time-picker/index.js.map +1 -0
  216. package/dist/components/ui/core/date-time-pickers/time-picker/time-picker.d.ts +12 -14
  217. package/dist/components/ui/core/date-time-pickers/time-picker/time-picker.js +99 -79
  218. package/dist/components/ui/core/date-time-pickers/time-picker/time-picker.js.map +1 -0
  219. package/dist/components/ui/core/date-time-pickers/time-picker/types.d.ts +20 -20
  220. package/dist/components/ui/core/date-time-pickers/time-picker/types.js +3 -0
  221. package/dist/components/ui/core/date-time-pickers/time-picker/types.js.map +1 -0
  222. package/dist/components/ui/core/date-time-pickers/time-picker/use-time-picker.d.ts +2 -2
  223. package/dist/components/ui/core/date-time-pickers/time-picker/use-time-picker.js +63 -41
  224. package/dist/components/ui/core/date-time-pickers/time-picker/use-time-picker.js.map +1 -0
  225. package/dist/components/ui/core/date-time-pickers/time-range-picker/index.d.ts +3 -1
  226. package/dist/components/ui/core/date-time-pickers/time-range-picker/index.js +3 -0
  227. package/dist/components/ui/core/date-time-pickers/time-range-picker/index.js.map +1 -0
  228. package/dist/components/ui/core/date-time-pickers/time-range-picker/time-range-picker.d.ts +14 -0
  229. package/dist/components/ui/core/date-time-pickers/time-range-picker/time-range-picker.js +115 -0
  230. package/dist/components/ui/core/date-time-pickers/time-range-picker/time-range-picker.js.map +1 -0
  231. package/dist/components/ui/core/date-time-pickers/time-range-picker/types.d.ts +30 -36
  232. package/dist/components/ui/core/date-time-pickers/time-range-picker/types.js +3 -0
  233. package/dist/components/ui/core/date-time-pickers/time-range-picker/types.js.map +1 -0
  234. package/dist/components/ui/core/date-time-pickers/time-range-picker/use-time-range-picker.d.ts +2 -2
  235. package/dist/components/ui/core/date-time-pickers/time-range-picker/use-time-range-picker.js +145 -0
  236. package/dist/components/ui/core/date-time-pickers/time-range-picker/use-time-range-picker.js.map +1 -0
  237. package/dist/components/ui/core/date-time-pickers/utils/date-input.d.ts +56 -0
  238. package/dist/components/ui/core/date-time-pickers/utils/date-input.js +67 -0
  239. package/dist/components/ui/core/date-time-pickers/utils/date-input.js.map +1 -0
  240. package/dist/components/ui/core/date-time-pickers/utils/date-range-utils.d.ts +18 -18
  241. package/dist/components/ui/core/date-time-pickers/utils/date-range-utils.js +42 -0
  242. package/dist/components/ui/core/date-time-pickers/utils/date-range-utils.js.map +1 -0
  243. package/dist/components/ui/core/date-time-pickers/utils/format-utils.d.ts +31 -29
  244. package/dist/components/ui/core/date-time-pickers/utils/format-utils.js +56 -0
  245. package/dist/components/ui/core/date-time-pickers/utils/format-utils.js.map +1 -0
  246. package/dist/components/ui/core/date-time-pickers/utils/segment-utils.d.ts +21 -21
  247. package/dist/components/ui/core/date-time-pickers/utils/segment-utils.js +170 -0
  248. package/dist/components/ui/core/date-time-pickers/utils/segment-utils.js.map +1 -0
  249. package/dist/components/ui/core/date-time-pickers/utils/time-utils.d.ts +28 -28
  250. package/dist/components/ui/core/date-time-pickers/utils/time-utils.js +88 -7
  251. package/dist/components/ui/core/date-time-pickers/utils/time-utils.js.map +1 -0
  252. package/dist/components/ui/core/date-time-pickers/utils/time-validation.d.ts +17 -17
  253. package/dist/components/ui/core/date-time-pickers/utils/time-validation.js +43 -0
  254. package/dist/components/ui/core/date-time-pickers/utils/time-validation.js.map +1 -0
  255. package/dist/components/ui/core/dialog/dialog.d.ts +12 -9
  256. package/dist/components/ui/core/dialog/dialog.js +90 -82
  257. package/dist/components/ui/core/dialog/dialog.js.map +1 -0
  258. package/dist/components/ui/core/dropdown-menu/dropdown-menu.d.ts +22 -19
  259. package/dist/components/ui/core/dropdown-menu/dropdown-menu.js +204 -149
  260. package/dist/components/ui/core/dropdown-menu/dropdown-menu.js.map +1 -0
  261. package/dist/components/ui/core/empty-state/empty-state.context.d.ts +4 -4
  262. package/dist/components/ui/core/empty-state/empty-state.context.js +8 -5
  263. package/dist/components/ui/core/empty-state/empty-state.context.js.map +1 -0
  264. package/dist/components/ui/core/empty-state/empty-state.d.ts +14 -14
  265. package/dist/components/ui/core/empty-state/empty-state.js +96 -82
  266. package/dist/components/ui/core/empty-state/empty-state.js.map +1 -0
  267. package/dist/components/ui/core/helper-text/helper-text.d.ts +7 -7
  268. package/dist/components/ui/core/helper-text/helper-text.js +55 -36
  269. package/dist/components/ui/core/helper-text/helper-text.js.map +1 -0
  270. package/dist/components/ui/core/hover-card/hover-card.d.ts +7 -6
  271. package/dist/components/ui/core/hover-card/hover-card.js +56 -52
  272. package/dist/components/ui/core/hover-card/hover-card.js.map +1 -0
  273. package/dist/components/ui/core/inline-citation/inline-citation.d.ts +26 -25
  274. package/dist/components/ui/core/inline-citation/inline-citation.js +121 -97
  275. package/dist/components/ui/core/inline-citation/inline-citation.js.map +1 -0
  276. package/dist/components/ui/core/input/input.d.ts +2 -2
  277. package/dist/components/ui/core/input/input.js +15 -13
  278. package/dist/components/ui/core/input/input.js.map +1 -0
  279. package/dist/components/ui/core/input-group/input-group.d.ts +25 -14
  280. package/dist/components/ui/core/input-group/input-group.js +149 -76
  281. package/dist/components/ui/core/input-group/input-group.js.map +1 -0
  282. package/dist/components/ui/core/item/item.d.ts +20 -0
  283. package/dist/components/ui/core/item/item.js +93 -0
  284. package/dist/components/ui/core/item/item.js.map +1 -0
  285. package/dist/components/ui/core/kbd/kbd.d.ts +3 -3
  286. package/dist/components/ui/core/kbd/kbd.js +24 -20
  287. package/dist/components/ui/core/kbd/kbd.js.map +1 -0
  288. package/dist/components/ui/core/label/label.d.ts +3 -3
  289. package/dist/components/ui/core/label/label.js +33 -26
  290. package/dist/components/ui/core/label/label.js.map +1 -0
  291. package/dist/components/ui/core/loader/loader.d.ts +6 -6
  292. package/dist/components/ui/core/loader/loader.js +97 -80
  293. package/dist/components/ui/core/loader/loader.js.map +1 -0
  294. package/dist/components/ui/core/message/message-response-default-streamdown-controls.d.ts +9 -9
  295. package/dist/components/ui/core/message/message-response-default-streamdown-controls.js +19 -12
  296. package/dist/components/ui/core/message/message-response-default-streamdown-controls.js.map +1 -0
  297. package/dist/components/ui/core/message/message-response-math-plugin.d.ts +3 -0
  298. package/dist/components/ui/core/message/message-response-math-plugin.js +6 -0
  299. package/dist/components/ui/core/message/message-response-math-plugin.js.map +1 -0
  300. package/dist/components/ui/core/message/message.d.ts +27 -23
  301. package/dist/components/ui/core/message/message.js +453 -316
  302. package/dist/components/ui/core/message/message.js.map +1 -0
  303. package/dist/components/ui/core/overflow-list/overflow-list.d.ts +21 -0
  304. package/dist/components/ui/core/overflow-list/overflow-list.js +197 -0
  305. package/dist/components/ui/core/overflow-list/overflow-list.js.map +1 -0
  306. package/dist/components/ui/core/overflow-list/overflow-list.utils.d.ts +37 -35
  307. package/dist/components/ui/core/overflow-list/overflow-list.utils.js +206 -0
  308. package/dist/components/ui/core/overflow-list/overflow-list.utils.js.map +1 -0
  309. package/dist/components/ui/core/pagination/pagination-size-context.d.ts +2 -2
  310. package/dist/components/ui/core/pagination/pagination-size-context.js +6 -5
  311. package/dist/components/ui/core/pagination/pagination-size-context.js.map +1 -0
  312. package/dist/components/ui/core/pagination/pagination-teleport.d.ts +9 -9
  313. package/dist/components/ui/core/pagination/pagination-teleport.js +127 -84
  314. package/dist/components/ui/core/pagination/pagination-teleport.js.map +1 -0
  315. package/dist/components/ui/core/pagination/pagination-teleport.utils.js +6 -6
  316. package/dist/components/ui/core/pagination/pagination-teleport.utils.js.map +1 -0
  317. package/dist/components/ui/core/pagination/pagination.d.ts +39 -39
  318. package/dist/components/ui/core/pagination/pagination.js +294 -234
  319. package/dist/components/ui/core/pagination/pagination.js.map +1 -0
  320. package/dist/components/ui/core/popover/popover.d.ts +12 -11
  321. package/dist/components/ui/core/popover/popover.js +104 -89
  322. package/dist/components/ui/core/popover/popover.js.map +1 -0
  323. package/dist/components/ui/core/progress/progress.d.ts +9 -8
  324. package/dist/components/ui/core/progress/progress.js +50 -35
  325. package/dist/components/ui/core/progress/progress.js.map +1 -0
  326. package/dist/components/ui/core/prompt-input/prompt-input.d.ts +27 -27
  327. package/dist/components/ui/core/prompt-input/prompt-input.js +342 -271
  328. package/dist/components/ui/core/prompt-input/prompt-input.js.map +1 -0
  329. package/dist/components/ui/core/radio-group/radio-group.d.ts +12 -12
  330. package/dist/components/ui/core/radio-group/radio-group.js +88 -58
  331. package/dist/components/ui/core/radio-group/radio-group.js.map +1 -0
  332. package/dist/components/ui/core/reasoning/reasoning.d.ts +7 -7
  333. package/dist/components/ui/core/reasoning/reasoning.js +68 -56
  334. package/dist/components/ui/core/reasoning/reasoning.js.map +1 -0
  335. package/dist/components/ui/core/scroll-area/scroll-area.d.ts +4 -4
  336. package/dist/components/ui/core/scroll-area/scroll-area.js +50 -40
  337. package/dist/components/ui/core/scroll-area/scroll-area.js.map +1 -0
  338. package/dist/components/ui/core/search/search.d.ts +8 -8
  339. package/dist/components/ui/core/search/search.js +122 -76
  340. package/dist/components/ui/core/search/search.js.map +1 -0
  341. package/dist/components/ui/core/segmented-control/segmented-control.d.ts +10 -10
  342. package/dist/components/ui/core/segmented-control/segmented-control.js +203 -149
  343. package/dist/components/ui/core/segmented-control/segmented-control.js.map +1 -0
  344. package/dist/components/ui/core/select/select.d.ts +27 -26
  345. package/dist/components/ui/core/select/select.js +213 -168
  346. package/dist/components/ui/core/select/select.js.map +1 -0
  347. package/dist/components/ui/core/separator/separator.d.ts +2 -2
  348. package/dist/components/ui/core/separator/separator.js +13 -13
  349. package/dist/components/ui/core/separator/separator.js.map +1 -0
  350. package/dist/components/ui/core/shimmer/shimmer.d.ts +8 -8
  351. package/dist/components/ui/core/shimmer/shimmer.js +64 -40
  352. package/dist/components/ui/core/shimmer/shimmer.js.map +1 -0
  353. package/dist/components/ui/core/skeleton/skeleton.d.ts +2 -2
  354. package/dist/components/ui/core/skeleton/skeleton.js +13 -13
  355. package/dist/components/ui/core/skeleton/skeleton.js.map +1 -0
  356. package/dist/components/ui/core/slider/slider.d.ts +7 -7
  357. package/dist/components/ui/core/slider/slider.js +51 -39
  358. package/dist/components/ui/core/slider/slider.js.map +1 -0
  359. package/dist/components/ui/core/sonner-toast/sonner-toast.d.ts +2 -2
  360. package/dist/components/ui/core/sonner-toast/sonner-toast.js +67 -54
  361. package/dist/components/ui/core/sonner-toast/sonner-toast.js.map +1 -0
  362. package/dist/components/ui/core/sources/sources.d.ts +12 -12
  363. package/dist/components/ui/core/sources/sources.js +87 -58
  364. package/dist/components/ui/core/sources/sources.js.map +1 -0
  365. package/dist/components/ui/core/switch/switch.d.ts +9 -9
  366. package/dist/components/ui/core/switch/switch.js +83 -61
  367. package/dist/components/ui/core/switch/switch.js.map +1 -0
  368. package/dist/components/ui/core/switch/switch.metadata.d.ts +1 -1
  369. package/dist/components/ui/core/switch/switch.metadata.js +8 -0
  370. package/dist/components/ui/core/switch/switch.metadata.js.map +1 -0
  371. package/dist/components/ui/core/tabs/tabs.d.ts +20 -18
  372. package/dist/components/ui/core/tabs/tabs.js +176 -147
  373. package/dist/components/ui/core/tabs/tabs.js.map +1 -0
  374. package/dist/components/ui/core/tabs/tabs.utils.d.ts +1 -1
  375. package/dist/components/ui/core/tabs/tabs.utils.js +10 -6
  376. package/dist/components/ui/core/tabs/tabs.utils.js.map +1 -0
  377. package/dist/components/ui/core/textarea/textarea.d.ts +2 -2
  378. package/dist/components/ui/core/textarea/textarea.js +13 -13
  379. package/dist/components/ui/core/textarea/textarea.js.map +1 -0
  380. package/dist/components/ui/core/toggle/toggle.d.ts +9 -9
  381. package/dist/components/ui/core/toggle/toggle.js +60 -54
  382. package/dist/components/ui/core/toggle/toggle.js.map +1 -0
  383. package/dist/components/ui/core/tool/tool.d.ts +18 -18
  384. package/dist/components/ui/core/tool/tool.js +167 -126
  385. package/dist/components/ui/core/tool/tool.js.map +1 -0
  386. package/dist/components/ui/core/toolbar/toolbar.d.ts +37 -0
  387. package/dist/components/ui/core/toolbar/toolbar.js +171 -0
  388. package/dist/components/ui/core/toolbar/toolbar.js.map +1 -0
  389. package/dist/components/ui/core/tooltip/tooltip.d.ts +8 -7
  390. package/dist/components/ui/core/tooltip/tooltip.js +53 -46
  391. package/dist/components/ui/core/tooltip/tooltip.js.map +1 -0
  392. package/dist/components/ui/core/topbar/topbar.d.ts +26 -26
  393. package/dist/components/ui/core/topbar/topbar.js +160 -105
  394. package/dist/components/ui/core/topbar/topbar.js.map +1 -0
  395. package/dist/components/ui/core/tree/tree.d.ts +20 -0
  396. package/dist/components/ui/core/tree/tree.js +100 -0
  397. package/dist/components/ui/core/tree/tree.js.map +1 -0
  398. package/dist/eslint/index.d.ts +5 -5
  399. package/dist/eslint/index.js +9 -5
  400. package/dist/eslint/index.js.map +1 -0
  401. package/dist/eslint/no-overriding-styles.d.ts +1 -1
  402. package/dist/eslint/no-overriding-styles.js +341 -201
  403. package/dist/eslint/no-overriding-styles.js.map +1 -0
  404. package/dist/icons/index.d.ts +1 -1
  405. package/dist/icons/index.js +2 -0
  406. package/dist/icons/index.js.map +1 -0
  407. package/dist/index.d.ts +1 -1
  408. package/dist/index.js +3 -0
  409. package/dist/index.js.map +1 -0
  410. package/dist/lib/ai/types.d.ts +43 -43
  411. package/dist/lib/ai/types.js +3 -0
  412. package/dist/lib/ai/types.js.map +1 -0
  413. package/dist/lib/decorative-variant-classes.d.ts +53 -0
  414. package/dist/lib/decorative-variant-classes.js +58 -0
  415. package/dist/lib/decorative-variant-classes.js.map +1 -0
  416. package/dist/lib/highlight-code.d.ts +11 -8
  417. package/dist/lib/highlight-code.js +58 -40
  418. package/dist/lib/highlight-code.js.map +1 -0
  419. package/dist/lib/portal-container-context.d.ts +1 -1
  420. package/dist/lib/portal-container-context.js +8 -8
  421. package/dist/lib/portal-container-context.js.map +1 -0
  422. package/dist/lib/shared-theme-from-url.d.ts +13 -0
  423. package/dist/lib/shared-theme-from-url.js +61 -0
  424. package/dist/lib/shared-theme-from-url.js.map +1 -0
  425. package/dist/lib/style-scope.d.ts +2 -2
  426. package/dist/lib/style-scope.js +6 -6
  427. package/dist/lib/style-scope.js.map +1 -0
  428. package/dist/lib/theme-share-url.d.ts +31 -0
  429. package/dist/lib/theme-share-url.js +116 -0
  430. package/dist/lib/theme-share-url.js.map +1 -0
  431. package/dist/lib/types.d.ts +39 -39
  432. package/dist/lib/types.js +3 -0
  433. package/dist/lib/types.js.map +1 -0
  434. package/dist/lib/use-controllable-state.d.ts +4 -7
  435. package/dist/lib/use-controllable-state.js +34 -21
  436. package/dist/lib/use-controllable-state.js.map +1 -0
  437. package/dist/lib/utils.d.ts +63 -34
  438. package/dist/lib/utils.js +134 -32
  439. package/dist/lib/utils.js.map +1 -0
  440. package/dist/styles.css +2 -1
  441. package/dist/styles.source.css +24 -12
  442. package/dist/utils/assign-ref.d.ts +3 -0
  443. package/dist/utils/assign-ref.js +13 -0
  444. package/dist/utils/assign-ref.js.map +1 -0
  445. package/package.json +46 -11
  446. package/src/components/ui/core/button/button.md +93 -0
package/dist/lib/utils.js CHANGED
@@ -1,37 +1,139 @@
1
- import e from "./style-scope.js";
2
- import { clsx as t } from "clsx";
3
- import { twMerge as n } from "tailwind-merge";
4
- //#region libs/aura/src/lib/utils.ts
5
- var r = null, i = !1;
6
- function a(...e) {
7
- return n(t(e));
1
+ import { clsx } from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+ import styleScope from "./style-scope.js";
4
+ let portalContainer = null;
5
+ let hasWarnedAboutCustomPortalContainerProps = false;
6
+ export function cn(...inputs) {
7
+ return twMerge(clsx(inputs));
8
8
  }
9
- var o = typeof window < "u" && window.__STORYBOOK_TEST__ === !0;
10
- function s(e) {
11
- let t = e.trim().split(/\s+/);
12
- return t.length === 0 || !t[0] ? "" : t.length === 1 ? t[0].slice(0, 2).toUpperCase() : t[0].charAt(0).toUpperCase() + t[t.length - 1].charAt(0).toUpperCase();
9
+ export const isStorybookTestEnv = Boolean(import.meta.env.VITEST) || typeof window !== 'undefined' && window.__STORYBOOK_TEST__ === true;
10
+ export function getInitials(name) {
11
+ const parts = name.trim().split(/\s+/);
12
+ if (parts.length === 0 || !parts[0]) {
13
+ return '';
14
+ }
15
+ if (parts.length === 1) {
16
+ return parts[0].slice(0, 2).toUpperCase();
17
+ }
18
+ const firstInitial = parts[0].charAt(0).toUpperCase();
19
+ const lastInitial = parts[parts.length - 1].charAt(0).toUpperCase();
20
+ return firstInitial + lastInitial;
13
21
  }
14
- var c = "focus-visible:shadow-focus-ring outline-none", l = "focus-visible:shadow-focus-ring-destructive outline-none", u = "border border-transparent rounded-lg bg-muted-background py-1.75 pl-2 pr-1 text-sm leading-5 tracking-tight text-muted-foreground placeholder:text-muted-foreground", d = "hover:bg-accent-background hover:border hover:border-border-emphasized", f = "[&:not(:placeholder-shown):not(:focus)]:bg-muted-background [&:not(:placeholder-shown)]:text-foreground", p = "focus-visible:shadow-focus-ring focus-visible:bg-background focus-visible:border-transparent focus-visible:text-foreground outline-none", m = "aria-invalid:border-destructive-foreground aria-invalid:shadow-focus-ring-destructive aria-invalid:border-transparent aria-invalid:text-foreground aria-invalid:focus-visible:shadow-focus-ring aria-invalid:focus-visible:bg-background aria-invalid:focus-visible:border-transparent aria-invalid:focus-visible:text-foreground outline-none", h = "disabled:bg-disabled-background disabled:border-transparent disabled:text-disabled-foreground disabled:placeholder:text-disabled-foreground disabled:pointer-events-none disabled:cursor-not-allowed", g = "read-only:border-transparent read-only:text-muted-foreground read-only:cursor-default read-only:hover:border-transparent read-only:focus-visible:shadow-none read-only:focus-visible:border-transparent read-only:focus-visible:bg-muted-background [&:read-only:not(:placeholder-shown)]:text-muted-foreground", _ = "grid max-w-150 cursor-pointer grid-cols-[auto_1fr] items-start gap-x-2 gap-y-1 has-[[data-disabled]]:cursor-not-allowed", v = "min-h-9 py-2", y = a("w-64 rounded-md border border-transparent p-3 bg-card-background", "has-[[data-checked]]:bg-active-muted-background", "hover:border-border-emphasized hover:bg-accent-background", "has-[[data-disabled]]:border-border has-[[data-disabled]]:bg-transparent", "has-[[data-disabled]]:hover:border-border has-[[data-disabled]]:hover:bg-transparent"), b = "col-start-2 text-sm font-medium leading-4.5 tracking-normal text-secondary-foreground dark:text-secondary-foreground", x = "col-start-2 text-xs font-normal leading-3.5 tracking-tightest text-muted-foreground";
15
- function S(e) {
16
- return e.split("-").map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join("");
22
+ /**
23
+ * Focus rings for non-form interactive elements (buttons, etc.).
24
+ * These provide only the shadow-based focus ring without background/border changes.
25
+ */ export const focusRing = 'focus-visible:shadow-focus-ring outline-none';
26
+ export const focusRingDestructive = 'focus-visible:shadow-focus-ring-destructive outline-none';
27
+ /** Shared typography for section/group labels inside menus (dropdown, select, command). */ export const menuSectionLabelTypography = 'text-sm font-medium text-muted-foreground';
28
+ /** Popover menu surface padding (dropdown content, command list). */ export const menuContainerPadding = 'p-1';
29
+ /** Menu item padding — section labels use the same horizontal inset. */ export const menuItemPadding = 'p-2';
30
+ /** Section label layout: 8px top, 4px bottom, horizontal padding aligned with menu items. */ export const menuSectionLabelLayout = 'pt-2 pb-1 px-2';
31
+ export const menuSectionLabelClasses = cn(menuSectionLabelTypography, menuSectionLabelLayout);
32
+ /** Full-width divider between menu sections (not below section labels).
33
+ * `-mx-1` cancels container padding so the line is edge-to-edge;
34
+ * `my-1` keeps a 4px gap so item hover surfaces match the container inset. */ export const menuSectionSeparatorClasses = 'bg-default h-px shrink-0 -mx-1 my-1';
35
+ /**
36
+ * cmdk group headings (Command palette sections).
37
+ * pl-2 matches menu item content start — icon column when present, text when not.
38
+ */ export const menuSectionLabelCmdkHeadingClasses = '**:[[cmdk-group-heading]]:text-sm **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground **:[[cmdk-group-heading]]:pt-2 **:[[cmdk-group-heading]]:pb-1 **:[[cmdk-group-heading]]:pl-2 **:[[cmdk-group-heading]]:pr-2';
39
+ /** When cmdk items use inset padding (e.g. checkbox column), align labels with item text. */ export const menuSectionLabelCmdkHeadingInsetClasses = '**:[[cmdk-group][data-inset=true]>[[cmdk-group-heading]]]:pl-8';
40
+ /**
41
+ * Reusable form element state Tailwind classes.
42
+ * Import these to maintain consistent styling across all form components.
43
+ */ export const formElementBase = 'border border-transparent rounded-lg bg-medium-background py-1.75 pl-2 pr-1 text-sm leading-5 tracking-tight text-muted-foreground placeholder:text-muted-foreground';
44
+ export const hoverState = 'hover:border-emphasized';
45
+ export const filledState = '[&:not(:placeholder-shown):not(:focus):not(:read-only)]:bg-medium-background [&:not(:placeholder-shown):not(:read-only)]:text-base-foreground';
46
+ export const focusState = 'focus-visible:shadow-focus-ring focus-visible:bg-base-background focus-visible:border-transparent focus-visible:text-base-foreground outline-none';
47
+ export const invalidState = 'aria-invalid:border-destructive-foreground aria-invalid:shadow-focus-ring-destructive aria-invalid:border-transparent aria-invalid:text-base-foreground aria-invalid:focus-visible:shadow-focus-ring aria-invalid:focus-visible:bg-base-background aria-invalid:focus-visible:border-transparent aria-invalid:focus-visible:text-base-foreground outline-none';
48
+ export const disabledState = 'disabled:bg-transparent disabled:border-disabled disabled:text-base-foreground-disabled disabled:placeholder:text-base-foreground-disabled disabled:pointer-events-none disabled:cursor-not-allowed';
49
+ export const formFieldTriggerDisabledState = cn(disabledState, 'data-disabled:bg-transparent data-disabled:border-disabled data-disabled:text-base-foreground-disabled data-disabled:pointer-events-none data-disabled:cursor-not-allowed');
50
+ /** Shared layout and states for select/combobox triggers (not native inputs). */ export const formFieldTriggerLayout = 'w-full min-w-0 h-9 flex items-center justify-between gap-2 text-left overflow-hidden transition-[color,box-shadow] cursor-pointer';
51
+ export const formFieldOpenState = 'shadow-focus-ring bg-base-background border-transparent focus:border-transparent hover:border-transparent text-base-foreground';
52
+ export const formFieldTriggerIcon = "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground disabled:[&_svg:not([class*='text-'])]:text-base-foreground-disabled data-disabled:[&_svg:not([class*='text-'])]:text-base-foreground-disabled data-readonly:[&_svg:not([class*='text-'])]:text-muted-foreground";
53
+ export const formFieldTriggerReadOnlyState = 'data-readonly:bg-card-background data-readonly:border-transparent data-readonly:text-muted-foreground data-readonly:cursor-default data-readonly:hover:border-transparent data-readonly:focus-visible:shadow-none data-readonly:focus-visible:border-transparent data-readonly:focus-visible:bg-card-background';
54
+ export const formFieldTriggerClasses = cn(formFieldTriggerLayout, formElementBase, hoverState, focusState, invalidState, formFieldTriggerDisabledState, formFieldTriggerReadOnlyState, formFieldTriggerIcon);
55
+ export const readOnlyState = 'read-only:bg-card-background read-only:border-transparent read-only:text-muted-foreground read-only:placeholder:text-muted-foreground read-only:cursor-default read-only:hover:border-transparent read-only:focus-visible:shadow-none read-only:focus-visible:border-transparent read-only:focus-visible:bg-card-background [&:read-only:not(:placeholder-shown)]:text-muted-foreground';
56
+ /**
57
+ * Reusable styles for selection-control rows (radio group items, checkbox items, etc.).
58
+ * These provide the shared layout, card variant, label, and description classes
59
+ * without baking in a parent group name (ancestor `group-has-[...]/<name>` selectors
60
+ * must stay inline in each consumer so they reference that component's own `group/<name>`).
61
+ */ export const selectionItemBase = 'grid max-w-150 cursor-pointer grid-cols-[auto_1fr] items-start gap-x-2 gap-y-1 has-[[data-disabled]]:cursor-not-allowed';
62
+ export const selectionItemDefault = 'min-h-9 py-2';
63
+ export const selectionItemCard = cn('w-64 rounded-md border border-transparent p-3 bg-card-background', 'has-[[data-checked]]:bg-secondary-background has-[[data-checked]]:hover:bg-secondary-background-hover', 'hover:border-default hover:bg-card-background-hover', 'has-[[data-disabled]]:border-disabled has-[[data-disabled]]:bg-transparent', 'has-[[data-disabled]]:hover:border-disabled has-[[data-disabled]]:hover:bg-transparent');
64
+ export const selectionItemLabel = 'col-start-2 text-sm font-medium leading-4.5 tracking-normal text-secondary-foreground';
65
+ export const selectionItemDescription = 'col-start-2 text-xs font-normal leading-3.5 tracking-tightest text-muted-foreground';
66
+ export function slugToPascalCase(slug) {
67
+ return slug.split('-').map((part)=>part.charAt(0).toUpperCase() + part.slice(1)).join('');
17
68
  }
18
- function C(e) {
19
- if (!e) return "unknown";
20
- try {
21
- return new URL(e).hostname;
22
- } catch {
23
- return e;
24
- }
69
+ /**
70
+ * Safely extracts hostname from a URL string.
71
+ * Returns the hostname if valid, otherwise returns the original string or "unknown".
72
+ *
73
+ * @param url - URL string to extract hostname from (optional)
74
+ * @returns The hostname, original string, or "unknown" if url is undefined
75
+ */ export function getHostname(url) {
76
+ if (!url) return 'unknown';
77
+ try {
78
+ return new URL(url).hostname;
79
+ } catch {
80
+ return url;
81
+ }
25
82
  }
26
- var w = (t) => {
27
- let n = !!(t && Object.keys(t).length > 0), a = t?.id ?? e.portalContainer, o = t?.className ?? e.styleScope, s = (e) => {
28
- e.id = a, e.className = o, e.style.position = t?.style?.position ?? "fixed", e.style.zIndex = t?.style?.zIndex ?? "1000", t?.style && Object.assign(e.style, t.style);
29
- };
30
- if (r && !document.body?.contains(r) && (r = null), r) return n && console.warn("getPortalContainer: Portal container already exists. Custom options will be ignored to prevent side effects."), r;
31
- if (typeof window > "u") return;
32
- n && !i && (console.warn("Custom portal container props can lead to unintended behavior. Use with caution."), i = !0);
33
- let c = document?.getElementById(a);
34
- return c || (c = document.createElement("div"), document.body.appendChild(c)), s(c), r = c, c;
83
+ /** True when `value` parses as JSON, so it is worth highlighting as such. */ export function isJsonString(value) {
84
+ const trimmed = value.trim();
85
+ if (!trimmed.startsWith('{') && !trimmed.startsWith('[')) {
86
+ return false;
87
+ }
88
+ try {
89
+ JSON.parse(trimmed);
90
+ return true;
91
+ } catch {
92
+ return false;
93
+ }
94
+ }
95
+ /**
96
+ * Gets or creates the portal container for portalled UI components.
97
+ * Container is created in document.body to avoid positioning issues
98
+ * from the shell app's container query context.
99
+ * The result is cached to avoid side effects on subsequent calls during React renders.
100
+ */ export const getPortalContainer = (options)=>{
101
+ const hasCustomOptions = Boolean(options && Object.keys(options).length > 0);
102
+ const containerId = options?.id ?? styleScope.portalContainer;
103
+ const containerClassName = options?.className ?? styleScope.styleScope;
104
+ const applyContainerProps = (element)=>{
105
+ element.id = containerId;
106
+ element.className = containerClassName;
107
+ element.style.position = options?.style?.position ?? 'fixed';
108
+ element.style.zIndex = options?.style?.zIndex ?? '1000';
109
+ if (options?.style) {
110
+ Object.assign(element.style, options.style);
111
+ }
112
+ };
113
+ if (portalContainer && !document.body?.contains(portalContainer)) {
114
+ portalContainer = null;
115
+ }
116
+ if (portalContainer) {
117
+ if (hasCustomOptions) {
118
+ console.warn('getPortalContainer: Portal container already exists. Custom options will be ignored to prevent side effects.');
119
+ }
120
+ return portalContainer;
121
+ }
122
+ if (typeof window === 'undefined') {
123
+ return undefined;
124
+ }
125
+ if (hasCustomOptions && !hasWarnedAboutCustomPortalContainerProps) {
126
+ console.warn('Custom portal container props can lead to unintended behavior. Use with caution.');
127
+ hasWarnedAboutCustomPortalContainerProps = true;
128
+ }
129
+ let container = document?.getElementById(containerId);
130
+ if (!container) {
131
+ container = document.createElement('div');
132
+ document.body.appendChild(container);
133
+ }
134
+ applyContainerProps(container);
135
+ portalContainer = container;
136
+ return container;
35
137
  };
36
- //#endregion
37
- export { a as cn, h as disabledState, f as filledState, c as focusRing, l as focusRingDestructive, p as focusState, u as formElementBase, C as getHostname, s as getInitials, w as getPortalContainer, d as hoverState, m as invalidState, o as isStorybookTestEnv, g as readOnlyState, _ as selectionItemBase, y as selectionItemCard, v as selectionItemDefault, x as selectionItemDescription, b as selectionItemLabel, S as slugToPascalCase };
138
+
139
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/utils.ts"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nimport styleScope from './style-scope';\n\nlet portalContainer: HTMLElement | null = null;\nlet hasWarnedAboutCustomPortalContainerProps = false;\n\ntype PortalContainerOptions = {\n id?: string;\n className?: string;\n style?: Partial<CSSStyleDeclaration>;\n};\n\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n\nexport const isStorybookTestEnv: boolean =\n Boolean(import.meta.env.VITEST) ||\n (typeof window !== 'undefined' &&\n (window as Window & { __STORYBOOK_TEST__?: boolean }).__STORYBOOK_TEST__ ===\n true);\n\nexport function getInitials(name: string): string {\n const parts = name.trim().split(/\\s+/);\n\n if (parts.length === 0 || !parts[0]) {\n return '';\n }\n\n if (parts.length === 1) {\n return parts[0].slice(0, 2).toUpperCase();\n }\n\n const firstInitial = parts[0].charAt(0).toUpperCase();\n const lastInitial = parts[parts.length - 1].charAt(0).toUpperCase();\n\n return firstInitial + lastInitial;\n}\n\n/**\n * Focus rings for non-form interactive elements (buttons, etc.).\n * These provide only the shadow-based focus ring without background/border changes.\n */\nexport const focusRing =\n 'focus-visible:shadow-focus-ring outline-none' as const;\nexport const focusRingDestructive =\n 'focus-visible:shadow-focus-ring-destructive outline-none' as const;\n\n/** Shared typography for section/group labels inside menus (dropdown, select, command). */\nexport const menuSectionLabelTypography =\n 'text-sm font-medium text-muted-foreground' as const;\n\n/** Popover menu surface padding (dropdown content, command list). */\nexport const menuContainerPadding = 'p-1' as const;\n\n/** Menu item padding — section labels use the same horizontal inset. */\nexport const menuItemPadding = 'p-2' as const;\n\n/** Section label layout: 8px top, 4px bottom, horizontal padding aligned with menu items. */\nexport const menuSectionLabelLayout = 'pt-2 pb-1 px-2' as const;\n\nexport const menuSectionLabelClasses: string = cn(\n menuSectionLabelTypography,\n menuSectionLabelLayout\n);\n\n/** Full-width divider between menu sections (not below section labels).\n * `-mx-1` cancels container padding so the line is edge-to-edge;\n * `my-1` keeps a 4px gap so item hover surfaces match the container inset. */\nexport const menuSectionSeparatorClasses =\n 'bg-default h-px shrink-0 -mx-1 my-1' as const;\n\n/**\n * cmdk group headings (Command palette sections).\n * pl-2 matches menu item content start — icon column when present, text when not.\n */\nexport const menuSectionLabelCmdkHeadingClasses =\n '**:[[cmdk-group-heading]]:text-sm **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground **:[[cmdk-group-heading]]:pt-2 **:[[cmdk-group-heading]]:pb-1 **:[[cmdk-group-heading]]:pl-2 **:[[cmdk-group-heading]]:pr-2' as const;\n\n/** When cmdk items use inset padding (e.g. checkbox column), align labels with item text. */\nexport const menuSectionLabelCmdkHeadingInsetClasses =\n '**:[[cmdk-group][data-inset=true]>[[cmdk-group-heading]]]:pl-8' as const;\n\n/**\n * Reusable form element state Tailwind classes.\n * Import these to maintain consistent styling across all form components.\n */\nexport const formElementBase =\n 'border border-transparent rounded-lg bg-medium-background py-1.75 pl-2 pr-1 text-sm leading-5 tracking-tight text-muted-foreground placeholder:text-muted-foreground' as const;\nexport const hoverState = 'hover:border-emphasized' as const;\nexport const filledState =\n '[&:not(:placeholder-shown):not(:focus):not(:read-only)]:bg-medium-background [&:not(:placeholder-shown):not(:read-only)]:text-base-foreground' as const;\nexport const focusState =\n 'focus-visible:shadow-focus-ring focus-visible:bg-base-background focus-visible:border-transparent focus-visible:text-base-foreground outline-none' as const;\nexport const invalidState =\n 'aria-invalid:border-destructive-foreground aria-invalid:shadow-focus-ring-destructive aria-invalid:border-transparent aria-invalid:text-base-foreground aria-invalid:focus-visible:shadow-focus-ring aria-invalid:focus-visible:bg-base-background aria-invalid:focus-visible:border-transparent aria-invalid:focus-visible:text-base-foreground outline-none' as const;\nexport const disabledState =\n 'disabled:bg-transparent disabled:border-disabled disabled:text-base-foreground-disabled disabled:placeholder:text-base-foreground-disabled disabled:pointer-events-none disabled:cursor-not-allowed' as const;\nexport const formFieldTriggerDisabledState: string = cn(\n disabledState,\n 'data-disabled:bg-transparent data-disabled:border-disabled data-disabled:text-base-foreground-disabled data-disabled:pointer-events-none data-disabled:cursor-not-allowed'\n);\n\n/** Shared layout and states for select/combobox triggers (not native inputs). */\nexport const formFieldTriggerLayout =\n 'w-full min-w-0 h-9 flex items-center justify-between gap-2 text-left overflow-hidden transition-[color,box-shadow] cursor-pointer' as const;\nexport const formFieldOpenState =\n 'shadow-focus-ring bg-base-background border-transparent focus:border-transparent hover:border-transparent text-base-foreground' as const;\nexport const formFieldTriggerIcon =\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground disabled:[&_svg:not([class*='text-'])]:text-base-foreground-disabled data-disabled:[&_svg:not([class*='text-'])]:text-base-foreground-disabled data-readonly:[&_svg:not([class*='text-'])]:text-muted-foreground\" as const;\nexport const formFieldTriggerReadOnlyState =\n 'data-readonly:bg-card-background data-readonly:border-transparent data-readonly:text-muted-foreground data-readonly:cursor-default data-readonly:hover:border-transparent data-readonly:focus-visible:shadow-none data-readonly:focus-visible:border-transparent data-readonly:focus-visible:bg-card-background' as const;\nexport const formFieldTriggerClasses: string = cn(\n formFieldTriggerLayout,\n formElementBase,\n hoverState,\n focusState,\n invalidState,\n formFieldTriggerDisabledState,\n formFieldTriggerReadOnlyState,\n formFieldTriggerIcon\n);\n\nexport const readOnlyState =\n 'read-only:bg-card-background read-only:border-transparent read-only:text-muted-foreground read-only:placeholder:text-muted-foreground read-only:cursor-default read-only:hover:border-transparent read-only:focus-visible:shadow-none read-only:focus-visible:border-transparent read-only:focus-visible:bg-card-background [&:read-only:not(:placeholder-shown)]:text-muted-foreground' as const;\n\n/**\n * Reusable styles for selection-control rows (radio group items, checkbox items, etc.).\n * These provide the shared layout, card variant, label, and description classes\n * without baking in a parent group name (ancestor `group-has-[...]/<name>` selectors\n * must stay inline in each consumer so they reference that component's own `group/<name>`).\n */\nexport const selectionItemBase =\n 'grid max-w-150 cursor-pointer grid-cols-[auto_1fr] items-start gap-x-2 gap-y-1 has-[[data-disabled]]:cursor-not-allowed' as const;\nexport const selectionItemDefault = 'min-h-9 py-2' as const;\nexport const selectionItemCard: string = cn(\n 'w-64 rounded-md border border-transparent p-3 bg-card-background',\n 'has-[[data-checked]]:bg-secondary-background has-[[data-checked]]:hover:bg-secondary-background-hover',\n 'hover:border-default hover:bg-card-background-hover',\n 'has-[[data-disabled]]:border-disabled has-[[data-disabled]]:bg-transparent',\n 'has-[[data-disabled]]:hover:border-disabled has-[[data-disabled]]:hover:bg-transparent'\n);\nexport const selectionItemLabel =\n 'col-start-2 text-sm font-medium leading-4.5 tracking-normal text-secondary-foreground' as const;\nexport const selectionItemDescription =\n 'col-start-2 text-xs font-normal leading-3.5 tracking-tightest text-muted-foreground' as const;\n\nexport function slugToPascalCase(slug: string): string {\n return slug\n .split('-')\n .map((part) => part.charAt(0).toUpperCase() + part.slice(1))\n .join('');\n}\n\n/**\n * Safely extracts hostname from a URL string.\n * Returns the hostname if valid, otherwise returns the original string or \"unknown\".\n *\n * @param url - URL string to extract hostname from (optional)\n * @returns The hostname, original string, or \"unknown\" if url is undefined\n */\nexport function getHostname(url: string | undefined): string {\n if (!url) return 'unknown';\n try {\n return new URL(url).hostname;\n } catch {\n return url;\n }\n}\n\n/** True when `value` parses as JSON, so it is worth highlighting as such. */\nexport function isJsonString(value: string): boolean {\n const trimmed = value.trim();\n if (!trimmed.startsWith('{') && !trimmed.startsWith('[')) {\n return false;\n }\n try {\n JSON.parse(trimmed);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Gets or creates the portal container for portalled UI components.\n * Container is created in document.body to avoid positioning issues\n * from the shell app's container query context.\n * The result is cached to avoid side effects on subsequent calls during React renders.\n */\nexport const getPortalContainer = (\n options?: PortalContainerOptions\n): HTMLElement | undefined => {\n const hasCustomOptions = Boolean(options && Object.keys(options).length > 0);\n\n const containerId = options?.id ?? styleScope.portalContainer;\n const containerClassName = options?.className ?? styleScope.styleScope;\n const applyContainerProps = (element: HTMLElement) => {\n element.id = containerId;\n element.className = containerClassName;\n element.style.position = options?.style?.position ?? 'fixed';\n element.style.zIndex = options?.style?.zIndex ?? '1000';\n if (options?.style) {\n Object.assign(element.style, options.style);\n }\n };\n\n if (portalContainer && !document.body?.contains(portalContainer)) {\n portalContainer = null;\n }\n\n if (portalContainer) {\n if (hasCustomOptions) {\n console.warn(\n 'getPortalContainer: Portal container already exists. Custom options will be ignored to prevent side effects.'\n );\n }\n return portalContainer;\n }\n\n if (typeof window === 'undefined') {\n return undefined;\n }\n\n if (hasCustomOptions && !hasWarnedAboutCustomPortalContainerProps) {\n console.warn(\n 'Custom portal container props can lead to unintended behavior. Use with caution.'\n );\n hasWarnedAboutCustomPortalContainerProps = true;\n }\n\n let container = document?.getElementById(containerId);\n\n if (!container) {\n container = document.createElement('div');\n document.body.appendChild(container);\n }\n\n applyContainerProps(container);\n\n portalContainer = container;\n return container;\n};\n"],"names":["clsx","twMerge","styleScope","portalContainer","hasWarnedAboutCustomPortalContainerProps","cn","inputs","isStorybookTestEnv","Boolean","env","VITEST","window","__STORYBOOK_TEST__","getInitials","name","parts","trim","split","length","slice","toUpperCase","firstInitial","charAt","lastInitial","focusRing","focusRingDestructive","menuSectionLabelTypography","menuContainerPadding","menuItemPadding","menuSectionLabelLayout","menuSectionLabelClasses","menuSectionSeparatorClasses","menuSectionLabelCmdkHeadingClasses","menuSectionLabelCmdkHeadingInsetClasses","formElementBase","hoverState","filledState","focusState","invalidState","disabledState","formFieldTriggerDisabledState","formFieldTriggerLayout","formFieldOpenState","formFieldTriggerIcon","formFieldTriggerReadOnlyState","formFieldTriggerClasses","readOnlyState","selectionItemBase","selectionItemDefault","selectionItemCard","selectionItemLabel","selectionItemDescription","slugToPascalCase","slug","map","part","join","getHostname","url","URL","hostname","isJsonString","value","trimmed","startsWith","JSON","parse","getPortalContainer","options","hasCustomOptions","Object","keys","containerId","id","containerClassName","className","applyContainerProps","element","style","position","zIndex","assign","document","body","contains","console","warn","undefined","container","getElementById","createElement","appendChild"],"mappings":"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"}