@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
@@ -1,21 +1,51 @@
1
- import { cn as e } from "../../../../lib/utils.js";
2
- import { forwardRef as t } from "react";
3
- import { jsx as n } from "react/jsx-runtime";
4
- import { cva as r } from "class-variance-authority";
5
- //#region libs/aura/src/components/ui/core/count/count.tsx
6
- var i = r("flex min-h-9 min-w-9 flex-col items-center justify-center rounded-sm px-0.5 text-3xl font-medium leading-8 tracking-tightest", {
7
- variants: { variant: {
8
- default: "bg-neutral-background text-neutral-foreground-on-neutral",
9
- warning: "bg-warning-background text-warning-foreground-on-warning",
10
- critical: "bg-destructive-background text-destructive-foreground-on-critical"
11
- } },
12
- defaultVariants: { variant: "default" }
13
- }), a = t(({ className: t, variant: r, ...a }, o) => /* @__PURE__ */ n("output", {
14
- ref: o,
15
- "data-slot": "count",
16
- className: e(i({ variant: r }), t),
17
- ...a
18
- }));
19
- a.displayName = "Count";
20
- //#endregion
21
- export { a as Count, i as countVariants };
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import { cva } from "class-variance-authority";
4
+ import { cn } from "../../../../lib/utils.js";
5
+ const countVariants = cva('inline-flex h-9 min-w-9 flex-col items-center justify-center p-0.5 px-1 rounded-lg text-center text-base font-medium leading-5 tracking-tighter has-[[data-slot=count-unit]]:-space-y-0.5', {
6
+ variants: {
7
+ variant: {
8
+ default: 'bg-neutral-background text-neutral-foreground',
9
+ success: 'bg-success-background text-success-foreground',
10
+ warning: 'bg-warning-background text-warning-foreground',
11
+ critical: 'bg-critical-background text-critical-foreground'
12
+ }
13
+ },
14
+ defaultVariants: {
15
+ variant: 'default'
16
+ }
17
+ });
18
+ const countValueClasses = 'text-base font-medium leading-5 tracking-tighter';
19
+ const countUnitClasses = 'text-xs font-medium leading-3.5 tracking-tighter';
20
+ const Count = /*#__PURE__*/ forwardRef(({ className, variant, ...props }, ref)=>{
21
+ return /*#__PURE__*/ _jsx("output", {
22
+ ref: ref,
23
+ "data-slot": "count",
24
+ className: cn(countVariants({
25
+ variant
26
+ }), className),
27
+ ...props
28
+ });
29
+ });
30
+ Count.displayName = 'Count';
31
+ const CountValue = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>{
32
+ return /*#__PURE__*/ _jsx("span", {
33
+ ref: ref,
34
+ "data-slot": "count-value",
35
+ className: cn(countValueClasses, className),
36
+ ...props
37
+ });
38
+ });
39
+ CountValue.displayName = 'CountValue';
40
+ const CountUnit = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>{
41
+ return /*#__PURE__*/ _jsx("span", {
42
+ ref: ref,
43
+ "data-slot": "count-unit",
44
+ className: cn(countUnitClasses, className),
45
+ ...props
46
+ });
47
+ });
48
+ CountUnit.displayName = 'CountUnit';
49
+ export { Count, CountUnit, CountValue, countVariants };
50
+
51
+ //# sourceMappingURL=count.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/ui/core/count/count.tsx"],"sourcesContent":["import {\n type ForwardRefExoticComponent,\n type RefAttributes,\n type ComponentProps,\n type ComponentRef,\n forwardRef,\n} from 'react';\n\nimport { type VariantProps, cva } from 'class-variance-authority';\nimport type { ClassProp } from 'class-variance-authority/types';\n\nimport { cn } from '../../../../lib/utils';\n\ninterface CountVariantProps {\n variant?: 'default' | 'success' | 'warning' | 'critical' | null;\n}\n\nconst countVariants: (\n props?: (CountVariantProps & ClassProp) | undefined\n) => string = cva(\n 'inline-flex h-9 min-w-9 flex-col items-center justify-center p-0.5 px-1 rounded-lg text-center text-base font-medium leading-5 tracking-tighter has-[[data-slot=count-unit]]:-space-y-0.5',\n {\n variants: {\n variant: {\n default: 'bg-neutral-background text-neutral-foreground',\n success: 'bg-success-background text-success-foreground',\n warning: 'bg-warning-background text-warning-foreground',\n critical: 'bg-critical-background text-critical-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nconst countValueClasses =\n 'text-base font-medium leading-5 tracking-tighter' as const;\nconst countUnitClasses =\n 'text-xs font-medium leading-3.5 tracking-tighter' as const;\n\nconst Count: ForwardRefExoticComponent<\n ComponentProps<'output'> &\n VariantProps<typeof countVariants> &\n RefAttributes<HTMLOutputElement>\n> = forwardRef<\n ComponentRef<'output'>,\n ComponentProps<'output'> & VariantProps<typeof countVariants>\n>(({ className, variant, ...props }, ref) => {\n return (\n <output\n ref={ref}\n data-slot=\"count\"\n className={cn(countVariants({ variant }), className)}\n {...props}\n />\n );\n});\nCount.displayName = 'Count';\n\nconst CountValue: ForwardRefExoticComponent<\n ComponentProps<'span'> & RefAttributes<HTMLSpanElement>\n> = forwardRef<ComponentRef<'span'>, ComponentProps<'span'>>(\n ({ className, ...props }, ref) => {\n return (\n <span\n ref={ref}\n data-slot=\"count-value\"\n className={cn(countValueClasses, className)}\n {...props}\n />\n );\n }\n);\nCountValue.displayName = 'CountValue';\n\nconst CountUnit: ForwardRefExoticComponent<\n ComponentProps<'span'> & RefAttributes<HTMLSpanElement>\n> = forwardRef<ComponentRef<'span'>, ComponentProps<'span'>>(\n ({ className, ...props }, ref) => {\n return (\n <span\n ref={ref}\n data-slot=\"count-unit\"\n className={cn(countUnitClasses, className)}\n {...props}\n />\n );\n }\n);\nCountUnit.displayName = 'CountUnit';\n\nexport { Count, CountUnit, CountValue, countVariants };\n"],"names":["forwardRef","cva","cn","countVariants","variants","variant","default","success","warning","critical","defaultVariants","countValueClasses","countUnitClasses","Count","className","props","ref","output","data-slot","displayName","CountValue","span","CountUnit"],"mappings":";AAAA,SAKEA,UAAU,QACL,QAAQ;AAEf,SAA4BC,GAAG,QAAQ,2BAA2B;AAGlE,SAASC,EAAE,QAAQ,2BAAwB;AAM3C,MAAMC,gBAEQF,IACZ,6LACA;IACEG,UAAU;QACRC,SAAS;YACPC,SAAS;YACTC,SAAS;YACTC,SAAS;YACTC,UAAU;QACZ;IACF;IACAC,iBAAiB;QACfL,SAAS;IACX;AACF;AAGF,MAAMM,oBACJ;AACF,MAAMC,mBACJ;AAEF,MAAMC,sBAIFb,WAGF,CAAC,EAAEc,SAAS,EAAET,OAAO,EAAE,GAAGU,OAAO,EAAEC;IACnC,qBACE,KAACC;QACCD,KAAKA;QACLE,aAAU;QACVJ,WAAWZ,GAAGC,cAAc;YAAEE;QAAQ,IAAIS;QACzC,GAAGC,KAAK;;AAGf;AACAF,MAAMM,WAAW,GAAG;AAEpB,MAAMC,2BAEFpB,WACF,CAAC,EAAEc,SAAS,EAAE,GAAGC,OAAO,EAAEC;IACxB,qBACE,KAACK;QACCL,KAAKA;QACLE,aAAU;QACVJ,WAAWZ,GAAGS,mBAAmBG;QAChC,GAAGC,KAAK;;AAGf;AAEFK,WAAWD,WAAW,GAAG;AAEzB,MAAMG,0BAEFtB,WACF,CAAC,EAAEc,SAAS,EAAE,GAAGC,OAAO,EAAEC;IACxB,qBACE,KAACK;QACCL,KAAKA;QACLE,aAAU;QACVJ,WAAWZ,GAAGU,kBAAkBE;QAC/B,GAAGC,KAAK;;AAGf;AAEFO,UAAUH,WAAW,GAAG;AAExB,SAASN,KAAK,EAAES,SAAS,EAAEF,UAAU,EAAEjB,aAAa,GAAG"}
@@ -1,10 +1,10 @@
1
- import { ComponentProps, ForwardRefExoticComponent, RefAttributes } from 'react';
2
- type DataGridCellProps = ComponentProps<'div'> & {
3
- isPinned?: boolean;
4
- isLastPinned?: boolean;
5
- colIndex?: number;
6
- textValue?: string;
7
- truncate?: boolean;
1
+ import { type ComponentProps, type ForwardRefExoticComponent, type RefAttributes } from "react";
2
+ type DataGridCellProps = ComponentProps<"div"> & {
3
+ isPinned?: boolean;
4
+ isLastPinned?: boolean;
5
+ colIndex?: number;
6
+ textValue?: string;
7
+ truncate?: boolean;
8
8
  };
9
9
  declare const DataGridCell: ForwardRefExoticComponent<DataGridCellProps & RefAttributes<HTMLDivElement>>;
10
10
  export { DataGridCell, type DataGridCellProps };
@@ -1,23 +1,23 @@
1
- import { cn as e } from "../../../../lib/utils.js";
2
- import { forwardRef as t } from "react";
3
- import { jsx as n } from "react/jsx-runtime";
4
- //#region libs/aura/src/components/ui/core/data-grid/data-grid-cell.tsx
5
- var r = t(function({ className: t, children: r, isPinned: i, isLastPinned: a, colIndex: o, textValue: s, truncate: c = !0, style: l, ...u }, d) {
6
- return /* @__PURE__ */ n("div", {
7
- ref: d,
8
- "data-slot": "data-grid-cell",
9
- role: "cell",
10
- "aria-colindex": o,
11
- title: s,
12
- className: e("flex items-center pr-3 text-sm font-normal", o === 1 ? "pl-4" : "pl-3", "min-w-0", i && "sticky z-10 bg-inherit", a && "shadow-pinned-column", t),
13
- style: l,
14
- ...u,
15
- children: c && s !== void 0 ? /* @__PURE__ */ n("span", {
16
- className: "block min-w-0 flex-1 truncate",
17
- children: s
18
- }) : r
19
- });
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import { cn } from "../../../../lib/utils.js";
4
+ const DataGridCell = /*#__PURE__*/ forwardRef(function DataGridCell({ className, children, isPinned, isLastPinned, colIndex, textValue, truncate: shouldTruncate = true, style, ...props }, ref) {
5
+ return /*#__PURE__*/ _jsx("div", {
6
+ ref: ref,
7
+ "data-slot": "data-grid-cell",
8
+ role: "cell",
9
+ "aria-colindex": colIndex,
10
+ title: textValue,
11
+ className: cn('flex items-center pr-3 text-sm font-normal', colIndex === 1 ? 'pl-4' : 'pl-3', 'min-w-0', isPinned && 'sticky z-10 bg-inherit', isLastPinned && 'shadow-pinned-column', className),
12
+ style: style,
13
+ ...props,
14
+ children: shouldTruncate && textValue !== undefined ? /*#__PURE__*/ _jsx("span", {
15
+ className: "block min-w-0 flex-1 truncate",
16
+ children: textValue
17
+ }) : children
18
+ });
20
19
  });
21
- r.displayName = "DataGridCell";
22
- //#endregion
23
- export { r as DataGridCell };
20
+ DataGridCell.displayName = 'DataGridCell';
21
+ export { DataGridCell };
22
+
23
+ //# sourceMappingURL=data-grid-cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/ui/core/data-grid/data-grid-cell.tsx"],"sourcesContent":["import {\n type ComponentProps,\n type ComponentRef,\n type ForwardRefExoticComponent,\n type RefAttributes,\n forwardRef,\n} from 'react';\n\nimport { cn } from '../../../../lib/utils';\n\ntype DataGridCellProps = ComponentProps<'div'> & {\n isPinned?: boolean;\n isLastPinned?: boolean;\n colIndex?: number;\n textValue?: string;\n truncate?: boolean;\n};\n\nconst DataGridCell: ForwardRefExoticComponent<\n DataGridCellProps & RefAttributes<HTMLDivElement>\n> = forwardRef<ComponentRef<'div'>, DataGridCellProps>(function DataGridCell(\n {\n className,\n children,\n isPinned,\n isLastPinned,\n colIndex,\n textValue,\n truncate: shouldTruncate = true,\n style,\n ...props\n },\n ref\n) {\n return (\n <div\n ref={ref}\n data-slot=\"data-grid-cell\"\n role=\"cell\"\n aria-colindex={colIndex}\n title={textValue}\n className={cn(\n 'flex items-center pr-3 text-sm font-normal',\n colIndex === 1 ? 'pl-4' : 'pl-3',\n 'min-w-0',\n isPinned && 'sticky z-10 bg-inherit',\n isLastPinned && 'shadow-pinned-column',\n className\n )}\n style={style}\n {...props}\n >\n {shouldTruncate && textValue !== undefined ? (\n <span className=\"block min-w-0 flex-1 truncate\">{textValue}</span>\n ) : (\n children\n )}\n </div>\n );\n});\nDataGridCell.displayName = 'DataGridCell';\n\nexport { DataGridCell, type DataGridCellProps };\n"],"names":["forwardRef","cn","DataGridCell","className","children","isPinned","isLastPinned","colIndex","textValue","truncate","shouldTruncate","style","props","ref","div","data-slot","role","aria-colindex","title","undefined","span","displayName"],"mappings":";AAAA,SAKEA,UAAU,QACL,QAAQ;AAEf,SAASC,EAAE,QAAQ,2BAAwB;AAU3C,MAAMC,6BAEFF,WAAmD,SAASE,aAC9D,EACEC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,YAAY,EACZC,QAAQ,EACRC,SAAS,EACTC,UAAUC,iBAAiB,IAAI,EAC/BC,KAAK,EACL,GAAGC,OACJ,EACDC,GAAG;IAEH,qBACE,KAACC;QACCD,KAAKA;QACLE,aAAU;QACVC,MAAK;QACLC,iBAAeV;QACfW,OAAOV;QACPL,WAAWF,GACT,8CACAM,aAAa,IAAI,SAAS,QAC1B,WACAF,YAAY,0BACZC,gBAAgB,wBAChBH;QAEFQ,OAAOA;QACN,GAAGC,KAAK;kBAERF,kBAAkBF,cAAcW,0BAC/B,KAACC;YAAKjB,WAAU;sBAAiCK;aAEjDJ;;AAIR;AACAF,aAAamB,WAAW,GAAG;AAE3B,SAASnB,YAAY,GAA2B"}
@@ -0,0 +1,14 @@
1
+ type DataGridFilterOperator = "contains" | "equals" | "startsWith";
2
+ type DataGridFilterJoin = "and" | "or";
3
+ type DataGridFilterClause = {
4
+ /** Consumer bookkeeping only — clauses are identified by array position. */
5
+ id?: string;
6
+ columnId: string;
7
+ operator: DataGridFilterOperator;
8
+ value: string;
9
+ join?: DataGridFilterJoin;
10
+ };
11
+ declare function matchesDataGridFilterClause(value: unknown, clause: DataGridFilterClause): boolean;
12
+ declare function applyDataGridFilterClauses<TData>(rows: TData[], clauses: DataGridFilterClause[], getClauseValue: (row: TData, columnId: string) => unknown): TData[];
13
+ export { applyDataGridFilterClauses, matchesDataGridFilterClause };
14
+ export type { DataGridFilterClause, DataGridFilterJoin, DataGridFilterOperator };
@@ -0,0 +1,36 @@
1
+ // Mirrors TanStack's `includesString` / `equalsString` so clause filtering and
2
+ // grid search treat the same data alike. `filterFns` cannot be reused directly:
3
+ // they require a `Row`, unavailable when filtering raw data.
4
+ function normalizeClauseValue(value) {
5
+ return value?.toString().toLowerCase() ?? '';
6
+ }
7
+ function isActiveClause(clause) {
8
+ return clause.value.trim() !== '';
9
+ }
10
+ function matchesDataGridFilterClause(value, clause) {
11
+ const search = clause.value.trim().toLowerCase();
12
+ const candidate = normalizeClauseValue(value);
13
+ switch(clause.operator){
14
+ case 'equals':
15
+ return candidate === search;
16
+ case 'startsWith':
17
+ return candidate.startsWith(search);
18
+ case 'contains':
19
+ return candidate.includes(search);
20
+ }
21
+ }
22
+ // Applied left to right with no operator precedence — `or` does not bind tighter
23
+ // than `and`. Blank clauses are dropped rather than treated as matching
24
+ // everything, which an `or` join would otherwise widen to every row.
25
+ function applyDataGridFilterClauses(rows, clauses, getClauseValue) {
26
+ const activeClauses = clauses.filter(isActiveClause);
27
+ if (activeClauses.length === 0) return rows;
28
+ return rows.filter((row)=>activeClauses.reduce((result, clause, index)=>{
29
+ const matched = matchesDataGridFilterClause(getClauseValue(row, clause.columnId), clause);
30
+ if (index === 0) return matched;
31
+ return clause.join === 'or' ? result || matched : result && matched;
32
+ }, true));
33
+ }
34
+ export { applyDataGridFilterClauses, matchesDataGridFilterClause };
35
+
36
+ //# sourceMappingURL=data-grid-filter-clauses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/ui/core/data-grid/data-grid-filter-clauses.ts"],"sourcesContent":["type DataGridFilterOperator = 'contains' | 'equals' | 'startsWith';\ntype DataGridFilterJoin = 'and' | 'or';\n\ntype DataGridFilterClause = {\n /** Consumer bookkeeping only — clauses are identified by array position. */\n id?: string;\n columnId: string;\n operator: DataGridFilterOperator;\n value: string;\n join?: DataGridFilterJoin;\n};\n\n// Mirrors TanStack's `includesString` / `equalsString` so clause filtering and\n// grid search treat the same data alike. `filterFns` cannot be reused directly:\n// they require a `Row`, unavailable when filtering raw data.\nfunction normalizeClauseValue(value: unknown): string {\n return value?.toString().toLowerCase() ?? '';\n}\n\nfunction isActiveClause(clause: DataGridFilterClause): boolean {\n return clause.value.trim() !== '';\n}\n\nfunction matchesDataGridFilterClause(\n value: unknown,\n clause: DataGridFilterClause\n): boolean {\n const search = clause.value.trim().toLowerCase();\n const candidate = normalizeClauseValue(value);\n\n switch (clause.operator) {\n case 'equals':\n return candidate === search;\n case 'startsWith':\n return candidate.startsWith(search);\n case 'contains':\n return candidate.includes(search);\n }\n}\n\n// Applied left to right with no operator precedence — `or` does not bind tighter\n// than `and`. Blank clauses are dropped rather than treated as matching\n// everything, which an `or` join would otherwise widen to every row.\nfunction applyDataGridFilterClauses<TData>(\n rows: TData[],\n clauses: DataGridFilterClause[],\n getClauseValue: (row: TData, columnId: string) => unknown\n): TData[] {\n const activeClauses = clauses.filter(isActiveClause);\n if (activeClauses.length === 0) return rows;\n\n return rows.filter((row: TData) =>\n activeClauses.reduce<boolean>(\n (result: boolean, clause: DataGridFilterClause, index: number) => {\n const matched = matchesDataGridFilterClause(\n getClauseValue(row, clause.columnId),\n clause\n );\n if (index === 0) return matched;\n return clause.join === 'or' ? result || matched : result && matched;\n },\n true\n )\n );\n}\n\nexport { applyDataGridFilterClauses, matchesDataGridFilterClause };\nexport type {\n DataGridFilterClause,\n DataGridFilterJoin,\n DataGridFilterOperator,\n};\n"],"names":["normalizeClauseValue","value","toString","toLowerCase","isActiveClause","clause","trim","matchesDataGridFilterClause","search","candidate","operator","startsWith","includes","applyDataGridFilterClauses","rows","clauses","getClauseValue","activeClauses","filter","length","row","reduce","result","index","matched","columnId","join"],"mappings":"AAYA,+EAA+E;AAC/E,gFAAgF;AAChF,6DAA6D;AAC7D,SAASA,qBAAqBC,KAAc;IAC1C,OAAOA,OAAOC,WAAWC,iBAAiB;AAC5C;AAEA,SAASC,eAAeC,MAA4B;IAClD,OAAOA,OAAOJ,KAAK,CAACK,IAAI,OAAO;AACjC;AAEA,SAASC,4BACPN,KAAc,EACdI,MAA4B;IAE5B,MAAMG,SAASH,OAAOJ,KAAK,CAACK,IAAI,GAAGH,WAAW;IAC9C,MAAMM,YAAYT,qBAAqBC;IAEvC,OAAQI,OAAOK,QAAQ;QACrB,KAAK;YACH,OAAOD,cAAcD;QACvB,KAAK;YACH,OAAOC,UAAUE,UAAU,CAACH;QAC9B,KAAK;YACH,OAAOC,UAAUG,QAAQ,CAACJ;IAC9B;AACF;AAEA,iFAAiF;AACjF,wEAAwE;AACxE,qEAAqE;AACrE,SAASK,2BACPC,IAAa,EACbC,OAA+B,EAC/BC,cAAyD;IAEzD,MAAMC,gBAAgBF,QAAQG,MAAM,CAACd;IACrC,IAAIa,cAAcE,MAAM,KAAK,GAAG,OAAOL;IAEvC,OAAOA,KAAKI,MAAM,CAAC,CAACE,MAClBH,cAAcI,MAAM,CAClB,CAACC,QAAiBjB,QAA8BkB;YAC9C,MAAMC,UAAUjB,4BACdS,eAAeI,KAAKf,OAAOoB,QAAQ,GACnCpB;YAEF,IAAIkB,UAAU,GAAG,OAAOC;YACxB,OAAOnB,OAAOqB,IAAI,KAAK,OAAOJ,UAAUE,UAAUF,UAAUE;QAC9D,GACA;AAGN;AAEA,SAASX,0BAA0B,EAAEN,2BAA2B,GAAG"}
@@ -0,0 +1,41 @@
1
+ import { type ComponentProps, type ForwardRefExoticComponent, type RefAttributes } from "react";
2
+ import type { DataGridFilterClause } from "./data-grid-filter-clauses";
3
+ type DataGridFilterColumn = {
4
+ id: string;
5
+ label: string;
6
+ };
7
+ type DataGridFilterPanelLabels = {
8
+ title: string;
9
+ close: string;
10
+ showFieldsWhere: string;
11
+ join: string;
12
+ joinAnd: string;
13
+ joinOr: string;
14
+ column: string;
15
+ operator: string;
16
+ operatorContains: string;
17
+ operatorEquals: string;
18
+ operatorStartsWith: string;
19
+ value: string;
20
+ valuePlaceholder: string;
21
+ removeClause: string;
22
+ addClause: string;
23
+ clearAll: string;
24
+ apply: string;
25
+ results: (filteredResultCount: number) => string;
26
+ maxClausesReached: (maxClauses: number) => string;
27
+ };
28
+ type DataGridFilterPanelProps = Omit<ComponentProps<"div">, "onChange"> & {
29
+ clauses: DataGridFilterClause[];
30
+ columns: DataGridFilterColumn[];
31
+ maxClauses?: number;
32
+ filteredResultCount?: number;
33
+ lockedColumnId?: string;
34
+ labels?: Partial<DataGridFilterPanelLabels>;
35
+ onChange: (clauses: DataGridFilterClause[]) => void;
36
+ onClearAll: () => void;
37
+ onClose?: () => void;
38
+ onApply?: () => void;
39
+ };
40
+ declare const DataGridFilterPanel: ForwardRefExoticComponent<DataGridFilterPanelProps & RefAttributes<HTMLDivElement>>;
41
+ export { DataGridFilterPanel, type DataGridFilterColumn, type DataGridFilterPanelLabels };
@@ -0,0 +1,273 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import { IconMinus, IconPlus, IconX } from "@tabler/icons-react";
4
+ import { cn } from "../../../../lib/utils.js";
5
+ import { Button } from "../button/button.js";
6
+ import { Input } from "../input/input.js";
7
+ import { Select, SelectContent, SelectItem, SelectTrigger } from "../select/select.js";
8
+ const isDataGridFilterJoin = (value)=>value === 'and' || value === 'or';
9
+ const isDataGridFilterOperator = (value)=>value === 'contains' || value === 'equals' || value === 'startsWith';
10
+ const defaultDataGridFilterPanelLabels = {
11
+ title: 'Filters',
12
+ close: 'Close filters',
13
+ showFieldsWhere: 'Show fields where',
14
+ join: 'Filter join',
15
+ joinAnd: 'And',
16
+ joinOr: 'Or',
17
+ column: 'Filter column',
18
+ operator: 'Filter operator',
19
+ operatorContains: 'Contains',
20
+ operatorEquals: 'Equals',
21
+ operatorStartsWith: 'Starts with',
22
+ value: 'Filter value',
23
+ valuePlaceholder: 'Enter value',
24
+ removeClause: 'Remove filter',
25
+ addClause: 'Add condition',
26
+ clearAll: 'Clear all',
27
+ apply: 'Apply filters',
28
+ results: (filteredResultCount)=>`Results ${filteredResultCount.toLocaleString()}`,
29
+ maxClausesReached: (maxClauses)=>`Maximum ${maxClauses} conditions`
30
+ };
31
+ const DataGridFilterPanel = /*#__PURE__*/ forwardRef(function DataGridFilterPanel({ clauses, columns, maxClauses = 5, filteredResultCount, lockedColumnId, labels: labelOverrides, onChange, onClearAll, onClose, onApply, className, ...props }, ref) {
32
+ const labels = {
33
+ ...defaultDataGridFilterPanelLabels,
34
+ ...labelOverrides
35
+ };
36
+ const canAddClause = clauses.length < maxClauses;
37
+ const uniformJoinValue = clauses[1]?.join ?? 'and';
38
+ const operatorLabel = {
39
+ contains: labels.operatorContains,
40
+ equals: labels.operatorEquals,
41
+ startsWith: labels.operatorStartsWith
42
+ };
43
+ const joinLabel = {
44
+ and: labels.joinAnd,
45
+ or: labels.joinOr
46
+ };
47
+ const columnLabel = (id)=>columns.find((column)=>column.id === id)?.label ?? id;
48
+ const updateClause = (index, patch)=>{
49
+ onChange(clauses.map((clause, clauseIndex)=>clauseIndex === index ? {
50
+ ...clause,
51
+ ...patch
52
+ } : clause));
53
+ };
54
+ const createClause = (join = 'and')=>({
55
+ columnId: lockedColumnId ?? columns[0]?.id ?? '',
56
+ operator: 'contains',
57
+ value: '',
58
+ join
59
+ });
60
+ const addClause = ()=>{
61
+ if (!canAddClause) return;
62
+ onChange([
63
+ ...clauses,
64
+ createClause(clauses[clauses.length - 1]?.join ?? 'and')
65
+ ]);
66
+ };
67
+ const removeClause = (index)=>{
68
+ const next = clauses.filter((_clause, clauseIndex)=>clauseIndex !== index);
69
+ onChange(next.length > 0 ? next : [
70
+ createClause()
71
+ ]);
72
+ };
73
+ return /*#__PURE__*/ _jsxs("div", {
74
+ ref: ref,
75
+ "data-slot": "data-grid-filter-panel",
76
+ className: cn('w-[min(52rem,calc(100vw-2rem))] rounded-lg border border-border bg-background p-4 shadow-default', className),
77
+ ...props,
78
+ children: [
79
+ /*#__PURE__*/ _jsxs("div", {
80
+ className: "mb-2 flex items-center justify-between gap-3",
81
+ children: [
82
+ /*#__PURE__*/ _jsx("p", {
83
+ className: "text-base font-medium text-foreground",
84
+ children: labels.title
85
+ }),
86
+ onClose != null && /*#__PURE__*/ _jsx(Button, {
87
+ size: "icon-sm",
88
+ variant: "ghost",
89
+ className: "shrink-0",
90
+ "aria-label": labels.close,
91
+ onClick: onClose,
92
+ children: /*#__PURE__*/ _jsx(IconX, {
93
+ className: "size-4",
94
+ "aria-hidden": true
95
+ })
96
+ })
97
+ ]
98
+ }),
99
+ /*#__PURE__*/ _jsxs("div", {
100
+ className: "grid gap-2",
101
+ children: [
102
+ /*#__PURE__*/ _jsxs("div", {
103
+ className: "grid grid-cols-[75px_minmax(0,1fr)_minmax(0,1fr)_minmax(0,1fr)_36px] gap-2",
104
+ children: [
105
+ /*#__PURE__*/ _jsx("span", {}),
106
+ /*#__PURE__*/ _jsx("span", {
107
+ className: "text-sm font-medium text-muted-foreground",
108
+ children: labels.showFieldsWhere
109
+ })
110
+ ]
111
+ }),
112
+ clauses.map((clause, index)=>/*#__PURE__*/ _jsxs("div", {
113
+ className: "grid grid-cols-[75px_minmax(0,1fr)_minmax(0,1fr)_minmax(0,1fr)_36px] items-center gap-2",
114
+ children: [
115
+ index === 0 ? /*#__PURE__*/ _jsx("span", {}) : index > 1 ? /*#__PURE__*/ _jsx("span", {
116
+ className: "px-3 text-sm font-medium text-foreground capitalize",
117
+ children: uniformJoinValue
118
+ }) : /*#__PURE__*/ _jsxs(Select, {
119
+ value: uniformJoinValue,
120
+ onValueChange: (join)=>{
121
+ if (isDataGridFilterJoin(join)) {
122
+ onChange(clauses.map((joined, joinedIndex)=>joinedIndex === 0 ? joined : {
123
+ ...joined,
124
+ join
125
+ }));
126
+ }
127
+ },
128
+ children: [
129
+ /*#__PURE__*/ _jsx(SelectTrigger, {
130
+ "aria-label": labels.join,
131
+ className: "h-8 min-w-0 w-full text-sm",
132
+ children: joinLabel[uniformJoinValue]
133
+ }),
134
+ /*#__PURE__*/ _jsxs(SelectContent, {
135
+ children: [
136
+ /*#__PURE__*/ _jsx(SelectItem, {
137
+ value: "and",
138
+ children: labels.joinAnd
139
+ }),
140
+ /*#__PURE__*/ _jsx(SelectItem, {
141
+ value: "or",
142
+ children: labels.joinOr
143
+ })
144
+ ]
145
+ })
146
+ ]
147
+ }),
148
+ /*#__PURE__*/ _jsxs(Select, {
149
+ value: clause.columnId,
150
+ onValueChange: (value)=>updateClause(index, {
151
+ columnId: value
152
+ }),
153
+ disabled: lockedColumnId != null,
154
+ children: [
155
+ /*#__PURE__*/ _jsx(SelectTrigger, {
156
+ "aria-label": labels.column,
157
+ className: "h-8 min-w-0 w-full text-sm",
158
+ children: columnLabel(clause.columnId)
159
+ }),
160
+ /*#__PURE__*/ _jsx(SelectContent, {
161
+ children: columns.map((column)=>/*#__PURE__*/ _jsx(SelectItem, {
162
+ value: column.id,
163
+ children: column.label
164
+ }, column.id))
165
+ })
166
+ ]
167
+ }),
168
+ /*#__PURE__*/ _jsxs(Select, {
169
+ value: clause.operator,
170
+ onValueChange: (value)=>{
171
+ if (isDataGridFilterOperator(value)) {
172
+ updateClause(index, {
173
+ operator: value
174
+ });
175
+ }
176
+ },
177
+ children: [
178
+ /*#__PURE__*/ _jsx(SelectTrigger, {
179
+ "aria-label": labels.operator,
180
+ className: "h-8 min-w-0 w-full text-sm",
181
+ children: operatorLabel[clause.operator]
182
+ }),
183
+ /*#__PURE__*/ _jsxs(SelectContent, {
184
+ children: [
185
+ /*#__PURE__*/ _jsx(SelectItem, {
186
+ value: "contains",
187
+ children: labels.operatorContains
188
+ }),
189
+ /*#__PURE__*/ _jsx(SelectItem, {
190
+ value: "equals",
191
+ children: labels.operatorEquals
192
+ }),
193
+ /*#__PURE__*/ _jsx(SelectItem, {
194
+ value: "startsWith",
195
+ children: labels.operatorStartsWith
196
+ })
197
+ ]
198
+ })
199
+ ]
200
+ }),
201
+ /*#__PURE__*/ _jsx(Input, {
202
+ "aria-label": labels.value,
203
+ value: clause.value,
204
+ placeholder: labels.valuePlaceholder,
205
+ onChange: (event)=>updateClause(index, {
206
+ value: event.target.value
207
+ })
208
+ }),
209
+ index === 0 ? /*#__PURE__*/ _jsx("span", {}) : /*#__PURE__*/ _jsx(Button, {
210
+ size: "icon",
211
+ variant: "ghost",
212
+ "aria-label": labels.removeClause,
213
+ onClick: ()=>removeClause(index),
214
+ children: /*#__PURE__*/ _jsx(IconMinus, {
215
+ className: "size-4",
216
+ "aria-hidden": "true"
217
+ })
218
+ })
219
+ ]
220
+ }, clause.id ?? index))
221
+ ]
222
+ }),
223
+ /*#__PURE__*/ _jsxs("div", {
224
+ className: "mt-3 flex items-center justify-between gap-2 pl-[83px]",
225
+ children: [
226
+ /*#__PURE__*/ _jsxs("div", {
227
+ className: "flex items-center gap-2",
228
+ children: [
229
+ /*#__PURE__*/ _jsxs(Button, {
230
+ variant: "outline",
231
+ onClick: addClause,
232
+ disabled: !canAddClause,
233
+ children: [
234
+ /*#__PURE__*/ _jsx(IconPlus, {
235
+ className: "size-4",
236
+ "aria-hidden": "true"
237
+ }),
238
+ labels.addClause
239
+ ]
240
+ }),
241
+ filteredResultCount != null && /*#__PURE__*/ _jsx("span", {
242
+ className: "text-sm font-medium text-foreground",
243
+ children: labels.results(filteredResultCount)
244
+ }),
245
+ !canAddClause ? /*#__PURE__*/ _jsx("span", {
246
+ className: "text-sm text-muted-foreground",
247
+ children: labels.maxClausesReached(maxClauses)
248
+ }) : null
249
+ ]
250
+ }),
251
+ /*#__PURE__*/ _jsxs("div", {
252
+ className: "flex items-center gap-2",
253
+ children: [
254
+ /*#__PURE__*/ _jsx(Button, {
255
+ variant: "ghost",
256
+ onClick: onClearAll,
257
+ children: labels.clearAll
258
+ }),
259
+ onApply ? /*#__PURE__*/ _jsx(Button, {
260
+ onClick: onApply,
261
+ children: labels.apply
262
+ }) : null
263
+ ]
264
+ })
265
+ ]
266
+ })
267
+ ]
268
+ });
269
+ });
270
+ DataGridFilterPanel.displayName = 'DataGridFilterPanel';
271
+ export { DataGridFilterPanel };
272
+
273
+ //# sourceMappingURL=data-grid-filter-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/ui/core/data-grid/data-grid-filter-panel.tsx"],"sourcesContent":["import {\n type ChangeEvent,\n type ComponentProps,\n type ComponentRef,\n type ForwardRefExoticComponent,\n type Ref,\n type RefAttributes,\n forwardRef,\n} from 'react';\n\nimport { IconMinus, IconPlus, IconX } from '@tabler/icons-react';\n\nimport { cn } from '../../../../lib/utils';\nimport { Button } from '../button/button';\nimport { Input } from '../input/input';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n} from '../select/select';\n\nimport type {\n DataGridFilterClause,\n DataGridFilterJoin,\n DataGridFilterOperator,\n} from './data-grid-filter-clauses';\n\ntype DataGridFilterColumn = {\n id: string;\n label: string;\n};\n\nconst isDataGridFilterJoin = (value: string): value is DataGridFilterJoin =>\n value === 'and' || value === 'or';\n\nconst isDataGridFilterOperator = (\n value: string\n): value is DataGridFilterOperator =>\n value === 'contains' || value === 'equals' || value === 'startsWith';\n\ntype DataGridFilterPanelLabels = {\n title: string;\n close: string;\n showFieldsWhere: string;\n join: string;\n joinAnd: string;\n joinOr: string;\n column: string;\n operator: string;\n operatorContains: string;\n operatorEquals: string;\n operatorStartsWith: string;\n value: string;\n valuePlaceholder: string;\n removeClause: string;\n addClause: string;\n clearAll: string;\n apply: string;\n results: (filteredResultCount: number) => string;\n maxClausesReached: (maxClauses: number) => string;\n};\n\nconst defaultDataGridFilterPanelLabels: DataGridFilterPanelLabels = {\n title: 'Filters',\n close: 'Close filters',\n showFieldsWhere: 'Show fields where',\n join: 'Filter join',\n joinAnd: 'And',\n joinOr: 'Or',\n column: 'Filter column',\n operator: 'Filter operator',\n operatorContains: 'Contains',\n operatorEquals: 'Equals',\n operatorStartsWith: 'Starts with',\n value: 'Filter value',\n valuePlaceholder: 'Enter value',\n removeClause: 'Remove filter',\n addClause: 'Add condition',\n clearAll: 'Clear all',\n apply: 'Apply filters',\n results: (filteredResultCount: number) =>\n `Results ${filteredResultCount.toLocaleString()}`,\n maxClausesReached: (maxClauses: number) => `Maximum ${maxClauses} conditions`,\n};\n\ntype DataGridFilterPanelProps = Omit<ComponentProps<'div'>, 'onChange'> & {\n clauses: DataGridFilterClause[];\n columns: DataGridFilterColumn[];\n maxClauses?: number;\n filteredResultCount?: number;\n lockedColumnId?: string;\n labels?: Partial<DataGridFilterPanelLabels>;\n onChange: (clauses: DataGridFilterClause[]) => void;\n onClearAll: () => void;\n onClose?: () => void;\n onApply?: () => void;\n};\n\nconst DataGridFilterPanel: ForwardRefExoticComponent<\n DataGridFilterPanelProps & RefAttributes<HTMLDivElement>\n> = forwardRef<ComponentRef<'div'>, DataGridFilterPanelProps>(\n function DataGridFilterPanel(\n {\n clauses,\n columns,\n maxClauses = 5,\n filteredResultCount,\n lockedColumnId,\n labels: labelOverrides,\n onChange,\n onClearAll,\n onClose,\n onApply,\n className,\n ...props\n }: DataGridFilterPanelProps,\n ref: Ref<ComponentRef<'div'>>\n ) {\n const labels = { ...defaultDataGridFilterPanelLabels, ...labelOverrides };\n const canAddClause = clauses.length < maxClauses;\n const uniformJoinValue = clauses[1]?.join ?? 'and';\n\n const operatorLabel: Record<DataGridFilterOperator, string> = {\n contains: labels.operatorContains,\n equals: labels.operatorEquals,\n startsWith: labels.operatorStartsWith,\n };\n const joinLabel: Record<DataGridFilterJoin, string> = {\n and: labels.joinAnd,\n or: labels.joinOr,\n };\n const columnLabel = (id: string) =>\n columns.find((column: DataGridFilterColumn) => column.id === id)?.label ??\n id;\n\n const updateClause = (\n index: number,\n patch: Partial<DataGridFilterClause>\n ) => {\n onChange(\n clauses.map((clause: DataGridFilterClause, clauseIndex: number) =>\n clauseIndex === index ? { ...clause, ...patch } : clause\n )\n );\n };\n\n const createClause = (\n join: DataGridFilterJoin = 'and'\n ): DataGridFilterClause => ({\n columnId: lockedColumnId ?? columns[0]?.id ?? '',\n operator: 'contains',\n value: '',\n join,\n });\n\n const addClause = () => {\n if (!canAddClause) return;\n onChange([\n ...clauses,\n createClause(clauses[clauses.length - 1]?.join ?? 'and'),\n ]);\n };\n\n const removeClause = (index: number) => {\n const next = clauses.filter(\n (_clause: DataGridFilterClause, clauseIndex: number) =>\n clauseIndex !== index\n );\n onChange(next.length > 0 ? next : [createClause()]);\n };\n\n return (\n <div\n ref={ref}\n data-slot=\"data-grid-filter-panel\"\n className={cn(\n 'w-[min(52rem,calc(100vw-2rem))] rounded-lg border border-border bg-background p-4 shadow-default',\n className\n )}\n {...props}\n >\n <div className=\"mb-2 flex items-center justify-between gap-3\">\n <p className=\"text-base font-medium text-foreground\">\n {labels.title}\n </p>\n {onClose != null && (\n <Button\n size=\"icon-sm\"\n variant=\"ghost\"\n className=\"shrink-0\"\n aria-label={labels.close}\n onClick={onClose}\n >\n <IconX className=\"size-4\" aria-hidden />\n </Button>\n )}\n </div>\n\n <div className=\"grid gap-2\">\n <div className=\"grid grid-cols-[75px_minmax(0,1fr)_minmax(0,1fr)_minmax(0,1fr)_36px] gap-2\">\n <span />\n <span className=\"text-sm font-medium text-muted-foreground\">\n {labels.showFieldsWhere}\n </span>\n </div>\n {clauses.map((clause: DataGridFilterClause, index: number) => (\n <div\n key={clause.id ?? index}\n className=\"grid grid-cols-[75px_minmax(0,1fr)_minmax(0,1fr)_minmax(0,1fr)_36px] items-center gap-2\"\n >\n {index === 0 ? (\n <span />\n ) : index > 1 ? (\n <span className=\"px-3 text-sm font-medium text-foreground capitalize\">\n {uniformJoinValue}\n </span>\n ) : (\n <Select\n value={uniformJoinValue}\n onValueChange={(join: string) => {\n if (isDataGridFilterJoin(join)) {\n onChange(\n clauses.map(\n (\n joined: DataGridFilterClause,\n joinedIndex: number\n ) =>\n joinedIndex === 0 ? joined : { ...joined, join }\n )\n );\n }\n }}\n >\n <SelectTrigger\n aria-label={labels.join}\n className=\"h-8 min-w-0 w-full text-sm\"\n >\n {joinLabel[uniformJoinValue]}\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"and\">{labels.joinAnd}</SelectItem>\n <SelectItem value=\"or\">{labels.joinOr}</SelectItem>\n </SelectContent>\n </Select>\n )}\n <Select\n value={clause.columnId}\n onValueChange={(value: string) =>\n updateClause(index, { columnId: value })\n }\n disabled={lockedColumnId != null}\n >\n <SelectTrigger\n aria-label={labels.column}\n className=\"h-8 min-w-0 w-full text-sm\"\n >\n {columnLabel(clause.columnId)}\n </SelectTrigger>\n <SelectContent>\n {columns.map((column: DataGridFilterColumn) => (\n <SelectItem key={column.id} value={column.id}>\n {column.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Select\n value={clause.operator}\n onValueChange={(value: string) => {\n if (isDataGridFilterOperator(value)) {\n updateClause(index, { operator: value });\n }\n }}\n >\n <SelectTrigger\n aria-label={labels.operator}\n className=\"h-8 min-w-0 w-full text-sm\"\n >\n {operatorLabel[clause.operator]}\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"contains\">\n {labels.operatorContains}\n </SelectItem>\n <SelectItem value=\"equals\">\n {labels.operatorEquals}\n </SelectItem>\n <SelectItem value=\"startsWith\">\n {labels.operatorStartsWith}\n </SelectItem>\n </SelectContent>\n </Select>\n <Input\n aria-label={labels.value}\n value={clause.value}\n placeholder={labels.valuePlaceholder}\n onChange={(event: ChangeEvent<HTMLInputElement>) =>\n updateClause(index, { value: event.target.value })\n }\n />\n {index === 0 ? (\n <span />\n ) : (\n <Button\n size=\"icon\"\n variant=\"ghost\"\n aria-label={labels.removeClause}\n onClick={() => removeClause(index)}\n >\n <IconMinus className=\"size-4\" aria-hidden=\"true\" />\n </Button>\n )}\n </div>\n ))}\n </div>\n\n <div className=\"mt-3 flex items-center justify-between gap-2 pl-[83px]\">\n <div className=\"flex items-center gap-2\">\n <Button\n variant=\"outline\"\n onClick={addClause}\n disabled={!canAddClause}\n >\n <IconPlus className=\"size-4\" aria-hidden=\"true\" />\n {labels.addClause}\n </Button>\n {filteredResultCount != null && (\n <span className=\"text-sm font-medium text-foreground\">\n {labels.results(filteredResultCount)}\n </span>\n )}\n {!canAddClause ? (\n <span className=\"text-sm text-muted-foreground\">\n {labels.maxClausesReached(maxClauses)}\n </span>\n ) : null}\n </div>\n <div className=\"flex items-center gap-2\">\n <Button variant=\"ghost\" onClick={onClearAll}>\n {labels.clearAll}\n </Button>\n {onApply ? <Button onClick={onApply}>{labels.apply}</Button> : null}\n </div>\n </div>\n </div>\n );\n }\n);\nDataGridFilterPanel.displayName = 'DataGridFilterPanel';\n\nexport {\n DataGridFilterPanel,\n type DataGridFilterColumn,\n type DataGridFilterPanelLabels,\n};\n"],"names":["forwardRef","IconMinus","IconPlus","IconX","cn","Button","Input","Select","SelectContent","SelectItem","SelectTrigger","isDataGridFilterJoin","value","isDataGridFilterOperator","defaultDataGridFilterPanelLabels","title","close","showFieldsWhere","join","joinAnd","joinOr","column","operator","operatorContains","operatorEquals","operatorStartsWith","valuePlaceholder","removeClause","addClause","clearAll","apply","results","filteredResultCount","toLocaleString","maxClausesReached","maxClauses","DataGridFilterPanel","clauses","columns","lockedColumnId","labels","labelOverrides","onChange","onClearAll","onClose","onApply","className","props","ref","canAddClause","length","uniformJoinValue","operatorLabel","contains","equals","startsWith","joinLabel","and","or","columnLabel","id","find","label","updateClause","index","patch","map","clause","clauseIndex","createClause","columnId","next","filter","_clause","div","data-slot","p","size","variant","aria-label","onClick","aria-hidden","span","onValueChange","joined","joinedIndex","disabled","placeholder","event","target","displayName"],"mappings":";AAAA,SAOEA,UAAU,QACL,QAAQ;AAEf,SAASC,SAAS,EAAEC,QAAQ,EAAEC,KAAK,QAAQ,sBAAsB;AAEjE,SAASC,EAAE,QAAQ,2BAAwB;AAC3C,SAASC,MAAM,QAAQ,sBAAmB;AAC1C,SAASC,KAAK,QAAQ,oBAAiB;AACvC,SACEC,MAAM,EACNC,aAAa,EACbC,UAAU,EACVC,aAAa,QACR,sBAAmB;AAa1B,MAAMC,uBAAuB,CAACC,QAC5BA,UAAU,SAASA,UAAU;AAE/B,MAAMC,2BAA2B,CAC/BD,QAEAA,UAAU,cAAcA,UAAU,YAAYA,UAAU;AAwB1D,MAAME,mCAA8D;IAClEC,OAAO;IACPC,OAAO;IACPC,iBAAiB;IACjBC,MAAM;IACNC,SAAS;IACTC,QAAQ;IACRC,QAAQ;IACRC,UAAU;IACVC,kBAAkB;IAClBC,gBAAgB;IAChBC,oBAAoB;IACpBb,OAAO;IACPc,kBAAkB;IAClBC,cAAc;IACdC,WAAW;IACXC,UAAU;IACVC,OAAO;IACPC,SAAS,CAACC,sBACR,CAAC,QAAQ,EAAEA,oBAAoBC,cAAc,IAAI;IACnDC,mBAAmB,CAACC,aAAuB,CAAC,QAAQ,EAAEA,WAAW,WAAW,CAAC;AAC/E;AAeA,MAAMC,oCAEFpC,WACF,SAASoC,oBACP,EACEC,OAAO,EACPC,OAAO,EACPH,aAAa,CAAC,EACdH,mBAAmB,EACnBO,cAAc,EACdC,QAAQC,cAAc,EACtBC,QAAQ,EACRC,UAAU,EACVC,OAAO,EACPC,OAAO,EACPC,SAAS,EACT,GAAGC,OACsB,EAC3BC,GAA6B;IAE7B,MAAMR,SAAS;QAAE,GAAG1B,gCAAgC;QAAE,GAAG2B,cAAc;IAAC;IACxE,MAAMQ,eAAeZ,QAAQa,MAAM,GAAGf;IACtC,MAAMgB,mBAAmBd,OAAO,CAAC,EAAE,EAAEnB,QAAQ;IAE7C,MAAMkC,gBAAwD;QAC5DC,UAAUb,OAAOjB,gBAAgB;QACjC+B,QAAQd,OAAOhB,cAAc;QAC7B+B,YAAYf,OAAOf,kBAAkB;IACvC;IACA,MAAM+B,YAAgD;QACpDC,KAAKjB,OAAOrB,OAAO;QACnBuC,IAAIlB,OAAOpB,MAAM;IACnB;IACA,MAAMuC,cAAc,CAACC,KACnBtB,QAAQuB,IAAI,CAAC,CAACxC,SAAiCA,OAAOuC,EAAE,KAAKA,KAAKE,SAClEF;IAEF,MAAMG,eAAe,CACnBC,OACAC;QAEAvB,SACEL,QAAQ6B,GAAG,CAAC,CAACC,QAA8BC,cACzCA,gBAAgBJ,QAAQ;gBAAE,GAAGG,MAAM;gBAAE,GAAGF,KAAK;YAAC,IAAIE;IAGxD;IAEA,MAAME,eAAe,CACnBnD,OAA2B,KAAK,GACN,CAAA;YAC1BoD,UAAU/B,kBAAkBD,OAAO,CAAC,EAAE,EAAEsB,MAAM;YAC9CtC,UAAU;YACVV,OAAO;YACPM;QACF,CAAA;IAEA,MAAMU,YAAY;QAChB,IAAI,CAACqB,cAAc;QACnBP,SAAS;eACJL;YACHgC,aAAahC,OAAO,CAACA,QAAQa,MAAM,GAAG,EAAE,EAAEhC,QAAQ;SACnD;IACH;IAEA,MAAMS,eAAe,CAACqC;QACpB,MAAMO,OAAOlC,QAAQmC,MAAM,CACzB,CAACC,SAA+BL,cAC9BA,gBAAgBJ;QAEpBtB,SAAS6B,KAAKrB,MAAM,GAAG,IAAIqB,OAAO;YAACF;SAAe;IACpD;IAEA,qBACE,MAACK;QACC1B,KAAKA;QACL2B,aAAU;QACV7B,WAAW1C,GACT,oGACA0C;QAED,GAAGC,KAAK;;0BAET,MAAC2B;gBAAI5B,WAAU;;kCACb,KAAC8B;wBAAE9B,WAAU;kCACVN,OAAOzB,KAAK;;oBAEd6B,WAAW,sBACV,KAACvC;wBACCwE,MAAK;wBACLC,SAAQ;wBACRhC,WAAU;wBACViC,cAAYvC,OAAOxB,KAAK;wBACxBgE,SAASpC;kCAET,cAAA,KAACzC;4BAAM2C,WAAU;4BAASmC,aAAW;;;;;0BAK3C,MAACP;gBAAI5B,WAAU;;kCACb,MAAC4B;wBAAI5B,WAAU;;0CACb,KAACoC;0CACD,KAACA;gCAAKpC,WAAU;0CACbN,OAAOvB,eAAe;;;;oBAG1BoB,QAAQ6B,GAAG,CAAC,CAACC,QAA8BH,sBAC1C,MAACU;4BAEC5B,WAAU;;gCAETkB,UAAU,kBACT,KAACkB,cACClB,QAAQ,kBACV,KAACkB;oCAAKpC,WAAU;8CACbK;mDAGH,MAAC5C;oCACCK,OAAOuC;oCACPgC,eAAe,CAACjE;wCACd,IAAIP,qBAAqBO,OAAO;4CAC9BwB,SACEL,QAAQ6B,GAAG,CACT,CACEkB,QACAC,cAEAA,gBAAgB,IAAID,SAAS;oDAAE,GAAGA,MAAM;oDAAElE;gDAAK;wCAGvD;oCACF;;sDAEA,KAACR;4CACCqE,cAAYvC,OAAOtB,IAAI;4CACvB4B,WAAU;sDAETU,SAAS,CAACL,iBAAiB;;sDAE9B,MAAC3C;;8DACC,KAACC;oDAAWG,OAAM;8DAAO4B,OAAOrB,OAAO;;8DACvC,KAACV;oDAAWG,OAAM;8DAAM4B,OAAOpB,MAAM;;;;;;8CAI3C,MAACb;oCACCK,OAAOuD,OAAOG,QAAQ;oCACtBa,eAAe,CAACvE,QACdmD,aAAaC,OAAO;4CAAEM,UAAU1D;wCAAM;oCAExC0E,UAAU/C,kBAAkB;;sDAE5B,KAAC7B;4CACCqE,cAAYvC,OAAOnB,MAAM;4CACzByB,WAAU;sDAETa,YAAYQ,OAAOG,QAAQ;;sDAE9B,KAAC9D;sDACE8B,QAAQ4B,GAAG,CAAC,CAAC7C,uBACZ,KAACZ;oDAA2BG,OAAOS,OAAOuC,EAAE;8DACzCvC,OAAOyC,KAAK;mDADEzC,OAAOuC,EAAE;;;;8CAMhC,MAACrD;oCACCK,OAAOuD,OAAO7C,QAAQ;oCACtB6D,eAAe,CAACvE;wCACd,IAAIC,yBAAyBD,QAAQ;4CACnCmD,aAAaC,OAAO;gDAAE1C,UAAUV;4CAAM;wCACxC;oCACF;;sDAEA,KAACF;4CACCqE,cAAYvC,OAAOlB,QAAQ;4CAC3BwB,WAAU;sDAETM,aAAa,CAACe,OAAO7C,QAAQ,CAAC;;sDAEjC,MAACd;;8DACC,KAACC;oDAAWG,OAAM;8DACf4B,OAAOjB,gBAAgB;;8DAE1B,KAACd;oDAAWG,OAAM;8DACf4B,OAAOhB,cAAc;;8DAExB,KAACf;oDAAWG,OAAM;8DACf4B,OAAOf,kBAAkB;;;;;;8CAIhC,KAACnB;oCACCyE,cAAYvC,OAAO5B,KAAK;oCACxBA,OAAOuD,OAAOvD,KAAK;oCACnB2E,aAAa/C,OAAOd,gBAAgB;oCACpCgB,UAAU,CAAC8C,QACTzB,aAAaC,OAAO;4CAAEpD,OAAO4E,MAAMC,MAAM,CAAC7E,KAAK;wCAAC;;gCAGnDoD,UAAU,kBACT,KAACkB,4BAED,KAAC7E;oCACCwE,MAAK;oCACLC,SAAQ;oCACRC,cAAYvC,OAAOb,YAAY;oCAC/BqD,SAAS,IAAMrD,aAAaqC;8CAE5B,cAAA,KAAC/D;wCAAU6C,WAAU;wCAASmC,eAAY;;;;2BAtGzCd,OAAOP,EAAE,IAAII;;;0BA6GxB,MAACU;gBAAI5B,WAAU;;kCACb,MAAC4B;wBAAI5B,WAAU;;0CACb,MAACzC;gCACCyE,SAAQ;gCACRE,SAASpD;gCACT0D,UAAU,CAACrC;;kDAEX,KAAC/C;wCAAS4C,WAAU;wCAASmC,eAAY;;oCACxCzC,OAAOZ,SAAS;;;4BAElBI,uBAAuB,sBACtB,KAACkD;gCAAKpC,WAAU;0CACbN,OAAOT,OAAO,CAACC;;4BAGnB,CAACiB,6BACA,KAACiC;gCAAKpC,WAAU;0CACbN,OAAON,iBAAiB,CAACC;iCAE1B;;;kCAEN,MAACuC;wBAAI5B,WAAU;;0CACb,KAACzC;gCAAOyE,SAAQ;gCAAQE,SAASrC;0CAC9BH,OAAOX,QAAQ;;4BAEjBgB,wBAAU,KAACxC;gCAAO2E,SAASnC;0CAAUL,OAAOV,KAAK;iCAAa;;;;;;;AAKzE;AAEFM,oBAAoBsD,WAAW,GAAG;AAElC,SACEtD,mBAAmB,GAGnB"}
@@ -0,0 +1,6 @@
1
+ import { type ComponentProps, type ForwardRefExoticComponent, type RefAttributes } from "react";
2
+ type DataGridFooterProps = ComponentProps<"div">;
3
+ declare const DataGridFooter: ForwardRefExoticComponent<DataGridFooterProps & RefAttributes<HTMLDivElement>>;
4
+ declare const DataGridFooterStart: ForwardRefExoticComponent<ComponentProps<"div"> & RefAttributes<HTMLDivElement>>;
5
+ declare const DataGridFooterEnd: ForwardRefExoticComponent<ComponentProps<"div"> & RefAttributes<HTMLDivElement>>;
6
+ export { DataGridFooter, DataGridFooterEnd, DataGridFooterStart };
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import { cn } from "../../../../lib/utils.js";
4
+ const DataGridFooter = /*#__PURE__*/ forwardRef(({ className, children, ...props }, ref)=>{
5
+ return /*#__PURE__*/ _jsx("div", {
6
+ ref: ref,
7
+ "data-slot": "data-grid-footer",
8
+ className: cn('order-3 mt-auto flex min-h-17 items-center justify-between border-t py-4 pl-1.5 pr-4', className),
9
+ ...props,
10
+ children: children
11
+ });
12
+ });
13
+ DataGridFooter.displayName = 'DataGridFooter';
14
+ const DataGridFooterStart = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>{
15
+ return /*#__PURE__*/ _jsx("div", {
16
+ ref: ref,
17
+ "data-slot": "data-grid-footer-start",
18
+ className: cn('flex min-w-0 flex-1 items-center gap-2', className),
19
+ ...props
20
+ });
21
+ });
22
+ DataGridFooterStart.displayName = 'DataGridFooterStart';
23
+ const DataGridFooterEnd = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>{
24
+ return /*#__PURE__*/ _jsx("div", {
25
+ ref: ref,
26
+ "data-slot": "data-grid-footer-end",
27
+ className: cn('flex items-center justify-end gap-2', className),
28
+ ...props
29
+ });
30
+ });
31
+ DataGridFooterEnd.displayName = 'DataGridFooterEnd';
32
+ export { DataGridFooter, DataGridFooterEnd, DataGridFooterStart };
33
+
34
+ //# sourceMappingURL=data-grid-footer.js.map