ixia-ui-react 1.8.0 → 2.0.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 (270) hide show
  1. package/README.md +24 -1
  2. package/dist/accordion/index.d.ts +41 -0
  3. package/dist/accordion/index.js +142 -0
  4. package/dist/accordion/index.js.map +1 -0
  5. package/dist/alert/index.d.ts +22 -0
  6. package/dist/alert/index.js +1 -0
  7. package/dist/alert-Dcu9R8CY.js +73 -0
  8. package/dist/alert-Dcu9R8CY.js.map +1 -0
  9. package/dist/alert-dialog/index.d.ts +39 -0
  10. package/dist/alert-dialog/index.js +134 -0
  11. package/dist/alert-dialog/index.js.map +1 -0
  12. package/dist/autocomplete/index.d.ts +2 -0
  13. package/dist/autocomplete/index.js +1 -0
  14. package/dist/autocomplete-BfpWVO1l.js +169 -0
  15. package/dist/autocomplete-BfpWVO1l.js.map +1 -0
  16. package/dist/avatar/index.d.ts +2 -0
  17. package/dist/avatar/index.js +1 -0
  18. package/dist/avatar-Bp4gZh21.js +93 -0
  19. package/dist/avatar-Bp4gZh21.js.map +1 -0
  20. package/dist/badge/index.d.ts +2 -0
  21. package/dist/badge/index.js +1 -0
  22. package/dist/badge-Cl-9WTW-.js +160 -0
  23. package/dist/badge-Cl-9WTW-.js.map +1 -0
  24. package/dist/bento-box/index.d.ts +30 -0
  25. package/dist/bento-box/index.js +103 -0
  26. package/dist/bento-box/index.js.map +1 -0
  27. package/dist/breadcrumb/index.d.ts +18 -0
  28. package/dist/breadcrumb/index.js +58 -0
  29. package/dist/breadcrumb/index.js.map +1 -0
  30. package/dist/button/index.d.ts +3 -0
  31. package/dist/button/index.js +1 -0
  32. package/dist/button-BpUC-R1J.js +307 -0
  33. package/dist/button-BpUC-R1J.js.map +1 -0
  34. package/dist/button-group/index.d.ts +2 -0
  35. package/dist/button-group/index.js +1 -0
  36. package/dist/button-group-7azbqlcO.js +269 -0
  37. package/dist/button-group-7azbqlcO.js.map +1 -0
  38. package/dist/button.types-BFKrBCGd.d.ts +10 -0
  39. package/dist/calendar/index.d.ts +63 -0
  40. package/dist/calendar/index.js +292 -0
  41. package/dist/calendar/index.js.map +1 -0
  42. package/dist/chart/index.d.ts +87 -0
  43. package/dist/chart/index.js +262 -0
  44. package/dist/chart/index.js.map +1 -0
  45. package/dist/checkbox/index.d.ts +2 -0
  46. package/dist/checkbox/index.js +1 -0
  47. package/dist/checkbox-BuUZ1Lly.js +54 -0
  48. package/dist/checkbox-BuUZ1Lly.js.map +1 -0
  49. package/dist/checkbox-group/index.d.ts +6 -0
  50. package/dist/checkbox-group/index.js +17 -0
  51. package/dist/checkbox-group/index.js.map +1 -0
  52. package/dist/cn-BDi0DfT5.js +29 -0
  53. package/dist/cn-BDi0DfT5.js.map +1 -0
  54. package/dist/code-block/index.d.ts +50 -0
  55. package/dist/code-block/index.js +208 -0
  56. package/dist/code-block/index.js.map +1 -0
  57. package/dist/collapsible/index.d.ts +2 -0
  58. package/dist/collapsible/index.js +1 -0
  59. package/dist/collapsible-BVqrh0Q0.js +44 -0
  60. package/dist/collapsible-BVqrh0Q0.js.map +1 -0
  61. package/dist/color-channel-slider/index.d.ts +2 -0
  62. package/dist/color-channel-slider/index.js +1 -0
  63. package/dist/color-channel-slider-h8mUPJ35.js +70 -0
  64. package/dist/color-channel-slider-h8mUPJ35.js.map +1 -0
  65. package/dist/color-picker/index.d.ts +137 -0
  66. package/dist/color-picker/index.js +621 -0
  67. package/dist/color-picker/index.js.map +1 -0
  68. package/dist/combobox/index.d.ts +64 -0
  69. package/dist/combobox/index.js +289 -0
  70. package/dist/combobox/index.js.map +1 -0
  71. package/dist/context-menu/index.d.ts +49 -0
  72. package/dist/context-menu/index.js +166 -0
  73. package/dist/context-menu/index.js.map +1 -0
  74. package/dist/dialog/index.d.ts +36 -0
  75. package/dist/dialog/index.js +119 -0
  76. package/dist/dialog/index.js.map +1 -0
  77. package/dist/drawer/index.d.ts +31 -0
  78. package/dist/drawer/index.js +95 -0
  79. package/dist/drawer/index.js.map +1 -0
  80. package/dist/dropzone/index.d.ts +70 -0
  81. package/dist/dropzone/index.js +479 -0
  82. package/dist/dropzone/index.js.map +1 -0
  83. package/dist/field/index.d.ts +2 -0
  84. package/dist/field/index.js +1 -0
  85. package/dist/field-DTL7eA5y.js +254 -0
  86. package/dist/field-DTL7eA5y.js.map +1 -0
  87. package/dist/form/index.d.ts +220 -0
  88. package/dist/form/index.js +3 -0
  89. package/dist/form-BxMg796f.js +192 -0
  90. package/dist/form-BxMg796f.js.map +1 -0
  91. package/dist/has-single-element-child-DLGI0Dh2.js +12 -0
  92. package/dist/has-single-element-child-DLGI0Dh2.js.map +1 -0
  93. package/dist/hooks/index.d.ts +26 -0
  94. package/dist/hooks/index.js +1 -0
  95. package/dist/hooks-DUm-q_ig.js +68 -0
  96. package/dist/hooks-DUm-q_ig.js.map +1 -0
  97. package/dist/icon/index.d.ts +2 -0
  98. package/dist/icon/index.js +1 -0
  99. package/dist/icon-D3JWfCa2.js +85 -0
  100. package/dist/icon-D3JWfCa2.js.map +1 -0
  101. package/dist/icon-container/index.d.ts +10 -0
  102. package/dist/icon-container/index.js +64 -0
  103. package/dist/icon-container/index.js.map +1 -0
  104. package/dist/index-0ZQzIKoE.d.ts +11 -0
  105. package/dist/index-B3MK1QYh.d.ts +11 -0
  106. package/dist/index-BJVMIPq4.d.ts +54 -0
  107. package/dist/index-BsV-u_jc.d.ts +4 -0
  108. package/dist/index-BygR7cUT.d.ts +22 -0
  109. package/dist/index-BzTOLSgZ.d.ts +9 -0
  110. package/dist/index-C15xiG9O.d.ts +14 -0
  111. package/dist/index-C2zco6-C.d.ts +15 -0
  112. package/dist/index-CIDOd4Z8.d.ts +56 -0
  113. package/dist/index-CQti9gFb.d.ts +49 -0
  114. package/dist/index-CiE-Rqit.d.ts +70 -0
  115. package/dist/index-D1kkOg9k.d.ts +14 -0
  116. package/dist/index-DLfdAked.d.ts +34 -0
  117. package/dist/index-DMaW_XF1.d.ts +24 -0
  118. package/dist/index-Db_QGr6S.d.ts +5 -0
  119. package/dist/index-DdFxZ3Xr.d.ts +22 -0
  120. package/dist/index-DfNHJF0t.d.ts +33 -0
  121. package/dist/index-DyQYoAUf.d.ts +29 -0
  122. package/dist/index-N2CBSUDu.d.ts +14 -0
  123. package/dist/index-PuhTRMce.d.ts +11 -0
  124. package/dist/index-Wb_tILYa.d.ts +24 -0
  125. package/dist/index-bVyqfhJS.d.ts +4 -0
  126. package/dist/index-x4f8gnaI.d.ts +15 -0
  127. package/dist/input/index.d.ts +3 -0
  128. package/dist/input/index.js +1 -0
  129. package/dist/input-Laj6dwtK.js +179 -0
  130. package/dist/input-Laj6dwtK.js.map +1 -0
  131. package/dist/input-group/index.d.ts +2 -0
  132. package/dist/input-group/index.js +1 -0
  133. package/dist/input-group-CgdazGrY.js +111 -0
  134. package/dist/input-group-CgdazGrY.js.map +1 -0
  135. package/dist/input-otp/index.d.ts +13 -0
  136. package/dist/input-otp/index.js +44 -0
  137. package/dist/input-otp/index.js.map +1 -0
  138. package/dist/input.types-816rEVWU.d.ts +20 -0
  139. package/dist/input.types-D0gyoaQv.js +48 -0
  140. package/dist/input.types-D0gyoaQv.js.map +1 -0
  141. package/dist/kbd/index.d.ts +9 -0
  142. package/dist/kbd/index.js +25 -0
  143. package/dist/kbd/index.js.map +1 -0
  144. package/dist/label/index.d.ts +8 -0
  145. package/dist/label/index.js +1 -0
  146. package/dist/label-BgpayDvN.js +27 -0
  147. package/dist/label-BgpayDvN.js.map +1 -0
  148. package/dist/layer-tree/index.d.ts +728 -0
  149. package/dist/layer-tree/index.js +685 -0
  150. package/dist/layer-tree/index.js.map +1 -0
  151. package/dist/map/google/index.d.ts +143 -0
  152. package/dist/map/google/index.js +445 -0
  153. package/dist/map/google/index.js.map +1 -0
  154. package/dist/map/index.d.ts +94 -0
  155. package/dist/map/index.js +208 -0
  156. package/dist/map/index.js.map +1 -0
  157. package/dist/map.context-Dw1D7E8m.js +11 -0
  158. package/dist/map.context-Dw1D7E8m.js.map +1 -0
  159. package/dist/menu/index.d.ts +2 -0
  160. package/dist/menu/index.js +1 -0
  161. package/dist/menu-sf13cnGp.js +173 -0
  162. package/dist/menu-sf13cnGp.js.map +1 -0
  163. package/dist/menu-tone-DWBEHoX2.js +22 -0
  164. package/dist/menu-tone-DWBEHoX2.js.map +1 -0
  165. package/dist/meter/index.d.ts +2 -0
  166. package/dist/meter/index.js +1 -0
  167. package/dist/meter-HD5taq57.js +116 -0
  168. package/dist/meter-HD5taq57.js.map +1 -0
  169. package/dist/nav-bar/index.d.ts +25 -0
  170. package/dist/nav-bar/index.js +133 -0
  171. package/dist/nav-bar/index.js.map +1 -0
  172. package/dist/navigation-menu/index.d.ts +43 -0
  173. package/dist/navigation-menu/index.js +176 -0
  174. package/dist/navigation-menu/index.js.map +1 -0
  175. package/dist/number-field/index.d.ts +14 -0
  176. package/dist/number-field/index.js +116 -0
  177. package/dist/number-field/index.js.map +1 -0
  178. package/dist/popover/index.d.ts +2 -0
  179. package/dist/popover/index.js +1 -0
  180. package/dist/popover-B1s4xXrX.js +114 -0
  181. package/dist/popover-B1s4xXrX.js.map +1 -0
  182. package/dist/preview-card/index.d.ts +13 -0
  183. package/dist/preview-card/index.js +35 -0
  184. package/dist/preview-card/index.js.map +1 -0
  185. package/dist/profile/index.d.ts +21 -0
  186. package/dist/profile/index.js +52 -0
  187. package/dist/profile/index.js.map +1 -0
  188. package/dist/progress/index.d.ts +23 -0
  189. package/dist/progress/index.js +97 -0
  190. package/dist/progress/index.js.map +1 -0
  191. package/dist/radar-ping/index.d.ts +11 -0
  192. package/dist/radar-ping/index.js +49 -0
  193. package/dist/radar-ping/index.js.map +1 -0
  194. package/dist/radio-group/index.d.ts +2 -0
  195. package/dist/radio-group/index.js +1 -0
  196. package/dist/radio-group-Dj43u35Z.js +47 -0
  197. package/dist/radio-group-Dj43u35Z.js.map +1 -0
  198. package/dist/resizeable/index.d.ts +11 -0
  199. package/dist/resizeable/index.js +31 -0
  200. package/dist/resizeable/index.js.map +1 -0
  201. package/dist/scroll-area/index.d.ts +11 -0
  202. package/dist/scroll-area/index.js +51 -0
  203. package/dist/scroll-area/index.js.map +1 -0
  204. package/dist/select/index.d.ts +2 -0
  205. package/dist/select/index.js +1 -0
  206. package/dist/select-DncJXYim.js +159 -0
  207. package/dist/select-DncJXYim.js.map +1 -0
  208. package/dist/separator/index.d.ts +2 -0
  209. package/dist/separator/index.js +1 -0
  210. package/dist/separator-DgIQp1cB.js +97 -0
  211. package/dist/separator-DgIQp1cB.js.map +1 -0
  212. package/dist/sidebar/index.d.ts +80 -0
  213. package/dist/sidebar/index.js +334 -0
  214. package/dist/sidebar/index.js.map +1 -0
  215. package/dist/site-header/index.d.ts +22 -0
  216. package/dist/site-header/index.js +55 -0
  217. package/dist/site-header/index.js.map +1 -0
  218. package/dist/skeleton/index.d.ts +4 -0
  219. package/dist/skeleton/index.js +1 -0
  220. package/dist/skeleton-DSG3FWby.js +13 -0
  221. package/dist/skeleton-DSG3FWby.js.map +1 -0
  222. package/dist/slider/index.d.ts +2 -0
  223. package/dist/slider/index.js +1 -0
  224. package/dist/slider-D_XlV4OW.js +114 -0
  225. package/dist/slider-D_XlV4OW.js.map +1 -0
  226. package/dist/slider-group/index.d.ts +46 -0
  227. package/dist/slider-group/index.js +198 -0
  228. package/dist/slider-group/index.js.map +1 -0
  229. package/dist/styles.css +4 -1
  230. package/dist/switch/index.d.ts +2 -0
  231. package/dist/switch/index.js +1 -0
  232. package/dist/switch-DXHixGHe.js +23 -0
  233. package/dist/switch-DXHixGHe.js.map +1 -0
  234. package/dist/table/index.d.ts +920 -0
  235. package/dist/table/index.js +1544 -0
  236. package/dist/table/index.js.map +1 -0
  237. package/dist/tabs/index.d.ts +2 -0
  238. package/dist/tabs/index.js +1 -0
  239. package/dist/tabs-DTC7coap.js +270 -0
  240. package/dist/tabs-DTC7coap.js.map +1 -0
  241. package/dist/text-area/index.d.ts +2 -0
  242. package/dist/text-area/index.js +1 -0
  243. package/dist/text-area-H6HjKnv_.js +50 -0
  244. package/dist/text-area-H6HjKnv_.js.map +1 -0
  245. package/dist/toast/index.d.ts +65 -0
  246. package/dist/toast/index.js +216 -0
  247. package/dist/toast/index.js.map +1 -0
  248. package/dist/toggle/index.d.ts +2 -0
  249. package/dist/toggle/index.js +1 -0
  250. package/dist/toggle-ZT9thVmz.js +73 -0
  251. package/dist/toggle-ZT9thVmz.js.map +1 -0
  252. package/dist/toggle-group/index.d.ts +10 -0
  253. package/dist/toggle-group/index.js +63 -0
  254. package/dist/toggle-group/index.js.map +1 -0
  255. package/dist/toggle-group-context-CBNZEf1I.js +6 -0
  256. package/dist/toggle-group-context-CBNZEf1I.js.map +1 -0
  257. package/dist/tooltip/index.d.ts +18 -0
  258. package/dist/tooltip/index.js +1 -0
  259. package/dist/tooltip-B6z3tDbW.js +41 -0
  260. package/dist/tooltip-B6z3tDbW.js.map +1 -0
  261. package/dist/trim-text-children-CQRFg2fL.js +33 -0
  262. package/dist/trim-text-children-CQRFg2fL.js.map +1 -0
  263. package/dist/utils/index.d.ts +4 -0
  264. package/dist/utils/index.js +3 -0
  265. package/dist/utils-BI2x7nW5.js +5 -0
  266. package/dist/utils-BI2x7nW5.js.map +1 -0
  267. package/package.json +100 -31
  268. package/dist/index.d.ts +0 -8000
  269. package/dist/index.js +0 -17274
  270. package/dist/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["Calendar","CalendarRoot"],"sources":["../../src/components/calendar/calendar.reducer.ts","../../src/components/calendar/calendar.tsx","../../src/components/calendar/calendar-day-button.tsx","../../src/components/calendar/calendar-dropdown.tsx","../../src/components/calendar/calendar-footer.tsx","../../src/components/calendar/calendar-header.tsx","../../src/components/calendar/calendar-next-month-button.tsx","../../src/components/calendar/calendar.types.ts","../../src/components/calendar/calendar-panel.tsx","../../src/components/calendar/calendar-chevron.tsx","../../src/components/calendar/calendar-previous-month-button.tsx","../../src/components/calendar/calendar-picker.tsx","../../src/components/calendar/calendar-summary.tsx","../../src/components/calendar/index.ts"],"sourcesContent":["import type { CalendarState, CalendarAction } from './calendar.types'\n\nexport const calendarReducer = (state: CalendarState, action: CalendarAction): CalendarState => {\n switch (action.type) {\n case 'SET_SELECTED_DATES': {\n return {\n ...state,\n selectedDates: action.payload,\n }\n }\n default: {\n return state\n }\n }\n}\n","import React from 'react'\n\nimport { calendarReducer } from './calendar.reducer'\nimport type { CalendarProps, CalendarContextValue } from './calendar.types'\n\nconst CalendarContext = React.createContext<CalendarContextValue | undefined>(undefined),\n useCalendar = () => {\n const context = React.useContext(CalendarContext)\n\n if (!context) {\n throw new Error('useCalendar must be used within a Calendar')\n }\n\n return context\n }\n\nfunction Calendar({ defaultState, children }: CalendarProps) {\n const [state, dispatch] = React.useReducer(\n calendarReducer,\n defaultState ?? { selectedDates: undefined },\n )\n\n return <CalendarContext.Provider value={{ dispatch, state }}>{children}</CalendarContext.Provider>\n}\n\nexport { Calendar, useCalendar }\n","import { DayButton } from '@daypicker/react'\n\nimport { cn } from '@/utils'\n\nimport { buttonVariants } from '../button/button.types'\nimport type { CalendarDayButtonProps } from './calendar.types'\n\nexport function CalendarDayButton({ className, modifiers, ...props }: CalendarDayButtonProps) {\n return (\n <DayButton\n {...props}\n modifiers={modifiers}\n className={cn(\n buttonVariants({ size: 'medium', tone: 'neutral', variant: 'ghost' }),\n 'text-inherit hover:bg-brand-container hover:text-brand-on-container',\n modifiers.selected && 'hover:bg-brand-default hover:text-brand-on-default',\n className,\n )}\n />\n )\n}\n","import type { ChangeEvent } from 'react'\n\nimport { cn } from '@/utils'\n\nimport { Icon } from '../icon'\nimport {\n Select,\n SelectIcon,\n SelectItem,\n SelectList,\n SelectPopup,\n SelectTitle,\n SelectTrigger,\n SelectValue,\n} from '../select'\nimport type { CalendarDropdownProps } from './calendar.types'\n\nfunction createSelectTarget(value: string): HTMLSelectElement {\n const element = document.createElement('select'),\n option = Object.assign(document.createElement('option'), { value })\n\n element.append(option)\n element.value = value\n\n return element\n}\n\nexport function CalendarDropdown({\n children,\n className,\n disabled,\n value,\n options,\n onChange,\n 'aria-label': ariaLabel,\n}: CalendarDropdownProps) {\n const handleValueChange = (newValue: string | null) => {\n if (onChange) {\n const element = createSelectTarget(newValue ?? ''),\n syntheticEvent = {\n bubbles: false,\n cancelable: false,\n currentTarget: element,\n defaultPrevented: false,\n eventPhase: Event.NONE,\n isDefaultPrevented: () => false,\n isPropagationStopped: () => false,\n isTrusted: false,\n nativeEvent: new Event('change'),\n persist: () => undefined,\n preventDefault: () => undefined,\n stopPropagation: () => undefined,\n target: element,\n timeStamp: performance.now(),\n type: 'change',\n } satisfies ChangeEvent<HTMLSelectElement>\n\n onChange(syntheticEvent)\n }\n }\n\n return (\n <Select<string> disabled={disabled} value={value?.toString()} onValueChange={handleValueChange}>\n <SelectTrigger variant=\"ghost\" aria-label={ariaLabel} className={cn('', className)}>\n <SelectValue>{options?.find((option) => option.value === value)?.label}</SelectValue>\n {children ?? (\n <SelectIcon>\n <Icon name=\"chevronsUpDown\" />\n </SelectIcon>\n )}\n </SelectTrigger>\n <SelectPopup>\n <SelectList>\n {options?.map((option) => (\n <SelectItem\n key={option.value}\n value={option.value.toString()}\n disabled={option.disabled}\n >\n <SelectTitle>{option.label}</SelectTitle>\n </SelectItem>\n ))}\n </SelectList>\n </SelectPopup>\n </Select>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { CalendarFooterProps } from './calendar.types'\n\nexport function CalendarFooter({ className, children, ref, ...props }: CalendarFooterProps) {\n return (\n <div\n data-slot=\"calendar-footer\"\n className={cn('mt-xs flex flex-col gap-3xs border-t border-border pt-xs', className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { CalendarHeaderProps } from './calendar.types'\n\nexport function CalendarHeader({ className, children, ref, ...props }: CalendarHeaderProps) {\n return (\n <div className={cn('', className)} ref={ref} {...props}>\n {children}\n </div>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport type { CalendarNextMonthButtonProps } from './calendar.types'\n\nexport function CalendarNextMonthButton({\n className,\n children,\n ...props\n}: CalendarNextMonthButtonProps) {\n return (\n <Button variant=\"ghost\" tone=\"neutral\" size=\"small\" className={cn('', className)} {...props}>\n {children ?? <Icon name=\"chevronRight\" />}\n </Button>\n )\n}\n","import type { DateRange, DayButton, Mode, PropsBase } from '@daypicker/react'\nimport { cva } from 'class-variance-authority'\nimport type { VariantProps } from 'class-variance-authority'\nimport type React from 'react'\n\nconst calendarPanelVariants = cva('w-fit', {\n compoundVariants: [\n {\n className: 'rounded-2xl p-sm',\n variant: ['elevated', 'outline'],\n },\n ],\n defaultVariants: {\n variant: 'elevated',\n },\n variants: {\n variant: {\n elevated: 'bg-surface shadow-2xs',\n ghost: 'bg-transparent',\n outline: 'border border-border',\n },\n },\n})\n\ntype CalendarSelected = Date | Date[] | DateRange\n\ninterface CalendarState {\n selectedDates: CalendarSelected | undefined\n}\n\ninterface CalendarAction {\n type: 'SET_SELECTED_DATES'\n payload: CalendarSelected | undefined\n}\n\ntype CalendarProps = React.ComponentProps<'div'> & {\n defaultState?: CalendarState\n}\ninterface CalendarContextValue {\n state: CalendarState\n dispatch: React.Dispatch<CalendarAction>\n}\n\ntype CalendarPickerProps = PropsBase & {\n selected?: CalendarSelected\n onSelect?: (date: CalendarSelected | undefined) => void\n mode?: Mode\n}\ntype CalendarPanelProps = React.ComponentProps<'div'> & VariantProps<typeof calendarPanelVariants>\ntype CalendarHeaderProps = React.ComponentProps<'div'>\ntype CalendarSummaryProps = React.ComponentProps<'div'>\ntype CalendarFooterProps = React.ComponentProps<'div'>\ntype CalendarComponents = NonNullable<PropsBase['components']>\ntype CalendarChevronProps = React.ComponentProps<NonNullable<CalendarComponents['Chevron']>>\ntype CalendarNextMonthButtonProps = React.ComponentProps<\n NonNullable<CalendarComponents['NextMonthButton']>\n>\ntype CalendarPreviousMonthButtonProps = React.ComponentProps<\n NonNullable<CalendarComponents['PreviousMonthButton']>\n>\ntype CalendarDropdownProps = React.ComponentProps<NonNullable<CalendarComponents['Dropdown']>> & {\n children?: React.ReactNode\n}\ntype CalendarDayButtonProps = React.ComponentProps<typeof DayButton>\n\nexport type {\n CalendarSelected,\n CalendarState,\n CalendarAction,\n CalendarProps,\n CalendarContextValue,\n CalendarPickerProps,\n CalendarPanelProps,\n CalendarHeaderProps,\n CalendarSummaryProps,\n CalendarFooterProps,\n CalendarNextMonthButtonProps,\n CalendarChevronProps,\n CalendarPreviousMonthButtonProps,\n CalendarDropdownProps,\n CalendarDayButtonProps,\n CalendarComponents,\n}\nexport { calendarPanelVariants }\n","import { cn } from '@/utils/cn'\n\nimport { calendarPanelVariants } from './calendar.types'\nimport type { CalendarPanelProps } from './calendar.types'\n\nexport function CalendarPanel({ variant, className, children, ref, ...props }: CalendarPanelProps) {\n return (\n <div className={cn(calendarPanelVariants({ variant }), className)} ref={ref} {...props}>\n {children}\n </div>\n )\n}\n","import { Icon } from '../icon'\nimport type { IconName } from '../icon'\nimport type { CalendarChevronProps } from './calendar.types'\n\nconst chevronIcons: Record<NonNullable<CalendarChevronProps['orientation']>, IconName> = {\n down: 'chevronDown',\n left: 'chevronLeft',\n right: 'chevronRight',\n up: 'chevronUp',\n}\n\n// DayPicker renders this inside its navigation and caption controls in place of its own blue chevron.\nexport function CalendarChevron({ orientation = 'left' }: CalendarChevronProps) {\n return <Icon name={chevronIcons[orientation]} />\n}\n","import { cn } from '@/utils/cn'\n\nimport { Button } from '../button'\nimport { Icon } from '../icon'\nimport type { CalendarPreviousMonthButtonProps } from './calendar.types'\n\nexport function CalendarPreviousMonthButton({\n className,\n children,\n ...props\n}: CalendarPreviousMonthButtonProps) {\n return (\n <Button {...props} variant=\"ghost\" tone=\"neutral\" size=\"small\" className={cn('', className)}>\n {children ?? <Icon name=\"chevronLeft\" />}\n </Button>\n )\n}\n","import { DayPicker, getDefaultClassNames, isDateRange, labelDayButton } from '@daypicker/react'\nimport type { OnSelectHandler, PropsBase } from '@daypicker/react'\n\nimport { cn } from '@/utils/cn'\n\nimport { useCalendar } from './calendar'\nimport { CalendarChevron } from './calendar-chevron'\nimport { CalendarDayButton } from './calendar-day-button'\nimport { CalendarDropdown } from './calendar-dropdown'\nimport { CalendarNextMonthButton } from './calendar-next-month-button'\nimport { CalendarPreviousMonthButton } from './calendar-previous-month-button'\nimport type { CalendarComponents, CalendarPickerProps, CalendarSelected } from './calendar.types'\n\nfunction getMultipleSelected(selectedDates: CalendarSelected | undefined): Date[] | undefined {\n if (Array.isArray(selectedDates)) {\n return selectedDates\n }\n return undefined\n}\n\nfunction getRangeSelected(selectedDates: CalendarSelected | undefined) {\n if (isDateRange(selectedDates)) {\n return selectedDates\n }\n return undefined\n}\n\nfunction getSingleSelected(selectedDates: CalendarSelected | undefined): Date | undefined {\n if (selectedDates instanceof Date) {\n return selectedDates\n }\n return undefined\n}\n\n// WCAG 2.5.3: the accessible name must contain the visible text, which is the day number.\nfunction labelDayButtonWithVisibleText(...args: Parameters<typeof labelDayButton>) {\n const [date, modifiers, options, dateLib] = args,\n visibleDay = dateLib?.format(date, 'd') ?? String(date.getDate())\n return `${visibleDay}, ${labelDayButton(date, modifiers, options, dateLib)}`\n}\n\nconst defaultClassNames = getDefaultClassNames(),\n defaultComponents: CalendarComponents = {\n Chevron: CalendarChevron,\n DayButton: CalendarDayButton,\n Dropdown: CalendarDropdown,\n NextMonthButton: CalendarNextMonthButton,\n PreviousMonthButton: CalendarPreviousMonthButton,\n },\n calendarClassNames: PropsBase['classNames'] = {\n caption_label: 'style-text-strong-0',\n day: cn(\n 'size-xl! rounded-full style-text-default-0 transition-colors hover:bg-brand-container hover:text-brand-on-container data-selected:text-brand-on-default data-selected:hover:bg-brand-default',\n defaultClassNames.day,\n ),\n day_button: cn('size-xl! rounded-full', defaultClassNames.day_button),\n disabled: cn('pointer-events-none text-on-surface', defaultClassNames.disabled),\n month_caption: 'flex items-center justify-center h-lg',\n month_grid: cn('mt-xs border-separate! border-spacing-3xs', defaultClassNames.month_grid),\n nav: cn('h-lg! w-full justify-between!', defaultClassNames.nav),\n outside: cn('border-none text-on-surface-muted', defaultClassNames.outside),\n range_end: cn('rounded-l-none bg-brand-default text-brand-on-default'),\n range_middle: cn(\n 'rounded-none! border-y border-brand-border bg-brand-container! text-brand-on-container! transition-none',\n ),\n range_start: cn(\n 'rounded-r-none bg-brand-default text-brand-on-default',\n '[&.rounded-l-none]:rounded-xl',\n ),\n selected: cn('bg-brand-default text-brand-on-default'),\n today: cn('text-brand-default! data-selected:text-brand-on-default!', defaultClassNames.today),\n week: cn('', defaultClassNames.week),\n weekdays: cn('style-text-default-0 text-on-surface-muted', defaultClassNames.weekdays),\n }\n\nexport function CalendarPicker({\n className,\n components,\n mode = 'single',\n selected,\n onSelect,\n ...props\n}: CalendarPickerProps) {\n const { state, dispatch } = useCalendar(),\n selectedValue = selected ?? state.selectedDates,\n handleSelect: OnSelectHandler<CalendarSelected | undefined> = (next) => {\n dispatch({ payload: next, type: 'SET_SELECTED_DATES' })\n onSelect?.(next)\n },\n baseProps: PropsBase = {\n className,\n classNames: calendarClassNames,\n components: { ...defaultComponents, ...components },\n labels: { labelDayButton: labelDayButtonWithVisibleText },\n ...props,\n }\n\n switch (mode) {\n case 'multiple': {\n return (\n <DayPicker\n {...baseProps}\n mode=\"multiple\"\n selected={getMultipleSelected(selectedValue)}\n onSelect={handleSelect}\n />\n )\n }\n case 'range': {\n return (\n <DayPicker\n {...baseProps}\n mode=\"range\"\n selected={getRangeSelected(selectedValue)}\n onSelect={handleSelect}\n />\n )\n }\n default: {\n return (\n <DayPicker\n {...baseProps}\n mode=\"single\"\n selected={getSingleSelected(selectedValue)}\n onSelect={handleSelect}\n />\n )\n }\n }\n}\n","import { isDateRange } from '@daypicker/react'\nimport { useState } from 'react'\n\nimport { cn } from '@/utils/cn'\nimport { formatDate } from '@/utils/date-time'\n\nimport { useCalendar } from './calendar'\nimport type { CalendarSummaryProps } from './calendar.types'\n\nconst dateFormatOptions: Intl.DateTimeFormatOptions = {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n },\n formatCalendarDate = (date: Date) => formatDate(date, 'en-US', dateFormatOptions)\n\nexport function CalendarSummary({ className, children, ref, ...props }: CalendarSummaryProps) {\n const { state } = useCalendar(),\n [today, setToday] = useState(() => new Date())\n void setToday\n let formattedDate: string | undefined = undefined\n\n if (state.selectedDates instanceof Date) {\n formattedDate = formatCalendarDate(state.selectedDates)\n }\n\n if (isDateRange(state.selectedDates)) {\n const { from: startDate, to: endDate } = state.selectedDates\n if (startDate && endDate) {\n formattedDate = `${formatCalendarDate(startDate)} - ${formatCalendarDate(endDate)}`\n }\n }\n\n return (\n <div className={cn('flex flex-col', className)} ref={ref} {...props}>\n <span className=\"style-text-strong-1\">{formatCalendarDate(today)}</span>\n <span className=\"style-text-strong-0\">{formattedDate}</span>\n {children}\n </div>\n )\n}\n","// Imported here rather than in the main stylesheet so `@daypicker/react` stays an optional peer.\nimport '@daypicker/react/style.css'\nimport { Calendar as CalendarRoot } from './calendar'\nimport { CalendarDayButton } from './calendar-day-button'\nimport { CalendarDropdown } from './calendar-dropdown'\nimport { CalendarFooter } from './calendar-footer'\nimport { CalendarHeader } from './calendar-header'\nimport { CalendarNextMonthButton } from './calendar-next-month-button'\nimport { CalendarPanel } from './calendar-panel'\nimport { CalendarPicker } from './calendar-picker'\nimport { CalendarPreviousMonthButton } from './calendar-previous-month-button'\nimport { CalendarSummary } from './calendar-summary'\n\nconst Calendar = Object.assign(CalendarRoot, {\n DayButton: CalendarDayButton,\n Dropdown: CalendarDropdown,\n Footer: CalendarFooter,\n Header: CalendarHeader,\n NextMonthButton: CalendarNextMonthButton,\n Panel: CalendarPanel,\n Picker: CalendarPicker,\n PreviousMonthButton: CalendarPreviousMonthButton,\n Summary: CalendarSummary,\n})\n\nexport type {\n CalendarAction,\n CalendarContextValue,\n CalendarProps,\n CalendarFooterProps,\n CalendarHeaderProps,\n CalendarPanelProps,\n CalendarPickerProps,\n CalendarSummaryProps,\n CalendarDayButtonProps,\n CalendarChevronProps,\n CalendarNextMonthButtonProps,\n CalendarPreviousMonthButtonProps,\n CalendarDropdownProps,\n CalendarComponents,\n} from './calendar.types'\n\nexport { CalendarPicker } from './calendar-picker'\nexport { CalendarFooter } from './calendar-footer'\nexport { CalendarHeader } from './calendar-header'\nexport { CalendarPanel } from './calendar-panel'\nexport { CalendarSummary } from './calendar-summary'\nexport { CalendarDayButton } from './calendar-day-button'\nexport { CalendarChevron } from './calendar-chevron'\nexport { CalendarNextMonthButton } from './calendar-next-month-button'\nexport { CalendarPreviousMonthButton } from './calendar-previous-month-button'\nexport { CalendarDropdown } from './calendar-dropdown'\nexport { Calendar }\n"],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import React from "react";
2
+ import { DefaultLegendContentProps, LegendProps, TooltipContentProps, TooltipPayloadEntry, TooltipProps } from "recharts";
3
+ declare const THEMES: {
4
+ readonly dark: '.dark';
5
+ readonly light: '';
6
+ }, ChartContainerContext: React.Context<ChartContainerContextProps | undefined>, ChartLegendPayloadContext: React.Context<{
7
+ label?: string;
8
+ color?: string;
9
+ icon?: React.ComponentType;
10
+ } | undefined>;
11
+ type ChartConfig = Record<string, {
12
+ label?: string;
13
+ icon?: React.ComponentType;
14
+ } & ({
15
+ color?: string;
16
+ theme?: never;
17
+ } | {
18
+ color?: never;
19
+ theme: Record<keyof typeof THEMES, string>;
20
+ })>;
21
+ interface ChartContainerContextProps {
22
+ config: ChartConfig;
23
+ }
24
+ type ChartContainerProps = React.ComponentProps<'div'> & {
25
+ config: ChartConfig;
26
+ initialDimension?: {
27
+ width: number;
28
+ height: number;
29
+ };
30
+ };
31
+ type ChartTooltipProps = TooltipProps;
32
+ type ChartTooltipContentProps = React.ComponentProps<'div'> & Partial<TooltipContentProps>;
33
+ type ChartLegendProps = LegendProps;
34
+ type ChartLegendContentProps = React.ComponentProps<'div'> & DefaultLegendContentProps;
35
+ type ChartTooltipLabelProps = React.ComponentProps<'p'>;
36
+ type ChartTooltipNameProps = React.ComponentProps<'p'>;
37
+ type ChartTooltipPayloadProps = React.ComponentProps<'div'>;
38
+ type ChartLegendPayloadProps = React.ComponentProps<'div'>;
39
+ type ChartTooltipIndicatorProps = React.ComponentProps<'div'> & {
40
+ shape?: 'circle' | 'square' | 'diamond' | 'triangle' | 'wye' | 'line';
41
+ };
42
+ type ChartLinearGradientProps = React.ComponentProps<'defs'> & {
43
+ gradients: {
44
+ id: string;
45
+ stopColor: string;
46
+ }[];
47
+ };
48
+ type ChartTooltipIconProps = React.ComponentProps<'div'>;
49
+ type ChartLegendIconProps = React.ComponentProps<'div'>;
50
+ type ChartLegendLabelProps = React.ComponentProps<'p'>;
51
+ type ChartLegendIndicatorProps = React.ComponentProps<'div'> & {
52
+ shape?: 'circle' | 'square' | 'diamond' | 'triangle' | 'wye' | 'line';
53
+ };
54
+ type ChartTooltipValueProps = React.ComponentProps<'p'>;
55
+ export declare function ChartContainer({ id, config, className, children, initialDimension, ref, ...props }: ChartContainerProps): React.JSX.Element;
56
+ export declare function ChartTooltip({ content, ...props }: ChartTooltipProps): import("react").JSX.Element;
57
+ declare function ChartTooltipContent({ className, children, ref, ...props }: ChartTooltipContentProps): React.JSX.Element;
58
+ declare function useChartTooltipContent(): ChartTooltipContentProps;
59
+ export declare function ChartTooltipLabel({ className, children, ref, ...props }: ChartTooltipLabelProps): import("react").JSX.Element;
60
+ declare function ChartTooltipPayload({ className, children, ref, ...props }: ChartTooltipPayloadProps): React.JSX.Element;
61
+ declare function useChartTooltipPayload(): TooltipPayloadEntry<import("recharts").TooltipValueType, import("recharts/types/component/DefaultTooltipContent").NameType>;
62
+ export declare function ChartLegend({ children, ...props }: ChartLegendProps): import("react").JSX.Element;
63
+ export declare function ChartLegendContent({ payload, verticalAlign, className, children, ref, ...props }: ChartLegendContentProps): import("react").JSX.Element;
64
+ export declare function ChartLinearGradient({ gradients, className, children, ref, ...props }: ChartLinearGradientProps): import("react").JSX.Element;
65
+ export declare function ChartTooltipIndicator({ shape, className, children, ref, ...props }: ChartTooltipIndicatorProps): import("react").JSX.Element;
66
+ export declare function ChartTooltipName({ className, children, ref, ...props }: ChartTooltipNameProps): import("react").JSX.Element;
67
+ export declare function ChartLegendIcon({ className, children, ref, ...props }: ChartLegendIconProps): import("react").JSX.Element;
68
+ export declare function ChartLegendLabel({ className, children, ref, ...props }: ChartLegendLabelProps): import("react").JSX.Element;
69
+ export declare function ChartLegendIndicator({ shape, className, children, ref, ...props }: ChartLegendIndicatorProps): import("react").JSX.Element;
70
+ export declare function ChartTooltipIcon({ className, children, ref, ...props }: ChartTooltipIconProps): import("react").JSX.Element;
71
+ declare const getPayloadConfigFromPayload: (config: ChartConfig, payload: unknown, key: string) => ({
72
+ label?: string;
73
+ icon?: React.ComponentType;
74
+ } & ({
75
+ color?: string;
76
+ theme?: never;
77
+ } | {
78
+ color?: never;
79
+ theme: Record<"dark" | "light", string>;
80
+ })) | undefined, useChart: () => ChartContainerContextProps, useChartLegendPayload: () => {
81
+ label?: string;
82
+ color?: string;
83
+ icon?: React.ComponentType;
84
+ };
85
+ export declare function ChartTooltipValue({ className, children, ref, ...props }: ChartTooltipValueProps): import("react").JSX.Element;
86
+ export { type ChartConfig, ChartContainerContext, type ChartContainerContextProps, type ChartContainerProps, type ChartLegendContentProps, type ChartLegendIconProps, type ChartLegendIndicatorProps, type ChartLegendLabelProps, type ChartLegendPayloadProps, type ChartLegendProps, type ChartLinearGradientProps, ChartTooltipContent, type ChartTooltipContentProps, type ChartTooltipIconProps, type ChartTooltipIndicatorProps, type ChartTooltipLabelProps, type ChartTooltipNameProps, ChartTooltipPayload, type ChartTooltipPayloadProps, type ChartTooltipProps, type ChartTooltipValueProps, getPayloadConfigFromPayload, useChart, useChartTooltipContent, useChartTooltipPayload };
87
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,262 @@
1
+ import { t as cn } from "../cn-BDi0DfT5.js";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import React from "react";
4
+ import { Legend, ResponsiveContainer, Tooltip } from "recharts";
5
+ // src/components/chart/chart.types.ts
6
+ const ChartContainerContext = React.createContext(void 0);
7
+ const ChartLegendPayloadContext = React.createContext(void 0);
8
+ // src/components/chart/chart-container.tsx
9
+ function ChartContainer({ id, config, className, children, initialDimension, ref, ...props }) {
10
+ const uniqueId = React.useId(), chartId = `chart-${id ?? uniqueId.replace(/:/g, "")}`;
11
+ return /* @__PURE__ */ jsx(ChartContainerContext.Provider, {
12
+ value: { config },
13
+ children: /* @__PURE__ */ jsx("div", {
14
+ "data-slot": "chart",
15
+ "data-chart": chartId,
16
+ className: cn("flex aspect-video justify-center style-text-default--1 [&_.recharts-cartesian-axis-tick_text]:fill-on-surface-muted [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-neutral-container-high [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-neutral-container-high [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden", className),
17
+ ref,
18
+ ...props,
19
+ children: /* @__PURE__ */ jsx(ResponsiveContainer, {
20
+ initialDimension,
21
+ children
22
+ })
23
+ })
24
+ });
25
+ }
26
+ // src/components/chart/chart-tooltip.tsx
27
+ function ChartTooltip({ content, ...props }) {
28
+ return /* @__PURE__ */ jsx(Tooltip, {
29
+ content,
30
+ ...props
31
+ });
32
+ }
33
+ // src/components/chart/chart-tooltip-content.tsx
34
+ const ChartTooltipContentContext = React.createContext(void 0);
35
+ function ChartTooltipContent({ className, children, ref, ...props }) {
36
+ return /* @__PURE__ */ jsx(ChartTooltipContentContext.Provider, {
37
+ value: props,
38
+ children: /* @__PURE__ */ jsx("div", {
39
+ className: cn("min-w-[125px] space-y-2xs rounded-lg bg-surface-2 px-xs py-2xs shadow-md", className),
40
+ ref,
41
+ ...props,
42
+ children
43
+ })
44
+ });
45
+ }
46
+ function useChartTooltipContent() {
47
+ const context = React.useContext(ChartTooltipContentContext);
48
+ if (!context) throw new Error("useChartTooltipContent must be used within a ChartTooltipContentProvider");
49
+ return context;
50
+ }
51
+ // src/components/chart/chart-tooltip-label.tsx
52
+ function ChartTooltipLabel({ className, children, ref, ...props }) {
53
+ const { label } = useChartTooltipContent();
54
+ return /* @__PURE__ */ jsxs("p", {
55
+ className: cn("style-text-default-0", className),
56
+ ref,
57
+ ...props,
58
+ children: [children, label]
59
+ });
60
+ }
61
+ // src/components/chart/chart-tooltip-payload.tsx
62
+ const ChartTooltipPayloadContext = React.createContext(void 0);
63
+ function ChartTooltipPayload({ className, children, ref, ...props }) {
64
+ const { payload } = useChartTooltipContent();
65
+ return /* @__PURE__ */ jsx("div", {
66
+ className: cn("flex flex-col gap-3xs", className),
67
+ ref,
68
+ ...props,
69
+ children: payload?.map((entry) => /* @__PURE__ */ jsx(ChartTooltipPayloadContext.Provider, {
70
+ value: entry,
71
+ children: /* @__PURE__ */ jsx("div", {
72
+ className: "flex items-center justify-between gap-2xs",
73
+ children
74
+ })
75
+ }, String(entry.dataKey ?? entry.name)))
76
+ });
77
+ }
78
+ function useChartTooltipPayload() {
79
+ const context = React.useContext(ChartTooltipPayloadContext);
80
+ if (!context) throw new Error("useChartTooltipPayload must be used within a ChartTooltipPayloadProvider");
81
+ return context;
82
+ }
83
+ // src/components/chart/chart-legend.tsx
84
+ function ChartLegend({ children, ...props }) {
85
+ return /* @__PURE__ */ jsx(Legend, {
86
+ ...props,
87
+ children
88
+ });
89
+ }
90
+ // src/components/chart/chart.utils.ts
91
+ const getPayloadConfigFromPayload = (config, payload, key) => {
92
+ if (typeof payload !== "object" || payload === null) return;
93
+ if (key in config) return config[key];
94
+ if ("name" in payload && typeof payload.name === "string" && payload.name in config) return config[payload.name];
95
+ };
96
+ const useChart = () => {
97
+ const context = React.useContext(ChartContainerContext);
98
+ if (!context) throw new Error("useChart must be used within a ChartContainerProvider");
99
+ return context;
100
+ };
101
+ const useChartLegendPayload = () => {
102
+ const context = React.useContext(ChartLegendPayloadContext);
103
+ if (!context) throw new Error("useChartLegendPayload must be used within a ChartLegendPayloadProvider");
104
+ return context;
105
+ };
106
+ // src/components/chart/chart-legend-icon.tsx
107
+ function ChartLegendIcon({ className, children, ref, ...props }) {
108
+ const { icon: Icon, color } = useChartLegendPayload();
109
+ return /* @__PURE__ */ jsxs("div", {
110
+ style: { color },
111
+ className: cn("shrink-0 [&>svg]:size-xs", className),
112
+ ref,
113
+ ...props,
114
+ children: [children, Icon && /* @__PURE__ */ jsx(Icon, {})]
115
+ });
116
+ }
117
+ // src/components/chart/chart-legend-indicator.tsx
118
+ function ChartLegendIndicator({ shape = "circle", className, children, ref, ...props }) {
119
+ const { color } = useChartLegendPayload();
120
+ return /* @__PURE__ */ jsx("div", {
121
+ style: {
122
+ backgroundColor: color,
123
+ ...shape === "circle" && { borderRadius: "50%" },
124
+ ...shape === "diamond" && { transform: "rotate(45deg)" },
125
+ ...shape === "triangle" && { clipPath: "polygon(50% 0%, 0% 100%, 100% 100%)" },
126
+ ...shape === "wye" && { clipPath: "polygon(50% 0%, 61.8% 35.4%, 98.5% 35.4%, 69.1% 57.1%, 80.9% 92.5%, 50% 70.7%, 19.1% 92.5%, 30.9% 57.1%, 1.5% 35.4%, 38.2% 35.4%)" },
127
+ ...shape === "line" && {
128
+ borderRadius: "1.5px",
129
+ maxHeight: "100%",
130
+ width: "3px"
131
+ }
132
+ },
133
+ className: cn("size-xs", className),
134
+ ref,
135
+ ...props,
136
+ children
137
+ });
138
+ }
139
+ // src/components/chart/chart-legend-label.tsx
140
+ function ChartLegendLabel({ className, children, ref, ...props }) {
141
+ const { label } = useChartLegendPayload();
142
+ return /* @__PURE__ */ jsxs("p", {
143
+ className: cn("style-text-default--1 capitalize", className),
144
+ ref,
145
+ ...props,
146
+ children: [children, label]
147
+ });
148
+ }
149
+ // src/components/chart/chart-legend-content.tsx
150
+ function ChartLegendContent({ payload, verticalAlign = "bottom", className, children, ref, ...props }) {
151
+ const { config } = useChart();
152
+ return /* @__PURE__ */ jsx("div", {
153
+ className: cn("flex items-center justify-center gap-lg", verticalAlign === "top" && "mb-md", verticalAlign === "bottom" && "mt-md", className),
154
+ ref,
155
+ ...props,
156
+ children: payload?.map((entry) => {
157
+ let payloadKey = "value";
158
+ if (typeof entry.dataKey === "string") payloadKey = entry.dataKey;
159
+ const payloadConfig = getPayloadConfigFromPayload(config, entry, payloadKey);
160
+ return /* @__PURE__ */ jsx(ChartLegendPayloadContext.Provider, {
161
+ value: {
162
+ color: payloadConfig?.color,
163
+ icon: payloadConfig?.icon,
164
+ label: payloadConfig?.label
165
+ },
166
+ children: /* @__PURE__ */ jsxs("div", {
167
+ className: "flex items-center gap-2xs",
168
+ children: [
169
+ payloadConfig?.icon && /* @__PURE__ */ jsx(ChartLegendIcon, {}),
170
+ !payloadConfig?.icon && /* @__PURE__ */ jsx(ChartLegendIndicator, {}),
171
+ /* @__PURE__ */ jsx(ChartLegendLabel, {}),
172
+ children
173
+ ]
174
+ })
175
+ }, String(entry.dataKey ?? entry.value));
176
+ })
177
+ });
178
+ }
179
+ // src/components/chart/chart-linear-gradient.tsx
180
+ function ChartLinearGradient({ gradients, className, children, ref, ...props }) {
181
+ return /* @__PURE__ */ jsxs("defs", {
182
+ className: cn("", className),
183
+ ref,
184
+ ...props,
185
+ children: [gradients.map((gradient) => /* @__PURE__ */ jsxs("linearGradient", {
186
+ id: gradient.id,
187
+ x1: "0",
188
+ y1: "0",
189
+ x2: "0",
190
+ y2: "1",
191
+ children: [/* @__PURE__ */ jsx("stop", {
192
+ offset: "5%",
193
+ stopColor: gradient.stopColor,
194
+ stopOpacity: .8
195
+ }), /* @__PURE__ */ jsx("stop", {
196
+ offset: "95%",
197
+ stopColor: gradient.stopColor,
198
+ stopOpacity: .1
199
+ })]
200
+ }, gradient.id)), children]
201
+ });
202
+ }
203
+ // src/components/chart/chart-tooltip-indicator.tsx
204
+ function ChartTooltipIndicator({ shape = "circle", className, children, ref, ...props }) {
205
+ const { color } = useChartTooltipPayload();
206
+ return /* @__PURE__ */ jsx("div", {
207
+ style: {
208
+ backgroundColor: color,
209
+ ...shape === "circle" && { borderRadius: "50%" },
210
+ ...shape === "diamond" && { transform: "rotate(45deg)" },
211
+ ...shape === "triangle" && { clipPath: "polygon(50% 0%, 0% 100%, 100% 100%)" },
212
+ ...shape === "wye" && { clipPath: "polygon(50% 0%, 61.8% 35.4%, 98.5% 35.4%, 69.1% 57.1%, 80.9% 92.5%, 50% 70.7%, 19.1% 92.5%, 30.9% 57.1%, 1.5% 35.4%, 38.2% 35.4%)" },
213
+ ...shape === "line" && {
214
+ borderRadius: "1.5px",
215
+ maxHeight: "100%",
216
+ width: "3px"
217
+ }
218
+ },
219
+ className: cn("size-xs", className),
220
+ ref,
221
+ ...props,
222
+ children
223
+ });
224
+ }
225
+ // src/components/chart/chart-tooltip-name.tsx
226
+ function ChartTooltipName({ className, children, ref, ...props }) {
227
+ const { name } = useChartTooltipPayload();
228
+ return /* @__PURE__ */ jsxs("p", {
229
+ className: cn("grow text-left style-text-default--1 text-on-surface-variant capitalize", className),
230
+ ref,
231
+ ...props,
232
+ children: [children, name]
233
+ });
234
+ }
235
+ // src/components/chart/chart-tooltip-icon.tsx
236
+ function resolveConfigKey(dataKey) {
237
+ if (typeof dataKey === "string") return dataKey;
238
+ return "value";
239
+ }
240
+ function ChartTooltipIcon({ className, children, ref, ...props }) {
241
+ const { config } = useChart(), payload = useChartTooltipPayload(), Icon = getPayloadConfigFromPayload(config, payload, resolveConfigKey(payload.dataKey))?.icon;
242
+ return /* @__PURE__ */ jsxs("div", {
243
+ style: { color: payload.color },
244
+ className: cn("shrink-0 [&>svg]:size-xs", className),
245
+ ref,
246
+ ...props,
247
+ children: [children, Icon && /* @__PURE__ */ jsx(Icon, {})]
248
+ });
249
+ }
250
+ // src/components/chart/chart-tooltip-value.tsx
251
+ function ChartTooltipValue({ className, children, ref, ...props }) {
252
+ const { value } = useChartTooltipPayload();
253
+ return /* @__PURE__ */ jsxs("p", {
254
+ className: cn("mx-auto style-text-default--1", className),
255
+ ref,
256
+ ...props,
257
+ children: [children, value]
258
+ });
259
+ }
260
+ export { ChartContainer, ChartContainerContext, ChartLegend, ChartLegendContent, ChartLegendIcon, ChartLegendIndicator, ChartLegendLabel, ChartLinearGradient, ChartTooltip, ChartTooltipContent, ChartTooltipIcon, ChartTooltipIndicator, ChartTooltipLabel, ChartTooltipName, ChartTooltipPayload, ChartTooltipValue, getPayloadConfigFromPayload, useChart, useChartTooltipContent, useChartTooltipPayload };
261
+
262
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/components/chart/chart.types.ts","../../src/components/chart/chart-container.tsx","../../src/components/chart/chart-tooltip.tsx","../../src/components/chart/chart-tooltip-content.tsx","../../src/components/chart/chart-tooltip-label.tsx","../../src/components/chart/chart-tooltip-payload.tsx","../../src/components/chart/chart-legend.tsx","../../src/components/chart/chart.utils.ts","../../src/components/chart/chart-legend-icon.tsx","../../src/components/chart/chart-legend-indicator.tsx","../../src/components/chart/chart-legend-label.tsx","../../src/components/chart/chart-legend-content.tsx","../../src/components/chart/chart-linear-gradient.tsx","../../src/components/chart/chart-tooltip-indicator.tsx","../../src/components/chart/chart-tooltip-name.tsx","../../src/components/chart/chart-tooltip-icon.tsx","../../src/components/chart/chart-tooltip-value.tsx"],"sourcesContent":["import React from 'react'\nimport type {\n TooltipProps as RechartsTooltipProps,\n TooltipContentProps as RechartsTooltipContentProps,\n LegendProps as RechartsLegendProps,\n DefaultLegendContentProps as RechartsDefaultLegendContentProps,\n} from 'recharts'\n\nconst THEMES = { dark: '.dark', light: '' } as const,\n ChartContainerContext = React.createContext<ChartContainerContextProps | undefined>(undefined),\n ChartLegendPayloadContext = React.createContext<\n | {\n label?: string\n color?: string\n icon?: React.ComponentType\n }\n | undefined\n >(undefined)\n\ntype ChartConfig = Record<\n string,\n {\n label?: string\n icon?: React.ComponentType\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n )\n>\n\ninterface ChartContainerContextProps {\n config: ChartConfig\n}\n\ntype ChartContainerProps = React.ComponentProps<'div'> & {\n config: ChartConfig\n initialDimension?: { width: number; height: number }\n}\n\ntype ChartTooltipProps = RechartsTooltipProps\ntype ChartTooltipContentProps = React.ComponentProps<'div'> & Partial<RechartsTooltipContentProps>\ntype ChartLegendProps = RechartsLegendProps\ntype ChartLegendContentProps = React.ComponentProps<'div'> & RechartsDefaultLegendContentProps\ntype ChartTooltipLabelProps = React.ComponentProps<'p'>\ntype ChartTooltipNameProps = React.ComponentProps<'p'>\ntype ChartTooltipPayloadProps = React.ComponentProps<'div'>\ntype ChartLegendPayloadProps = React.ComponentProps<'div'>\ntype ChartTooltipIndicatorProps = React.ComponentProps<'div'> & {\n shape?: 'circle' | 'square' | 'diamond' | 'triangle' | 'wye' | 'line'\n}\ntype ChartLinearGradientProps = React.ComponentProps<'defs'> & {\n gradients: {\n id: string\n stopColor: string\n }[]\n}\ntype ChartTooltipIconProps = React.ComponentProps<'div'>\ntype ChartLegendIconProps = React.ComponentProps<'div'>\ntype ChartLegendLabelProps = React.ComponentProps<'p'>\ntype ChartLegendIndicatorProps = React.ComponentProps<'div'> & {\n shape?: 'circle' | 'square' | 'diamond' | 'triangle' | 'wye' | 'line'\n}\ntype ChartTooltipValueProps = React.ComponentProps<'p'>\n\nexport type {\n ChartConfig,\n ChartContainerContextProps,\n ChartContainerProps,\n ChartTooltipProps,\n ChartTooltipContentProps,\n ChartLegendProps,\n ChartLegendContentProps,\n ChartTooltipLabelProps,\n ChartTooltipNameProps,\n ChartTooltipPayloadProps,\n ChartLegendPayloadProps,\n ChartTooltipIndicatorProps,\n ChartLinearGradientProps,\n ChartTooltipIconProps,\n ChartLegendIconProps,\n ChartLegendLabelProps,\n ChartLegendIndicatorProps,\n ChartTooltipValueProps,\n}\nexport { ChartContainerContext, ChartLegendPayloadContext }\n","import React from 'react'\nimport { ResponsiveContainer } from 'recharts'\n\nimport { cn } from '@/utils/cn'\n\nimport { ChartContainerContext } from './chart.types'\nimport type { ChartContainerProps } from './chart.types'\n\nexport function ChartContainer({\n id,\n config,\n className,\n children,\n initialDimension,\n ref,\n ...props\n}: ChartContainerProps) {\n const uniqueId = React.useId(),\n chartId = `chart-${id ?? uniqueId.replace(/:/g, '')}`\n\n return (\n <ChartContainerContext.Provider value={{ config }}>\n <div\n data-slot=\"chart\"\n data-chart={chartId}\n className={cn(\n \"flex aspect-video justify-center style-text-default--1 [&_.recharts-cartesian-axis-tick_text]:fill-on-surface-muted [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-neutral-container-high [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-neutral-container-high [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden\",\n className,\n )}\n ref={ref}\n {...props}\n >\n <ResponsiveContainer initialDimension={initialDimension}>{children}</ResponsiveContainer>\n </div>\n </ChartContainerContext.Provider>\n )\n}\n","import { Tooltip } from 'recharts'\n\nimport type { ChartTooltipProps } from './chart.types'\n\nexport function ChartTooltip({ content, ...props }: ChartTooltipProps) {\n return <Tooltip content={content} {...props} />\n}\n","import React from 'react'\n\nimport { cn } from '@/utils/cn'\n\nimport type { ChartTooltipContentProps } from './chart.types'\n\nconst ChartTooltipContentContext = React.createContext<ChartTooltipContentProps | undefined>(\n undefined,\n)\n\nfunction ChartTooltipContent({ className, children, ref, ...props }: ChartTooltipContentProps) {\n return (\n <ChartTooltipContentContext.Provider value={props}>\n <div\n className={cn(\n 'min-w-[125px] space-y-2xs rounded-lg bg-surface-2 px-xs py-2xs shadow-md',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </ChartTooltipContentContext.Provider>\n )\n}\n\nfunction useChartTooltipContent() {\n const context = React.useContext(ChartTooltipContentContext)\n\n if (!context) {\n throw new Error('useChartTooltipContent must be used within a ChartTooltipContentProvider')\n }\n\n return context\n}\n\nexport { ChartTooltipContent, useChartTooltipContent }\n","import { cn } from '@/utils/cn'\n\nimport { useChartTooltipContent } from './chart-tooltip-content'\nimport type { ChartTooltipLabelProps } from './chart.types'\n\nexport function ChartTooltipLabel({ className, children, ref, ...props }: ChartTooltipLabelProps) {\n const { label } = useChartTooltipContent()\n\n return (\n <p className={cn('style-text-default-0', className)} ref={ref} {...props}>\n {children}\n {label}\n </p>\n )\n}\n","import React from 'react'\nimport type { TooltipPayloadEntry } from 'recharts'\n\nimport { cn } from '@/utils/cn'\n\nimport { useChartTooltipContent } from './chart-tooltip-content'\nimport type { ChartTooltipPayloadProps } from './chart.types'\n\nconst ChartTooltipPayloadContext = React.createContext<TooltipPayloadEntry | undefined>(undefined)\n\nfunction ChartTooltipPayload({ className, children, ref, ...props }: ChartTooltipPayloadProps) {\n const { payload } = useChartTooltipContent()\n\n return (\n <div className={cn('flex flex-col gap-3xs', className)} ref={ref} {...props}>\n {payload?.map((entry) => (\n <ChartTooltipPayloadContext.Provider\n key={String(entry.dataKey ?? entry.name)}\n value={entry}\n >\n <div className=\"flex items-center justify-between gap-2xs\">{children}</div>\n </ChartTooltipPayloadContext.Provider>\n ))}\n </div>\n )\n}\n\nfunction useChartTooltipPayload() {\n const context = React.useContext(ChartTooltipPayloadContext)\n\n if (!context) {\n throw new Error('useChartTooltipPayload must be used within a ChartTooltipPayloadProvider')\n }\n\n return context\n}\n\nexport { ChartTooltipPayload, useChartTooltipPayload }\n","import { Legend } from 'recharts'\n\nimport type { ChartLegendProps } from './chart.types'\n\nexport function ChartLegend({ children, ...props }: ChartLegendProps) {\n return <Legend {...props}>{children}</Legend>\n}\n","import React from 'react'\n\nimport { ChartLegendPayloadContext, ChartContainerContext } from './chart.types'\nimport type { ChartConfig } from './chart.types'\n\nconst getPayloadConfigFromPayload = (config: ChartConfig, payload: unknown, key: string) => {\n if (typeof payload !== 'object' || payload === null) {\n return undefined\n }\n\n if (key in config) {\n return config[key]\n }\n\n if ('name' in payload && typeof payload.name === 'string' && payload.name in config) {\n return config[payload.name]\n }\n\n return undefined\n },\n useChart = () => {\n const context = React.useContext(ChartContainerContext)\n\n if (!context) {\n throw new Error('useChart must be used within a ChartContainerProvider')\n }\n\n return context\n },\n useChartLegendPayload = () => {\n const context = React.useContext(ChartLegendPayloadContext)\n\n if (!context) {\n throw new Error('useChartLegendPayload must be used within a ChartLegendPayloadProvider')\n }\n\n return context\n }\n\nexport { getPayloadConfigFromPayload, useChart, useChartLegendPayload }\n","import { cn } from '@/utils/cn'\n\nimport type { ChartLegendIconProps } from './chart.types'\nimport { useChartLegendPayload } from './chart.utils'\n\nexport function ChartLegendIcon({ className, children, ref, ...props }: ChartLegendIconProps) {\n const { icon: Icon, color } = useChartLegendPayload()\n\n return (\n <div\n style={{\n color,\n }}\n className={cn('shrink-0 [&>svg]:size-xs', className)}\n ref={ref}\n {...props}\n >\n {children}\n {Icon && <Icon />}\n </div>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { ChartLegendIndicatorProps } from './chart.types'\nimport { useChartLegendPayload } from './chart.utils'\n\nexport function ChartLegendIndicator({\n shape = 'circle',\n className,\n children,\n ref,\n ...props\n}: ChartLegendIndicatorProps) {\n const { color } = useChartLegendPayload()\n\n return (\n <div\n style={{\n backgroundColor: color,\n ...(shape === 'circle' && { borderRadius: '50%' }),\n ...(shape === 'diamond' && { transform: 'rotate(45deg)' }),\n ...(shape === 'triangle' && { clipPath: 'polygon(50% 0%, 0% 100%, 100% 100%)' }),\n ...(shape === 'wye' && {\n clipPath:\n 'polygon(50% 0%, 61.8% 35.4%, 98.5% 35.4%, 69.1% 57.1%, 80.9% 92.5%, 50% 70.7%, 19.1% 92.5%, 30.9% 57.1%, 1.5% 35.4%, 38.2% 35.4%)',\n }),\n ...(shape === 'line' && { borderRadius: '1.5px', maxHeight: '100%', width: '3px' }),\n }}\n className={cn('size-xs', className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { ChartLegendLabelProps } from './chart.types'\nimport { useChartLegendPayload } from './chart.utils'\n\nexport function ChartLegendLabel({ className, children, ref, ...props }: ChartLegendLabelProps) {\n const { label } = useChartLegendPayload()\n\n return (\n <p className={cn('style-text-default--1 capitalize', className)} ref={ref} {...props}>\n {children}\n {label}\n </p>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { ChartLegendIcon } from './chart-legend-icon'\nimport { ChartLegendIndicator } from './chart-legend-indicator'\nimport { ChartLegendLabel } from './chart-legend-label'\nimport { ChartLegendPayloadContext } from './chart.types'\nimport type { ChartLegendContentProps } from './chart.types'\nimport { getPayloadConfigFromPayload, useChart } from './chart.utils'\n\nexport function ChartLegendContent({\n payload,\n verticalAlign = 'bottom',\n className,\n children,\n ref,\n ...props\n}: ChartLegendContentProps) {\n const { config } = useChart()\n\n return (\n <div\n className={cn(\n 'flex items-center justify-center gap-lg',\n verticalAlign === 'top' && 'mb-md',\n verticalAlign === 'bottom' && 'mt-md',\n className,\n )}\n ref={ref}\n {...props}\n >\n {payload?.map((entry) => {\n let payloadKey = 'value'\n\n if (typeof entry.dataKey === 'string') {\n payloadKey = entry.dataKey\n }\n\n const payloadConfig = getPayloadConfigFromPayload(config, entry, payloadKey)\n\n return (\n <ChartLegendPayloadContext.Provider\n key={String(entry.dataKey ?? entry.value)}\n value={{\n color: payloadConfig?.color,\n icon: payloadConfig?.icon,\n label: payloadConfig?.label,\n }}\n >\n <div className=\"flex items-center gap-2xs\">\n {payloadConfig?.icon && <ChartLegendIcon />}\n {!payloadConfig?.icon && <ChartLegendIndicator />}\n <ChartLegendLabel />\n {children}\n </div>\n </ChartLegendPayloadContext.Provider>\n )\n })}\n </div>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport type { ChartLinearGradientProps } from './chart.types'\n\nexport function ChartLinearGradient({\n gradients,\n className,\n children,\n ref,\n ...props\n}: ChartLinearGradientProps) {\n return (\n <defs className={cn('', className)} ref={ref} {...props}>\n {gradients.map((gradient) => (\n <linearGradient key={gradient.id} id={gradient.id} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"5%\" stopColor={gradient.stopColor} stopOpacity={0.8} />\n <stop offset=\"95%\" stopColor={gradient.stopColor} stopOpacity={0.1} />\n </linearGradient>\n ))}\n {children}\n </defs>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useChartTooltipPayload } from './chart-tooltip-payload'\nimport type { ChartTooltipIndicatorProps } from './chart.types'\n\nexport function ChartTooltipIndicator({\n shape = 'circle',\n className,\n children,\n ref,\n ...props\n}: ChartTooltipIndicatorProps) {\n const { color } = useChartTooltipPayload()\n\n return (\n <div\n style={{\n backgroundColor: color,\n ...(shape === 'circle' && { borderRadius: '50%' }),\n ...(shape === 'diamond' && { transform: 'rotate(45deg)' }),\n ...(shape === 'triangle' && { clipPath: 'polygon(50% 0%, 0% 100%, 100% 100%)' }),\n ...(shape === 'wye' && {\n clipPath:\n 'polygon(50% 0%, 61.8% 35.4%, 98.5% 35.4%, 69.1% 57.1%, 80.9% 92.5%, 50% 70.7%, 19.1% 92.5%, 30.9% 57.1%, 1.5% 35.4%, 38.2% 35.4%)',\n }),\n ...(shape === 'line' && { borderRadius: '1.5px', maxHeight: '100%', width: '3px' }),\n }}\n className={cn('size-xs', className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useChartTooltipPayload } from './chart-tooltip-payload'\nimport type { ChartTooltipNameProps } from './chart.types'\n\nexport function ChartTooltipName({ className, children, ref, ...props }: ChartTooltipNameProps) {\n const { name } = useChartTooltipPayload()\n\n return (\n <p\n className={cn(\n 'grow text-left style-text-default--1 text-on-surface-variant capitalize',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n {name}\n </p>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useChartTooltipPayload } from './chart-tooltip-payload'\nimport type { ChartTooltipIconProps } from './chart.types'\nimport { getPayloadConfigFromPayload, useChart } from './chart.utils'\n\nfunction resolveConfigKey(dataKey: unknown): string {\n if (typeof dataKey === 'string') {\n return dataKey\n }\n\n return 'value'\n}\n\nexport function ChartTooltipIcon({ className, children, ref, ...props }: ChartTooltipIconProps) {\n const { config } = useChart(),\n payload = useChartTooltipPayload(),\n payloadConfig = getPayloadConfigFromPayload(config, payload, resolveConfigKey(payload.dataKey)),\n Icon = payloadConfig?.icon\n\n return (\n <div\n style={{\n color: payload.color,\n }}\n className={cn('shrink-0 [&>svg]:size-xs', className)}\n ref={ref}\n {...props}\n >\n {children}\n {Icon && <Icon />}\n </div>\n )\n}\n","import { cn } from '@/utils/cn'\n\nimport { useChartTooltipPayload } from './chart-tooltip-payload'\nimport type { ChartTooltipValueProps } from './chart.types'\n\nexport function ChartTooltipValue({ className, children, ref, ...props }: ChartTooltipValueProps) {\n const { value } = useChartTooltipPayload()\n\n return (\n <p className={cn('mx-auto style-text-default--1', className)} ref={ref} {...props}>\n {children}\n {value}\n </p>\n )\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { i as CheckboxRootProps, n as CheckboxIndicator, r as CheckboxIndicatorProps, t as Checkbox } from "../index-x4f8gnaI.js";
2
+ export { Checkbox, CheckboxIndicator, type CheckboxIndicatorProps, type CheckboxRootProps };
@@ -0,0 +1 @@
1
+ export { t as Checkbox, n as CheckboxIndicator } from "../checkbox-BuUZ1Lly.js";
@@ -0,0 +1,54 @@
1
+ import { t as cn } from "./cn-BDi0DfT5.js";
2
+ import { n as Icon } from "./icon-D3JWfCa2.js";
3
+ import { t as Label } from "./label-BgpayDvN.js";
4
+ import { cva } from "class-variance-authority";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { Checkbox } from "@base-ui/react";
7
+ import { Checkbox as Checkbox$1 } from "@base-ui/react/checkbox";
8
+ // src/components/checkbox/checkbox-indicator.tsx
9
+ function CheckboxIndicator({ className, ...props }) {
10
+ return /* @__PURE__ */ jsx(Checkbox$1.Indicator, {
11
+ className: cn("flex", className),
12
+ ...props,
13
+ render: (innerProps, state) => {
14
+ if (state.indeterminate) return /* @__PURE__ */ jsx(Icon, {
15
+ name: "minus",
16
+ ...innerProps,
17
+ className: "text-accent-default"
18
+ });
19
+ return /* @__PURE__ */ jsx(Icon, {
20
+ name: "selected",
21
+ ...innerProps
22
+ });
23
+ }
24
+ });
25
+ }
26
+ // src/components/checkbox/checkbox.types.ts
27
+ const checkboxVariants = cva("group flex size-md items-center justify-center rounded-md shadow-2xs outline-2 outline-transparent transition-colors not-indeterminate:text-accent-on-default indeterminate:text-accent-default hover:cursor-pointer hover:outline-accent-border disabled:cursor-not-allowed disabled:hover:cursor-not-allowed data-checked:bg-accent-default [&_svg]:size-sm", {
28
+ defaultVariants: { variant: "elevated" },
29
+ variants: { variant: {
30
+ elevated: "bg-surface shadow-2xs",
31
+ inSurface: "bg-surface-low shadow-none inset-shadow-2xs data-checked:inset-shadow-none",
32
+ outline: "bg-inherit shadow-none outline [&:not([data-checked])]:not-hover:outline-border-strong"
33
+ } }
34
+ });
35
+ // src/components/checkbox/checkbox.tsx
36
+ function Checkbox$3({ variant, children, className, ref, ...props }) {
37
+ return /* @__PURE__ */ jsxs(Label, {
38
+ className: "flex items-center gap-xs has-disabled:opacity-50",
39
+ children: [/* @__PURE__ */ jsx(Checkbox.Root, {
40
+ className: cn(checkboxVariants({
41
+ className,
42
+ variant
43
+ })),
44
+ ref,
45
+ ...props,
46
+ children: /* @__PURE__ */ jsx(CheckboxIndicator, {})
47
+ }), children]
48
+ });
49
+ }
50
+ // src/components/checkbox/index.ts
51
+ const Checkbox$2 = Object.assign(Checkbox$3, { Indicator: CheckboxIndicator });
52
+ export { CheckboxIndicator as n, Checkbox$2 as t };
53
+
54
+ //# sourceMappingURL=checkbox-BuUZ1Lly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox-BuUZ1Lly.js","names":["BaseCheckbox","Checkbox","BaseCheckbox","Checkbox","CheckboxRoot"],"sources":["../src/components/checkbox/checkbox-indicator.tsx","../src/components/checkbox/checkbox.types.ts","../src/components/checkbox/checkbox.tsx","../src/components/checkbox/index.ts"],"sourcesContent":["import { Checkbox as BaseCheckbox } from '@base-ui/react/checkbox'\n\nimport { cn } from '@/utils/cn'\n\nimport { Icon } from '../icon'\nimport type { CheckboxIndicatorProps } from './checkbox.types'\n\nexport function CheckboxIndicator({ className, ...props }: CheckboxIndicatorProps) {\n return (\n <BaseCheckbox.Indicator\n className={cn('flex', className)}\n {...props}\n render={(innerProps, state) => {\n if (state.indeterminate) {\n return <Icon name=\"minus\" {...innerProps} className=\"text-accent-default\" />\n }\n return <Icon name=\"selected\" {...innerProps} />\n }}\n />\n )\n}\n","import type { Checkbox as BaseCheckbox } from '@base-ui/react/checkbox'\nimport { cva } from 'class-variance-authority'\nimport type { VariantProps } from 'class-variance-authority'\nimport type { ComponentProps } from 'react'\n\nconst checkboxVariants = cva(\n 'group flex size-md items-center justify-center rounded-md shadow-2xs outline-2 outline-transparent transition-colors not-indeterminate:text-accent-on-default indeterminate:text-accent-default hover:cursor-pointer hover:outline-accent-border disabled:cursor-not-allowed disabled:hover:cursor-not-allowed data-checked:bg-accent-default [&_svg]:size-sm',\n {\n defaultVariants: {\n variant: 'elevated',\n },\n variants: {\n variant: {\n elevated: 'bg-surface shadow-2xs',\n inSurface: 'bg-surface-low shadow-none inset-shadow-2xs data-checked:inset-shadow-none',\n outline:\n 'bg-inherit shadow-none outline [&:not([data-checked])]:not-hover:outline-border-strong',\n },\n },\n },\n)\n\ntype CheckboxRootProps = ComponentProps<typeof BaseCheckbox.Root> &\n VariantProps<typeof checkboxVariants>\n\ntype CheckboxIndicatorProps = ComponentProps<typeof BaseCheckbox.Indicator>\n\nexport { checkboxVariants, type CheckboxRootProps, type CheckboxIndicatorProps }\n","import { Checkbox as BaseCheckbox } from '@base-ui/react'\n\nimport { cn } from '@/utils/cn'\n\nimport { Label } from '../label'\nimport { CheckboxIndicator } from './checkbox-indicator'\nimport { checkboxVariants } from './checkbox.types'\nimport type { CheckboxRootProps } from './checkbox.types'\n\nexport function Checkbox({ variant, children, className, ref, ...props }: CheckboxRootProps) {\n return (\n <Label className=\"flex items-center gap-xs has-disabled:opacity-50\">\n <BaseCheckbox.Root\n className={cn(checkboxVariants({ className, variant }))}\n ref={ref}\n {...props}\n >\n <CheckboxIndicator />\n </BaseCheckbox.Root>\n {children}\n </Label>\n )\n}\n","import { Checkbox as CheckboxRoot } from './checkbox'\nimport { CheckboxIndicator } from './checkbox-indicator'\n\nconst Checkbox = Object.assign(CheckboxRoot, {\n Indicator: CheckboxIndicator,\n})\n\nexport type { CheckboxIndicatorProps, CheckboxRootProps } from './checkbox.types'\nexport { CheckboxIndicator } from './checkbox-indicator'\n\nexport { Checkbox }\n"],"mappings":";;;;;;;;AAOA,SAAgB,kBAAkB,EAAE,WAAW,GAAG,SAAiC;CACjF,OACE,oBAACA,WAAa,WAAd;EACE,WAAW,GAAG,QAAQ,SAAS;EAC/B,GAAI;EACJ,SAAS,YAAY,UAAU;GAC7B,IAAI,MAAM,eACR,OAAO,oBAAC,MAAD;IAAM,MAAK;IAAQ,GAAI;IAAY,WAAU;GAAuB,CAAA;GAE7E,OAAO,oBAAC,MAAD;IAAM,MAAK;IAAW,GAAI;GAAa,CAAA;EAChD;CACD,CAAA;AAEL;;ACfA,MAAM,mBAAmB,IACvB,iWACA;CACE,iBAAiB,EACf,SAAS,WACX;CACA,UAAU,EACR,SAAS;EACP,UAAU;EACV,WAAW;EACX,SACE;CACJ,EACF;AACF,CACF;;ACXA,SAAgBC,WAAS,EAAE,SAAS,UAAU,WAAW,KAAK,GAAG,SAA4B;CAC3F,OACE,qBAAC,OAAD;EAAO,WAAU;EAAjB,UAAA,CACE,oBAACC,SAAa,MAAd;GACE,WAAW,GAAG,iBAAiB;IAAE;IAAW;GAAQ,CAAC,CAAC;GACjD;GACL,GAAI;GAEJ,UAAA,oBAAC,mBAAD,CAAoB,CAAA;EACH,CAAA,GAClB,QACI;;AAEX;;ACnBA,MAAMC,aAAW,OAAO,OAAOC,YAAc,EAC3C,WAAW,kBACb,CAAC"}
@@ -0,0 +1,6 @@
1
+ import React$1 from "react";
2
+ import { CheckboxGroup as CheckboxGroup$1 } from "@base-ui/react";
3
+ type CheckboxGroupProps = React.ComponentProps<typeof CheckboxGroup$1>;
4
+ export declare function CheckboxGroup({ className, ref, ...props }: CheckboxGroupProps): React$1.JSX.Element;
5
+ export type { CheckboxGroupProps };
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,17 @@
1
+ import { t as cn } from "../cn-BDi0DfT5.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import React from "react";
4
+ import { CheckboxGroup as CheckboxGroup$1 } from "@base-ui/react";
5
+ // src/components/checkbox-group/checkbox-group.tsx
6
+ function CheckboxGroup({ className, ref, ...props }) {
7
+ const id = React.useId();
8
+ return /* @__PURE__ */ jsx(CheckboxGroup$1, {
9
+ "aria-labelledby": id,
10
+ className: cn("flex flex-col items-start gap-2xs", className),
11
+ ref,
12
+ ...props
13
+ });
14
+ }
15
+ export { CheckboxGroup };
16
+
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["BaseCheckboxGroup"],"sources":["../../src/components/checkbox-group/checkbox-group.tsx"],"sourcesContent":["import { CheckboxGroup as BaseCheckboxGroup } from '@base-ui/react'\nimport React from 'react'\n\nimport { cn } from '@/utils/cn'\n\nimport type { CheckboxGroupProps } from './checkbox-group.types'\n\nexport function CheckboxGroup({ className, ref, ...props }: CheckboxGroupProps) {\n const id = React.useId()\n return (\n <BaseCheckboxGroup\n aria-labelledby={id}\n className={cn('flex flex-col items-start gap-2xs', className)}\n ref={ref}\n {...props}\n />\n )\n}\n"],"mappings":";;;;;AAOA,SAAgB,cAAc,EAAE,WAAW,KAAK,GAAG,SAA6B;CAC9E,MAAM,KAAK,MAAM,MAAM;CACvB,OACE,oBAACA,iBAAD;EACE,mBAAiB;EACjB,WAAW,GAAG,qCAAqC,SAAS;EACvD;EACL,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,29 @@
1
+ import { clsx } from "clsx";
2
+ import { extendTailwindMerge } from "tailwind-merge";
3
+ // src/utils/cn.ts
4
+ const twMerge = extendTailwindMerge({ extend: { theme: { spacing: [
5
+ "3xs",
6
+ "2xs",
7
+ "xs",
8
+ "sm",
9
+ "md",
10
+ "lg",
11
+ "xl",
12
+ "2xl",
13
+ "3xl",
14
+ "3xs-2xs",
15
+ "2xs-xs",
16
+ "xs-sm",
17
+ "sm-md",
18
+ "md-lg",
19
+ "lg-xl",
20
+ "xl-2xl",
21
+ "2xl-3xl",
22
+ "sm-lg"
23
+ ] } } });
24
+ function cn(...inputs) {
25
+ return twMerge(clsx(inputs));
26
+ }
27
+ export { cn as t };
28
+
29
+ //# sourceMappingURL=cn-BDi0DfT5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cn-BDi0DfT5.js","names":[],"sources":["../src/utils/cn.ts"],"sourcesContent":["import { clsx } from 'clsx'\nimport type { ClassValue } from 'clsx'\nimport { extendTailwindMerge } from 'tailwind-merge'\n\n// Theme spacing tokens from styles/input.css; without them twMerge cannot dedupe e.g. gap-md vs gap-0.\nconst twMerge = extendTailwindMerge({\n extend: {\n theme: {\n spacing: [\n '3xs',\n '2xs',\n 'xs',\n 'sm',\n 'md',\n 'lg',\n 'xl',\n '2xl',\n '3xl',\n '3xs-2xs',\n '2xs-xs',\n 'xs-sm',\n 'sm-md',\n 'md-lg',\n 'lg-xl',\n 'xl-2xl',\n '2xl-3xl',\n 'sm-lg',\n ],\n },\n },\n})\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n"],"mappings":";;;AAKA,MAAM,UAAU,oBAAoB,EAClC,QAAQ,EACN,OAAO,EACL,SAAS;CACP;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,EACF,EACF,EACF,CAAC;AAED,SAAgB,GAAG,GAAG,QAAsB;CAC1C,OAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B"}