@pk-design/react-tailwind 1.6.0 → 1.7.1

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 (430) hide show
  1. package/dist/cjs/components/Accordion/Accordion.js +61 -0
  2. package/dist/cjs/components/Accordion/Accordion.js.map +1 -0
  3. package/dist/cjs/components/ActionSheet/ActionSheet.js +38 -0
  4. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -0
  5. package/dist/cjs/components/Alert/Alert.js +34 -0
  6. package/dist/cjs/components/Alert/Alert.js.map +1 -0
  7. package/dist/cjs/components/Badge/Badge.js +33 -0
  8. package/dist/cjs/components/Badge/Badge.js.map +1 -0
  9. package/dist/cjs/components/Banner/Banner.js +41 -0
  10. package/dist/cjs/components/Banner/Banner.js.map +1 -0
  11. package/dist/cjs/components/BodyText/BodyText.js +59 -0
  12. package/dist/cjs/components/BodyText/BodyText.js.map +1 -0
  13. package/dist/cjs/components/BottomNavigation/BottomNavigation.js +52 -0
  14. package/dist/cjs/components/BottomNavigation/BottomNavigation.js.map +1 -0
  15. package/dist/cjs/components/Breadcrumb/Breadcrumb.js +63 -0
  16. package/dist/cjs/components/Breadcrumb/Breadcrumb.js.map +1 -0
  17. package/dist/cjs/components/Button/Button.js +118 -0
  18. package/dist/cjs/components/Button/Button.js.map +1 -0
  19. package/dist/cjs/components/ButtonGroup/ButtonGroup.js +100 -0
  20. package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -0
  21. package/dist/cjs/components/Card/Card.js +65 -0
  22. package/dist/cjs/components/Card/Card.js.map +1 -0
  23. package/dist/cjs/components/Checkbox/Checkbox.js +64 -0
  24. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -0
  25. package/dist/cjs/components/CheckboxGroup/CheckboxGroup.js +82 -0
  26. package/dist/cjs/components/CheckboxGroup/CheckboxGroup.js.map +1 -0
  27. package/dist/cjs/components/DataList/DataList.js +287 -0
  28. package/dist/cjs/components/DataList/DataList.js.map +1 -0
  29. package/dist/cjs/components/DataTable/DataTable.icons.js +20 -0
  30. package/dist/cjs/components/DataTable/DataTable.icons.js.map +1 -0
  31. package/dist/cjs/components/DataTable/DataTable.js +110 -0
  32. package/dist/cjs/components/DataTable/DataTable.js.map +1 -0
  33. package/dist/cjs/components/DataTable/DataTable.utils.js +87 -0
  34. package/dist/cjs/components/DataTable/DataTable.utils.js.map +1 -0
  35. package/dist/cjs/components/DetailedInformation/DetailedInformation.js +67 -0
  36. package/dist/cjs/components/DetailedInformation/DetailedInformation.js.map +1 -0
  37. package/dist/cjs/components/Dot/index.js +12 -0
  38. package/dist/cjs/components/Dot/index.js.map +1 -0
  39. package/dist/cjs/components/Drawer/Drawer.js +67 -0
  40. package/dist/cjs/components/Drawer/Drawer.js.map +1 -0
  41. package/dist/cjs/components/Dropdown/Dropdown.js +50 -0
  42. package/dist/cjs/components/Dropdown/Dropdown.js.map +1 -0
  43. package/dist/cjs/components/EmptyState/index.js +14 -0
  44. package/dist/cjs/components/EmptyState/index.js.map +1 -0
  45. package/dist/cjs/components/Flex/Flex.js +25 -0
  46. package/dist/cjs/components/Flex/Flex.js.map +1 -0
  47. package/dist/cjs/components/FloatingActionButton/FloatingActionButton.js +71 -0
  48. package/dist/cjs/components/FloatingActionButton/FloatingActionButton.js.map +1 -0
  49. package/dist/cjs/components/Grid/Grid.js +33 -0
  50. package/dist/cjs/components/Grid/Grid.js.map +1 -0
  51. package/dist/cjs/components/HeadingText/HeadingText.js +89 -0
  52. package/dist/cjs/components/HeadingText/HeadingText.js.map +1 -0
  53. package/dist/cjs/components/Icons/ArrowDownAZ.svg.js +46 -0
  54. package/dist/cjs/components/Icons/ArrowDownAZ.svg.js.map +1 -0
  55. package/dist/cjs/components/Icons/ArrowDownNarrowWide.svg.js +46 -0
  56. package/dist/cjs/components/Icons/ArrowDownNarrowWide.svg.js.map +1 -0
  57. package/dist/cjs/components/Icons/ArrowDownWideNarrow.svg.js +46 -0
  58. package/dist/cjs/components/Icons/ArrowDownWideNarrow.svg.js.map +1 -0
  59. package/dist/cjs/components/Icons/ArrowDownZA.svg.js +46 -0
  60. package/dist/cjs/components/Icons/ArrowDownZA.svg.js.map +1 -0
  61. package/dist/cjs/components/Icons/ArrowUpDown.svg.js +46 -0
  62. package/dist/cjs/components/Icons/ArrowUpDown.svg.js.map +1 -0
  63. package/dist/cjs/components/Icons/BadgeCheck.svg.js +48 -0
  64. package/dist/cjs/components/Icons/BadgeCheck.svg.js.map +1 -0
  65. package/dist/cjs/components/Icons/Check.svg.js +46 -0
  66. package/dist/cjs/components/Icons/Check.svg.js.map +1 -0
  67. package/dist/cjs/components/Icons/ChevronDown.svg.js +46 -0
  68. package/dist/cjs/components/Icons/ChevronDown.svg.js.map +1 -0
  69. package/dist/cjs/components/Icons/ChevronLeft.svg.js +46 -0
  70. package/dist/cjs/components/Icons/ChevronLeft.svg.js.map +1 -0
  71. package/dist/cjs/components/Icons/ChevronRight.svg.js +46 -0
  72. package/dist/cjs/components/Icons/ChevronRight.svg.js.map +1 -0
  73. package/dist/cjs/components/Icons/CircleAlert.svg.js +50 -0
  74. package/dist/cjs/components/Icons/CircleAlert.svg.js.map +1 -0
  75. package/dist/cjs/components/Icons/CircleCheck.svg.js +50 -0
  76. package/dist/cjs/components/Icons/CircleCheck.svg.js.map +1 -0
  77. package/dist/cjs/components/Icons/CirclePlus.svg.js +50 -0
  78. package/dist/cjs/components/Icons/CirclePlus.svg.js.map +1 -0
  79. package/dist/cjs/components/Icons/CircleX.svg.js +50 -0
  80. package/dist/cjs/components/Icons/CircleX.svg.js.map +1 -0
  81. package/dist/cjs/components/Icons/FolderPlus.svg.js +46 -0
  82. package/dist/cjs/components/Icons/FolderPlus.svg.js.map +1 -0
  83. package/dist/cjs/components/Icons/Info.svg.js +50 -0
  84. package/dist/cjs/components/Icons/Info.svg.js.map +1 -0
  85. package/dist/cjs/components/Icons/Search.svg.js +50 -0
  86. package/dist/cjs/components/Icons/Search.svg.js.map +1 -0
  87. package/dist/cjs/components/Icons/Slash.svg.js +46 -0
  88. package/dist/cjs/components/Icons/Slash.svg.js.map +1 -0
  89. package/dist/cjs/components/Icons/TriangleAlert.svg.js +46 -0
  90. package/dist/cjs/components/Icons/TriangleAlert.svg.js.map +1 -0
  91. package/dist/cjs/components/Icons/X.svg.js +46 -0
  92. package/dist/cjs/components/Icons/X.svg.js.map +1 -0
  93. package/dist/cjs/components/Input/Input.js +85 -0
  94. package/dist/cjs/components/Input/Input.js.map +1 -0
  95. package/dist/cjs/components/Label/Label.js +14 -0
  96. package/dist/cjs/components/Label/Label.js.map +1 -0
  97. package/dist/cjs/components/Loader/index.js +18 -0
  98. package/dist/cjs/components/Loader/index.js.map +1 -0
  99. package/dist/cjs/components/MobileHeader/MobileHeader.js +45 -0
  100. package/dist/cjs/components/MobileHeader/MobileHeader.js.map +1 -0
  101. package/dist/cjs/components/MobilePicker/MobilePicker.js +368 -0
  102. package/dist/cjs/components/MobilePicker/MobilePicker.js.map +1 -0
  103. package/dist/cjs/components/MobileStepper/MobileStepper.js +33 -0
  104. package/dist/cjs/components/MobileStepper/MobileStepper.js.map +1 -0
  105. package/dist/cjs/components/Pagination/Pagination.js +33 -0
  106. package/dist/cjs/components/Pagination/Pagination.js.map +1 -0
  107. package/dist/cjs/components/Pagination/usePagination.js +33 -0
  108. package/dist/cjs/components/Pagination/usePagination.js.map +1 -0
  109. package/dist/cjs/components/PasswordInput/PasswordInput.js +56 -0
  110. package/dist/cjs/components/PasswordInput/PasswordInput.js.map +1 -0
  111. package/dist/cjs/components/PinInput/PinInput.js +98 -0
  112. package/dist/cjs/components/PinInput/PinInput.js.map +1 -0
  113. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +83 -0
  114. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -0
  115. package/dist/cjs/components/QuantityStepper/QuantityStepper.js +77 -0
  116. package/dist/cjs/components/QuantityStepper/QuantityStepper.js.map +1 -0
  117. package/dist/cjs/components/Radio/Radio.js +34 -0
  118. package/dist/cjs/components/Radio/Radio.js.map +1 -0
  119. package/dist/cjs/components/RadioGroup/RadioGroup.js +50 -0
  120. package/dist/cjs/components/RadioGroup/RadioGroup.js.map +1 -0
  121. package/dist/cjs/components/RadioSwitch/RadioSwitch.js +116 -0
  122. package/dist/cjs/components/RadioSwitch/RadioSwitch.js.map +1 -0
  123. package/dist/cjs/components/RangeInput/RangeInput.js +66 -0
  124. package/dist/cjs/components/RangeInput/RangeInput.js.map +1 -0
  125. package/dist/cjs/components/RangeSlider/RangeSlider.js +167 -0
  126. package/dist/cjs/components/RangeSlider/RangeSlider.js.map +1 -0
  127. package/dist/cjs/components/SegmentedControl/SegmentedControl.js +64 -0
  128. package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -0
  129. package/dist/cjs/components/SelectBox/SelectBox.js +305 -0
  130. package/dist/cjs/components/SelectBox/SelectBox.js.map +1 -0
  131. package/dist/cjs/components/Skeleton/Skeleton.js +36 -0
  132. package/dist/cjs/components/Skeleton/Skeleton.js.map +1 -0
  133. package/dist/cjs/components/StatusPill/StatusPill.js +46 -0
  134. package/dist/cjs/components/StatusPill/StatusPill.js.map +1 -0
  135. package/dist/cjs/components/StickyActionBar/StickyActionBar.js +22 -0
  136. package/dist/cjs/components/StickyActionBar/StickyActionBar.js.map +1 -0
  137. package/dist/cjs/components/SwipeableRow/SwipeableRow.js +187 -0
  138. package/dist/cjs/components/SwipeableRow/SwipeableRow.js.map +1 -0
  139. package/dist/cjs/components/SwipeableTabs/SwipeableTabs.js +91 -0
  140. package/dist/cjs/components/SwipeableTabs/SwipeableTabs.js.map +1 -0
  141. package/dist/cjs/components/Table/Table.js +57 -0
  142. package/dist/cjs/components/Table/Table.js.map +1 -0
  143. package/dist/cjs/components/Tabs/Tabs.js +53 -0
  144. package/dist/cjs/components/Tabs/Tabs.js.map +1 -0
  145. package/dist/cjs/components/TextContent/TextContent.js +47 -0
  146. package/dist/cjs/components/TextContent/TextContent.js.map +1 -0
  147. package/dist/cjs/components/Textarea/Textarea.js +64 -0
  148. package/dist/cjs/components/Textarea/Textarea.js.map +1 -0
  149. package/dist/cjs/components/Toast/Toast.js +96 -0
  150. package/dist/cjs/components/Toast/Toast.js.map +1 -0
  151. package/dist/cjs/components/Toast/ToastProvider.js +151 -0
  152. package/dist/cjs/components/Toast/ToastProvider.js.map +1 -0
  153. package/dist/cjs/components/VirtualizedDataTable/VirtualizedDataTable.js +122 -0
  154. package/dist/cjs/components/VirtualizedDataTable/VirtualizedDataTable.js.map +1 -0
  155. package/dist/cjs/components/VirtualizedDataTable/VirtualizedRow.js +48 -0
  156. package/dist/cjs/components/VirtualizedDataTable/VirtualizedRow.js.map +1 -0
  157. package/dist/cjs/components/WheelPicker/WheelPicker.js +82 -0
  158. package/dist/cjs/components/WheelPicker/WheelPicker.js.map +1 -0
  159. package/dist/cjs/components/common-responsive.js +310 -0
  160. package/dist/cjs/components/common-responsive.js.map +1 -0
  161. package/dist/cjs/hooks/use-debounce.js +31 -0
  162. package/dist/cjs/hooks/use-debounce.js.map +1 -0
  163. package/dist/cjs/hooks/use-is-mobile.js +24 -0
  164. package/dist/cjs/hooks/use-is-mobile.js.map +1 -0
  165. package/dist/cjs/hooks/use-is-tablet-or-mobile.js +13 -0
  166. package/dist/cjs/hooks/use-is-tablet-or-mobile.js.map +1 -0
  167. package/dist/cjs/hooks/use-is-tablet.js +21 -0
  168. package/dist/cjs/hooks/use-is-tablet.js.map +1 -0
  169. package/dist/cjs/index.js +163 -0
  170. package/dist/cjs/index.js.map +1 -0
  171. package/dist/cjs/react-tailwind.css +2 -0
  172. package/dist/cjs/react-tailwind.css.map +1 -0
  173. package/dist/cjs/utils/build-classname.js +8 -0
  174. package/dist/cjs/utils/build-classname.js.map +1 -0
  175. package/dist/cjs/utils/get.js +20 -0
  176. package/dist/cjs/utils/get.js.map +1 -0
  177. package/dist/cjs/utils/is-array.js +12 -0
  178. package/dist/cjs/utils/is-array.js.map +1 -0
  179. package/dist/cjs/utils/is-empty.js +26 -0
  180. package/dist/cjs/utils/is-empty.js.map +1 -0
  181. package/dist/es/components/Accordion/Accordion.js +59 -0
  182. package/dist/es/components/Accordion/Accordion.js.map +1 -0
  183. package/dist/es/components/ActionSheet/ActionSheet.js +36 -0
  184. package/dist/es/components/ActionSheet/ActionSheet.js.map +1 -0
  185. package/dist/es/components/Alert/Alert.js +32 -0
  186. package/dist/es/components/Alert/Alert.js.map +1 -0
  187. package/dist/es/components/Badge/Badge.js +31 -0
  188. package/dist/es/components/Badge/Badge.js.map +1 -0
  189. package/dist/es/components/Banner/Banner.js +39 -0
  190. package/dist/es/components/Banner/Banner.js.map +1 -0
  191. package/dist/es/components/BodyText/BodyText.js +57 -0
  192. package/dist/es/components/BodyText/BodyText.js.map +1 -0
  193. package/dist/es/components/BottomNavigation/BottomNavigation.js +50 -0
  194. package/dist/es/components/BottomNavigation/BottomNavigation.js.map +1 -0
  195. package/dist/es/components/Breadcrumb/Breadcrumb.js +61 -0
  196. package/dist/es/components/Breadcrumb/Breadcrumb.js.map +1 -0
  197. package/dist/es/components/Button/Button.js +116 -0
  198. package/dist/es/components/Button/Button.js.map +1 -0
  199. package/dist/es/components/ButtonGroup/ButtonGroup.js +98 -0
  200. package/dist/es/components/ButtonGroup/ButtonGroup.js.map +1 -0
  201. package/dist/es/components/Card/Card.js +57 -0
  202. package/dist/es/components/Card/Card.js.map +1 -0
  203. package/dist/es/components/Checkbox/Checkbox.js +62 -0
  204. package/dist/es/components/Checkbox/Checkbox.js.map +1 -0
  205. package/dist/es/components/CheckboxGroup/CheckboxGroup.js +80 -0
  206. package/dist/es/components/CheckboxGroup/CheckboxGroup.js.map +1 -0
  207. package/dist/es/components/DataList/DataList.js +285 -0
  208. package/dist/es/components/DataList/DataList.js.map +1 -0
  209. package/dist/es/components/DataTable/DataTable.icons.js +17 -0
  210. package/dist/es/components/DataTable/DataTable.icons.js.map +1 -0
  211. package/dist/es/components/DataTable/DataTable.js +108 -0
  212. package/dist/es/components/DataTable/DataTable.js.map +1 -0
  213. package/dist/es/components/DataTable/DataTable.utils.js +83 -0
  214. package/dist/es/components/DataTable/DataTable.utils.js.map +1 -0
  215. package/dist/es/components/DetailedInformation/DetailedInformation.js +65 -0
  216. package/dist/es/components/DetailedInformation/DetailedInformation.js.map +1 -0
  217. package/dist/es/components/Dot/index.js +10 -0
  218. package/dist/es/components/Dot/index.js.map +1 -0
  219. package/dist/es/components/Drawer/Drawer.js +65 -0
  220. package/dist/es/components/Drawer/Drawer.js.map +1 -0
  221. package/dist/es/components/Dropdown/Dropdown.js +48 -0
  222. package/dist/es/components/Dropdown/Dropdown.js.map +1 -0
  223. package/dist/es/components/EmptyState/index.js +12 -0
  224. package/dist/es/components/EmptyState/index.js.map +1 -0
  225. package/dist/es/components/Flex/Flex.js +22 -0
  226. package/dist/es/components/Flex/Flex.js.map +1 -0
  227. package/dist/es/components/FloatingActionButton/FloatingActionButton.js +69 -0
  228. package/dist/es/components/FloatingActionButton/FloatingActionButton.js.map +1 -0
  229. package/dist/es/components/Grid/Grid.js +30 -0
  230. package/dist/es/components/Grid/Grid.js.map +1 -0
  231. package/dist/es/components/HeadingText/HeadingText.js +87 -0
  232. package/dist/es/components/HeadingText/HeadingText.js.map +1 -0
  233. package/dist/es/components/Icons/ArrowDownAZ.svg.js +23 -0
  234. package/dist/es/components/Icons/ArrowDownAZ.svg.js.map +1 -0
  235. package/dist/es/components/Icons/ArrowDownNarrowWide.svg.js +23 -0
  236. package/dist/es/components/Icons/ArrowDownNarrowWide.svg.js.map +1 -0
  237. package/dist/es/components/Icons/ArrowDownWideNarrow.svg.js +23 -0
  238. package/dist/es/components/Icons/ArrowDownWideNarrow.svg.js.map +1 -0
  239. package/dist/es/components/Icons/ArrowDownZA.svg.js +23 -0
  240. package/dist/es/components/Icons/ArrowDownZA.svg.js.map +1 -0
  241. package/dist/es/components/Icons/ArrowUpDown.svg.js +23 -0
  242. package/dist/es/components/Icons/ArrowUpDown.svg.js.map +1 -0
  243. package/dist/es/components/Icons/BadgeCheck.svg.js +25 -0
  244. package/dist/es/components/Icons/BadgeCheck.svg.js.map +1 -0
  245. package/dist/es/components/Icons/Check.svg.js +23 -0
  246. package/dist/es/components/Icons/Check.svg.js.map +1 -0
  247. package/dist/es/components/Icons/ChevronDown.svg.js +23 -0
  248. package/dist/es/components/Icons/ChevronDown.svg.js.map +1 -0
  249. package/dist/es/components/Icons/ChevronLeft.svg.js +23 -0
  250. package/dist/es/components/Icons/ChevronLeft.svg.js.map +1 -0
  251. package/dist/es/components/Icons/ChevronRight.svg.js +23 -0
  252. package/dist/es/components/Icons/ChevronRight.svg.js.map +1 -0
  253. package/dist/es/components/Icons/CircleAlert.svg.js +27 -0
  254. package/dist/es/components/Icons/CircleAlert.svg.js.map +1 -0
  255. package/dist/es/components/Icons/CircleCheck.svg.js +27 -0
  256. package/dist/es/components/Icons/CircleCheck.svg.js.map +1 -0
  257. package/dist/es/components/Icons/CirclePlus.svg.js +27 -0
  258. package/dist/es/components/Icons/CirclePlus.svg.js.map +1 -0
  259. package/dist/es/components/Icons/CircleX.svg.js +27 -0
  260. package/dist/es/components/Icons/CircleX.svg.js.map +1 -0
  261. package/dist/es/components/Icons/FolderPlus.svg.js +23 -0
  262. package/dist/es/components/Icons/FolderPlus.svg.js.map +1 -0
  263. package/dist/es/components/Icons/Info.svg.js +27 -0
  264. package/dist/es/components/Icons/Info.svg.js.map +1 -0
  265. package/dist/es/components/Icons/Search.svg.js +27 -0
  266. package/dist/es/components/Icons/Search.svg.js.map +1 -0
  267. package/dist/es/components/Icons/Slash.svg.js +23 -0
  268. package/dist/es/components/Icons/Slash.svg.js.map +1 -0
  269. package/dist/es/components/Icons/TriangleAlert.svg.js +23 -0
  270. package/dist/es/components/Icons/TriangleAlert.svg.js.map +1 -0
  271. package/dist/es/components/Icons/X.svg.js +23 -0
  272. package/dist/es/components/Icons/X.svg.js.map +1 -0
  273. package/dist/es/components/Input/Input.js +82 -0
  274. package/dist/es/components/Input/Input.js.map +1 -0
  275. package/dist/es/components/Label/Label.js +12 -0
  276. package/dist/es/components/Label/Label.js.map +1 -0
  277. package/dist/es/components/Loader/index.js +16 -0
  278. package/dist/es/components/Loader/index.js.map +1 -0
  279. package/dist/es/components/MobileHeader/MobileHeader.js +43 -0
  280. package/dist/es/components/MobileHeader/MobileHeader.js.map +1 -0
  281. package/dist/es/components/MobilePicker/MobilePicker.js +366 -0
  282. package/dist/es/components/MobilePicker/MobilePicker.js.map +1 -0
  283. package/dist/es/components/MobileStepper/MobileStepper.js +31 -0
  284. package/dist/es/components/MobileStepper/MobileStepper.js.map +1 -0
  285. package/dist/es/components/Pagination/Pagination.js +31 -0
  286. package/dist/es/components/Pagination/Pagination.js.map +1 -0
  287. package/dist/es/components/Pagination/usePagination.js +30 -0
  288. package/dist/es/components/Pagination/usePagination.js.map +1 -0
  289. package/dist/es/components/PasswordInput/PasswordInput.js +51 -0
  290. package/dist/es/components/PasswordInput/PasswordInput.js.map +1 -0
  291. package/dist/es/components/PinInput/PinInput.js +96 -0
  292. package/dist/es/components/PinInput/PinInput.js.map +1 -0
  293. package/dist/es/components/PullToRefresh/PullToRefresh.js +81 -0
  294. package/dist/es/components/PullToRefresh/PullToRefresh.js.map +1 -0
  295. package/dist/es/components/QuantityStepper/QuantityStepper.js +75 -0
  296. package/dist/es/components/QuantityStepper/QuantityStepper.js.map +1 -0
  297. package/dist/es/components/Radio/Radio.js +32 -0
  298. package/dist/es/components/Radio/Radio.js.map +1 -0
  299. package/dist/es/components/RadioGroup/RadioGroup.js +48 -0
  300. package/dist/es/components/RadioGroup/RadioGroup.js.map +1 -0
  301. package/dist/es/components/RadioSwitch/RadioSwitch.js +114 -0
  302. package/dist/es/components/RadioSwitch/RadioSwitch.js.map +1 -0
  303. package/dist/es/components/RangeInput/RangeInput.js +64 -0
  304. package/dist/es/components/RangeInput/RangeInput.js.map +1 -0
  305. package/dist/es/components/RangeSlider/RangeSlider.js +165 -0
  306. package/dist/es/components/RangeSlider/RangeSlider.js.map +1 -0
  307. package/dist/es/components/SegmentedControl/SegmentedControl.js +62 -0
  308. package/dist/es/components/SegmentedControl/SegmentedControl.js.map +1 -0
  309. package/dist/es/components/SelectBox/SelectBox.js +303 -0
  310. package/dist/es/components/SelectBox/SelectBox.js.map +1 -0
  311. package/dist/es/components/Skeleton/Skeleton.js +34 -0
  312. package/dist/es/components/Skeleton/Skeleton.js.map +1 -0
  313. package/dist/es/components/StatusPill/StatusPill.js +44 -0
  314. package/dist/es/components/StatusPill/StatusPill.js.map +1 -0
  315. package/dist/es/components/StickyActionBar/StickyActionBar.js +20 -0
  316. package/dist/es/components/StickyActionBar/StickyActionBar.js.map +1 -0
  317. package/dist/es/components/SwipeableRow/SwipeableRow.js +185 -0
  318. package/dist/es/components/SwipeableRow/SwipeableRow.js.map +1 -0
  319. package/dist/es/components/SwipeableTabs/SwipeableTabs.js +89 -0
  320. package/dist/es/components/SwipeableTabs/SwipeableTabs.js.map +1 -0
  321. package/dist/es/components/Table/Table.js +48 -0
  322. package/dist/es/components/Table/Table.js.map +1 -0
  323. package/dist/es/components/Tabs/Tabs.js +51 -0
  324. package/dist/es/components/Tabs/Tabs.js.map +1 -0
  325. package/dist/es/components/TextContent/TextContent.js +45 -0
  326. package/dist/es/components/TextContent/TextContent.js.map +1 -0
  327. package/dist/es/components/Textarea/Textarea.js +62 -0
  328. package/dist/es/components/Textarea/Textarea.js.map +1 -0
  329. package/dist/es/components/Toast/Toast.js +94 -0
  330. package/dist/es/components/Toast/Toast.js.map +1 -0
  331. package/dist/es/components/Toast/ToastProvider.js +148 -0
  332. package/dist/es/components/Toast/ToastProvider.js.map +1 -0
  333. package/dist/es/components/VirtualizedDataTable/VirtualizedDataTable.js +120 -0
  334. package/dist/es/components/VirtualizedDataTable/VirtualizedDataTable.js.map +1 -0
  335. package/dist/es/components/VirtualizedDataTable/VirtualizedRow.js +46 -0
  336. package/dist/es/components/VirtualizedDataTable/VirtualizedRow.js.map +1 -0
  337. package/dist/es/components/WheelPicker/WheelPicker.js +80 -0
  338. package/dist/es/components/WheelPicker/WheelPicker.js.map +1 -0
  339. package/dist/es/components/common-responsive.js +287 -0
  340. package/dist/es/components/common-responsive.js.map +1 -0
  341. package/dist/es/hooks/use-debounce.js +28 -0
  342. package/dist/es/hooks/use-debounce.js.map +1 -0
  343. package/dist/es/hooks/use-is-mobile.js +22 -0
  344. package/dist/es/hooks/use-is-mobile.js.map +1 -0
  345. package/dist/es/hooks/use-is-tablet-or-mobile.js +11 -0
  346. package/dist/es/hooks/use-is-tablet-or-mobile.js.map +1 -0
  347. package/dist/es/hooks/use-is-tablet.js +19 -0
  348. package/dist/es/hooks/use-is-tablet.js.map +1 -0
  349. package/dist/es/index.js +67 -0
  350. package/dist/es/index.js.map +1 -0
  351. package/dist/es/react-tailwind.css +2 -0
  352. package/dist/es/react-tailwind.css.map +1 -0
  353. package/dist/es/utils/build-classname.js +6 -0
  354. package/dist/es/utils/build-classname.js.map +1 -0
  355. package/dist/es/utils/get.js +18 -0
  356. package/dist/es/utils/get.js.map +1 -0
  357. package/dist/es/utils/is-array.js +10 -0
  358. package/dist/es/utils/is-array.js.map +1 -0
  359. package/dist/es/utils/is-empty.js +24 -0
  360. package/dist/es/utils/is-empty.js.map +1 -0
  361. package/dist/react-tailwind.cjs.js +2298 -472
  362. package/dist/react-tailwind.cjs.js.map +1 -1
  363. package/dist/react-tailwind.es.js +2284 -474
  364. package/dist/react-tailwind.es.js.map +1 -1
  365. package/dist/types/components/ActionSheet/ActionSheet.d.ts +5 -0
  366. package/dist/types/components/ActionSheet/ActionSheet.test.d.ts +1 -0
  367. package/dist/types/components/ActionSheet/ActionSheet.types.d.ts +44 -0
  368. package/dist/types/components/ActionSheet/index.d.ts +2 -0
  369. package/dist/types/components/Badge/Badge.types.d.ts +1 -1
  370. package/dist/types/components/BottomNavigation/BottomNavigation.d.ts +5 -0
  371. package/dist/types/components/BottomNavigation/BottomNavigation.test.d.ts +1 -0
  372. package/dist/types/components/BottomNavigation/BottomNavigation.types.d.ts +41 -0
  373. package/dist/types/components/BottomNavigation/index.d.ts +2 -0
  374. package/dist/types/components/Card/Card.types.d.ts +25 -0
  375. package/dist/types/components/DataList/DataList.d.ts +5 -0
  376. package/dist/types/components/DataList/DataList.test.d.ts +1 -0
  377. package/dist/types/components/DataList/DataList.types.d.ts +81 -0
  378. package/dist/types/components/DataList/index.d.ts +2 -0
  379. package/dist/types/components/DataTable/DataTable.d.ts +1 -1
  380. package/dist/types/components/DataTable/DataTable.types.d.ts +10 -0
  381. package/dist/types/components/Flex/Flex.d.ts +3 -0
  382. package/dist/types/components/Flex/Flex.test.d.ts +1 -0
  383. package/dist/types/components/Flex/Flex.types.d.ts +92 -0
  384. package/dist/types/components/Flex/index.d.ts +2 -0
  385. package/dist/types/components/FloatingActionButton/FloatingActionButton.d.ts +5 -0
  386. package/dist/types/components/FloatingActionButton/FloatingActionButton.test.d.ts +1 -0
  387. package/dist/types/components/FloatingActionButton/FloatingActionButton.types.d.ts +48 -0
  388. package/dist/types/components/FloatingActionButton/index.d.ts +2 -0
  389. package/dist/types/components/Grid/Grid.d.ts +3 -0
  390. package/dist/types/components/Grid/Grid.test.d.ts +1 -0
  391. package/dist/types/components/Grid/Grid.types.d.ts +136 -0
  392. package/dist/types/components/Grid/index.d.ts +2 -0
  393. package/dist/types/components/Input/Input.types.d.ts +3 -3
  394. package/dist/types/components/MobileHeader/MobileHeader.d.ts +5 -0
  395. package/dist/types/components/MobileHeader/MobileHeader.test.d.ts +1 -0
  396. package/dist/types/components/MobileHeader/MobileHeader.types.d.ts +49 -0
  397. package/dist/types/components/MobileHeader/index.d.ts +2 -0
  398. package/dist/types/components/MobilePicker/MobilePicker.d.ts +6 -0
  399. package/dist/types/components/MobilePicker/MobilePicker.test.d.ts +1 -0
  400. package/dist/types/components/MobilePicker/MobilePicker.types.d.ts +90 -0
  401. package/dist/types/components/MobilePicker/index.d.ts +2 -0
  402. package/dist/types/components/MobileStepper/MobileStepper.d.ts +5 -0
  403. package/dist/types/components/MobileStepper/MobileStepper.test.d.ts +1 -0
  404. package/dist/types/components/MobileStepper/MobileStepper.types.d.ts +28 -0
  405. package/dist/types/components/MobileStepper/index.d.ts +2 -0
  406. package/dist/types/components/PinInput/PinInput.d.ts +5 -0
  407. package/dist/types/components/PinInput/PinInput.test.d.ts +1 -0
  408. package/dist/types/components/PinInput/PinInput.types.d.ts +29 -0
  409. package/dist/types/components/PinInput/index.d.ts +2 -0
  410. package/dist/types/components/PullToRefresh/PullToRefresh.d.ts +5 -0
  411. package/dist/types/components/PullToRefresh/PullToRefresh.test.d.ts +1 -0
  412. package/dist/types/components/PullToRefresh/PullToRefresh.types.d.ts +23 -0
  413. package/dist/types/components/PullToRefresh/index.d.ts +2 -0
  414. package/dist/types/components/QuantityStepper/QuantityStepper.types.d.ts +18 -1
  415. package/dist/types/components/SelectBox/SelectBox.types.d.ts +9 -0
  416. package/dist/types/components/SwipeableRow/SwipeableRow.d.ts +3 -0
  417. package/dist/types/components/SwipeableRow/SwipeableRow.test.d.ts +1 -0
  418. package/dist/types/components/SwipeableRow/SwipeableRow.types.d.ts +42 -0
  419. package/dist/types/components/SwipeableRow/index.d.ts +2 -0
  420. package/dist/types/components/SwipeableTabs/SwipeableTabs.d.ts +5 -0
  421. package/dist/types/components/SwipeableTabs/SwipeableTabs.test.d.ts +1 -0
  422. package/dist/types/components/SwipeableTabs/SwipeableTabs.types.d.ts +38 -0
  423. package/dist/types/components/SwipeableTabs/index.d.ts +2 -0
  424. package/dist/types/components/WheelPicker/WheelPicker.d.ts +5 -0
  425. package/dist/types/components/WheelPicker/WheelPicker.test.d.ts +1 -0
  426. package/dist/types/components/WheelPicker/WheelPicker.types.d.ts +35 -0
  427. package/dist/types/components/WheelPicker/index.d.ts +2 -0
  428. package/dist/types/components/common-responsive.d.ts +57 -0
  429. package/dist/types/index.d.ts +14 -0
  430. package/package.json +11 -3
@@ -0,0 +1,80 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useRef, useState, useEffect } from 'react';
3
+ import { buildClassName } from '../../utils/build-classname.js';
4
+
5
+ function SingleWheelColumn({ column, itemHeight, height, disabled, onValueChange, }) {
6
+ var _a;
7
+ const containerRef = useRef(null);
8
+ const [selectedValue, setSelectedValue] = useState(column.value !== undefined
9
+ ? column.value
10
+ : column.defaultValue !== undefined
11
+ ? column.defaultValue
12
+ : (_a = column.options[0]) === null || _a === void 0 ? void 0 : _a.value);
13
+ const isControlled = column.value !== undefined;
14
+ const currentValue = isControlled ? column.value : selectedValue;
15
+ const selectedIndex = Math.max(0, column.options.findIndex((opt) => opt.value === currentValue));
16
+ const paddingY = (height - itemHeight) / 2;
17
+ // Sync scroll position when active value changes externally
18
+ useEffect(() => {
19
+ if (containerRef.current) {
20
+ const targetScrollTop = selectedIndex * itemHeight;
21
+ if (Math.abs(containerRef.current.scrollTop - targetScrollTop) > 2) {
22
+ containerRef.current.scrollTop = targetScrollTop;
23
+ }
24
+ }
25
+ }, [selectedIndex, itemHeight]);
26
+ const handleScroll = () => {
27
+ var _a;
28
+ if (!containerRef.current || disabled)
29
+ return;
30
+ const scrollTop = containerRef.current.scrollTop;
31
+ const index = Math.round(scrollTop / itemHeight);
32
+ const targetOption = column.options[index];
33
+ if (targetOption && targetOption.value !== currentValue && !targetOption.disabled) {
34
+ if (!isControlled) {
35
+ setSelectedValue(targetOption.value);
36
+ }
37
+ (_a = column.onChange) === null || _a === void 0 ? void 0 : _a.call(column, targetOption.value);
38
+ onValueChange(targetOption.value);
39
+ }
40
+ };
41
+ return (jsx("div", { ref: containerRef, onScroll: handleScroll, className: buildClassName('flex-1 h-full overflow-y-auto no-scrollbar snap-y snap-mandatory relative z-10 select-none text-center', disabled && 'pointer-events-none opacity-40'), style: {
42
+ paddingTop: `${paddingY}px`,
43
+ paddingBottom: `${paddingY}px`,
44
+ scrollSnapType: 'y mandatory',
45
+ }, "data-testid": `wheel-column-${column.id}`, children: column.options.map((opt, index) => {
46
+ const isSelected = opt.value === currentValue;
47
+ return (jsx("div", { onClick: () => {
48
+ if (disabled || opt.disabled || !containerRef.current)
49
+ return;
50
+ const targetTop = index * itemHeight;
51
+ if (typeof containerRef.current.scrollTo === 'function') {
52
+ containerRef.current.scrollTo({
53
+ top: targetTop,
54
+ behavior: 'smooth',
55
+ });
56
+ }
57
+ else {
58
+ containerRef.current.scrollTop = targetTop;
59
+ }
60
+ }, className: buildClassName('flex items-center justify-center font-semibold snap-center transition-all duration-150 cursor-pointer', opt.disabled && 'opacity-30 cursor-not-allowed', isSelected
61
+ ? 'text-blue-600 dark:text-blue-400 text-sm font-bold scale-105'
62
+ : 'text-gray-500 dark:text-gray-400 text-xs hover:text-gray-800 dark:hover:text-gray-200'), style: { height: `${itemHeight}px` }, "data-testid": `wheel-item-${column.id}-${opt.value}`, children: opt.label }, `${opt.value}-${index}`));
63
+ }) }));
64
+ }
65
+ function WheelPicker({ columns, height = 200, itemHeight = 40, onChange, disabled = false, containerClass = '', }) {
66
+ const valuesRef = useRef({});
67
+ const handleColumnChange = (columnId, value) => {
68
+ valuesRef.current[columnId] = value;
69
+ onChange === null || onChange === void 0 ? void 0 : onChange({ ...valuesRef.current });
70
+ };
71
+ const highlightTop = (height - itemHeight) / 2;
72
+ return (jsxs("div", { className: buildClassName('w-full bg-white dark:bg-gray-900 border border-[var(--ui-border)] rounded-2xl relative overflow-hidden flex items-center shadow-xs select-none', containerClass), style: { height: `${height}px` }, "data-testid": "wheel-picker", children: [jsx("div", { className: "absolute inset-x-2 rounded-xl bg-gray-100/90 dark:bg-gray-800/90 border border-blue-500/20 dark:border-blue-400/20 z-0 pointer-events-none", style: {
73
+ height: `${itemHeight}px`,
74
+ top: `${highlightTop}px`,
75
+ }, "data-testid": "wheel-highlight-window" }), jsx("div", { className: "absolute top-0 inset-x-0 bg-gradient-to-b from-white via-white/80 dark:from-gray-900 dark:via-gray-900/80 to-transparent pointer-events-none z-20", style: { height: `${highlightTop}px` } }), jsx("div", { className: "absolute bottom-0 inset-x-0 bg-gradient-to-t from-white via-white/80 dark:from-gray-900 dark:via-gray-900/80 to-transparent pointer-events-none z-20", style: { height: `${highlightTop}px` } }), jsx("div", { className: "w-full h-full flex items-center justify-around relative z-10 px-2", children: columns.map((col) => (jsx(SingleWheelColumn, { column: col, itemHeight: itemHeight, height: height, disabled: disabled, onValueChange: (val) => handleColumnChange(col.id, val) }, col.id))) })] }));
76
+ }
77
+ WheelPicker.displayName = 'WheelPicker';
78
+
79
+ export { WheelPicker };
80
+ //# sourceMappingURL=WheelPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WheelPicker.js","sources":["../../../../../src/components/WheelPicker/WheelPicker.tsx"],"sourcesContent":["import React, { useRef, useState, useEffect } from 'react'\nimport type { WheelPickerProps, WheelPickerColumn, WheelPickerOption } from './WheelPicker.types'\nimport { buildClassName } from '../../utils/build-classname'\n\ninterface SingleColumnProps {\n column: WheelPickerColumn\n itemHeight: number\n height: number\n disabled?: boolean\n onValueChange: (val: string | number) => void\n}\n\nfunction SingleWheelColumn({\n column,\n itemHeight,\n height,\n disabled,\n onValueChange,\n}: SingleColumnProps) {\n const containerRef = useRef<HTMLDivElement>(null)\n const [selectedValue, setSelectedValue] = useState<string | number>(\n column.value !== undefined\n ? column.value\n : column.defaultValue !== undefined\n ? column.defaultValue\n : column.options[0]?.value,\n )\n\n const isControlled = column.value !== undefined\n const currentValue = isControlled ? column.value : selectedValue\n\n const selectedIndex = Math.max(\n 0,\n column.options.findIndex((opt) => opt.value === currentValue),\n )\n\n const paddingY = (height - itemHeight) / 2\n\n // Sync scroll position when active value changes externally\n useEffect(() => {\n if (containerRef.current) {\n const targetScrollTop = selectedIndex * itemHeight\n if (Math.abs(containerRef.current.scrollTop - targetScrollTop) > 2) {\n containerRef.current.scrollTop = targetScrollTop\n }\n }\n }, [selectedIndex, itemHeight])\n\n const handleScroll = () => {\n if (!containerRef.current || disabled) return\n const scrollTop = containerRef.current.scrollTop\n const index = Math.round(scrollTop / itemHeight)\n const targetOption = column.options[index]\n\n if (targetOption && targetOption.value !== currentValue && !targetOption.disabled) {\n if (!isControlled) {\n setSelectedValue(targetOption.value)\n }\n column.onChange?.(targetOption.value)\n onValueChange(targetOption.value)\n }\n }\n\n return (\n <div\n ref={containerRef}\n onScroll={handleScroll}\n className={buildClassName(\n 'flex-1 h-full overflow-y-auto no-scrollbar snap-y snap-mandatory relative z-10 select-none text-center',\n disabled && 'pointer-events-none opacity-40',\n )}\n style={{\n paddingTop: `${paddingY}px`,\n paddingBottom: `${paddingY}px`,\n scrollSnapType: 'y mandatory',\n }}\n data-testid={`wheel-column-${column.id}`}\n >\n {column.options.map((opt: WheelPickerOption, index: number) => {\n const isSelected = opt.value === currentValue\n\n return (\n <div\n key={`${opt.value}-${index}`}\n onClick={() => {\n if (disabled || opt.disabled || !containerRef.current) return\n const targetTop = index * itemHeight\n if (typeof containerRef.current.scrollTo === 'function') {\n containerRef.current.scrollTo({\n top: targetTop,\n behavior: 'smooth',\n })\n } else {\n containerRef.current.scrollTop = targetTop\n }\n }}\n className={buildClassName(\n 'flex items-center justify-center font-semibold snap-center transition-all duration-150 cursor-pointer',\n opt.disabled && 'opacity-30 cursor-not-allowed',\n isSelected\n ? 'text-blue-600 dark:text-blue-400 text-sm font-bold scale-105'\n : 'text-gray-500 dark:text-gray-400 text-xs hover:text-gray-800 dark:hover:text-gray-200',\n )}\n style={{ height: `${itemHeight}px` }}\n data-testid={`wheel-item-${column.id}-${opt.value}`}\n >\n {opt.label}\n </div>\n )\n })}\n </div>\n )\n}\n\nexport function WheelPicker({\n columns,\n height = 200,\n itemHeight = 40,\n onChange,\n disabled = false,\n containerClass = '',\n}: WheelPickerProps) {\n const valuesRef = useRef<Record<string, string | number>>({})\n\n const handleColumnChange = (columnId: string, value: string | number) => {\n valuesRef.current[columnId] = value\n onChange?.({ ...valuesRef.current })\n }\n\n const highlightTop = (height - itemHeight) / 2\n\n return (\n <div\n className={buildClassName(\n 'w-full bg-white dark:bg-gray-900 border border-[var(--ui-border)] rounded-2xl relative overflow-hidden flex items-center shadow-xs select-none',\n containerClass,\n )}\n style={{ height: `${height}px` }}\n data-testid=\"wheel-picker\"\n >\n {/* Center Highlight Selection Window */}\n <div\n className=\"absolute inset-x-2 rounded-xl bg-gray-100/90 dark:bg-gray-800/90 border border-blue-500/20 dark:border-blue-400/20 z-0 pointer-events-none\"\n style={{\n height: `${itemHeight}px`,\n top: `${highlightTop}px`,\n }}\n data-testid=\"wheel-highlight-window\"\n />\n\n {/* Top Gradient Blur Mask */}\n <div\n className=\"absolute top-0 inset-x-0 bg-gradient-to-b from-white via-white/80 dark:from-gray-900 dark:via-gray-900/80 to-transparent pointer-events-none z-20\"\n style={{ height: `${highlightTop}px` }}\n />\n\n {/* Bottom Gradient Blur Mask */}\n <div\n className=\"absolute bottom-0 inset-x-0 bg-gradient-to-t from-white via-white/80 dark:from-gray-900 dark:via-gray-900/80 to-transparent pointer-events-none z-20\"\n style={{ height: `${highlightTop}px` }}\n />\n\n {/* Wheel Columns Container */}\n <div className=\"w-full h-full flex items-center justify-around relative z-10 px-2\">\n {columns.map((col) => (\n <SingleWheelColumn\n key={col.id}\n column={col}\n itemHeight={itemHeight}\n height={height}\n disabled={disabled}\n onValueChange={(val) => handleColumnChange(col.id, val)}\n />\n ))}\n </div>\n </div>\n )\n}\n\nWheelPicker.displayName = 'WheelPicker'\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -0,0 +1,287 @@
1
+ const GAP_MAP = {
2
+ none: 'gap-0',
3
+ xs: 'gap-1',
4
+ sm: 'gap-2',
5
+ md: 'gap-4',
6
+ lg: 'gap-6',
7
+ xl: 'gap-8',
8
+ '2xl': 'gap-12',
9
+ };
10
+ const GAP_X_MAP = {
11
+ none: 'gap-x-0',
12
+ xs: 'gap-x-1',
13
+ sm: 'gap-x-2',
14
+ md: 'gap-x-4',
15
+ lg: 'gap-x-6',
16
+ xl: 'gap-x-8',
17
+ '2xl': 'gap-x-12',
18
+ };
19
+ const GAP_Y_MAP = {
20
+ none: 'gap-y-0',
21
+ xs: 'gap-y-1',
22
+ sm: 'gap-y-2',
23
+ md: 'gap-y-4',
24
+ lg: 'gap-y-6',
25
+ xl: 'gap-y-8',
26
+ '2xl': 'gap-y-12',
27
+ };
28
+ const ALIGN_MAP = {
29
+ start: 'items-start',
30
+ center: 'items-center',
31
+ end: 'items-end',
32
+ baseline: 'items-baseline',
33
+ stretch: 'items-stretch',
34
+ };
35
+ const JUSTIFY_MAP = {
36
+ start: 'justify-start',
37
+ center: 'justify-center',
38
+ end: 'justify-end',
39
+ between: 'justify-between',
40
+ around: 'justify-around',
41
+ evenly: 'justify-evenly',
42
+ };
43
+ const DIRECTION_MAP = {
44
+ row: 'flex-row',
45
+ 'row-reverse': 'flex-row-reverse',
46
+ col: 'flex-col',
47
+ 'col-reverse': 'flex-col-reverse',
48
+ };
49
+ const WRAP_MAP = {
50
+ wrap: 'flex-wrap',
51
+ nowrap: 'flex-nowrap',
52
+ 'wrap-reverse': 'flex-wrap-reverse',
53
+ };
54
+ /**
55
+ * Resolves the `order` prop to inline styles when it's a raw number.
56
+ *
57
+ * `'first'` / `'last'` map to the static `order-first`/`order-last` Tailwind
58
+ * utilities (safe, since those exact class names are literal elsewhere).
59
+ * Arbitrary numeric orders can't be expressed as a safe literal class (the
60
+ * value is unbounded), so they're applied as an inline `order` style instead
61
+ * — that works regardless of what the consuming app's Tailwind build scans.
62
+ */
63
+ const resolveOrderStyle = (order) => typeof order === 'number' ? { order } : undefined;
64
+ const resolveOrderClassName = (order) => {
65
+ if (order === 'first')
66
+ return '-order-1';
67
+ if (order === 'last')
68
+ return 'order-last';
69
+ return undefined;
70
+ };
71
+ /** Width-fraction span classes used by `Flex.Item` (unprefixed / base breakpoint). */
72
+ const FLEX_SPAN_MAP = {
73
+ 1: 'w-1/12 flex-none',
74
+ 2: 'w-2/12 flex-none',
75
+ 3: 'w-3/12 flex-none',
76
+ 4: 'w-4/12 flex-none',
77
+ 5: 'w-5/12 flex-none',
78
+ 6: 'w-6/12 flex-none',
79
+ 7: 'w-7/12 flex-none',
80
+ 8: 'w-8/12 flex-none',
81
+ 9: 'w-9/12 flex-none',
82
+ 10: 'w-10/12 flex-none',
83
+ 11: 'w-11/12 flex-none',
84
+ 12: 'w-full flex-none',
85
+ auto: 'w-auto flex-none',
86
+ full: 'w-full flex-none',
87
+ };
88
+ const FLEX_SM_SPAN_MAP = {
89
+ 1: 'sm:w-1/12',
90
+ 2: 'sm:w-2/12',
91
+ 3: 'sm:w-3/12',
92
+ 4: 'sm:w-4/12',
93
+ 5: 'sm:w-5/12',
94
+ 6: 'sm:w-6/12',
95
+ 7: 'sm:w-7/12',
96
+ 8: 'sm:w-8/12',
97
+ 9: 'sm:w-9/12',
98
+ 10: 'sm:w-10/12',
99
+ 11: 'sm:w-11/12',
100
+ 12: 'sm:w-full',
101
+ auto: 'sm:w-auto',
102
+ full: 'sm:w-full',
103
+ };
104
+ const FLEX_MD_SPAN_MAP = {
105
+ 1: 'md:w-1/12',
106
+ 2: 'md:w-2/12',
107
+ 3: 'md:w-3/12',
108
+ 4: 'md:w-4/12',
109
+ 5: 'md:w-5/12',
110
+ 6: 'md:w-6/12',
111
+ 7: 'md:w-7/12',
112
+ 8: 'md:w-8/12',
113
+ 9: 'md:w-9/12',
114
+ 10: 'md:w-10/12',
115
+ 11: 'md:w-11/12',
116
+ 12: 'md:w-full',
117
+ auto: 'md:w-auto',
118
+ full: 'md:w-full',
119
+ };
120
+ const FLEX_LG_SPAN_MAP = {
121
+ 1: 'lg:w-1/12',
122
+ 2: 'lg:w-2/12',
123
+ 3: 'lg:w-3/12',
124
+ 4: 'lg:w-4/12',
125
+ 5: 'lg:w-5/12',
126
+ 6: 'lg:w-6/12',
127
+ 7: 'lg:w-7/12',
128
+ 8: 'lg:w-8/12',
129
+ 9: 'lg:w-9/12',
130
+ 10: 'lg:w-10/12',
131
+ 11: 'lg:w-11/12',
132
+ 12: 'lg:w-full',
133
+ auto: 'lg:w-auto',
134
+ full: 'lg:w-full',
135
+ };
136
+ const FLEX_XL_SPAN_MAP = {
137
+ 1: 'xl:w-1/12',
138
+ 2: 'xl:w-2/12',
139
+ 3: 'xl:w-3/12',
140
+ 4: 'xl:w-4/12',
141
+ 5: 'xl:w-5/12',
142
+ 6: 'xl:w-6/12',
143
+ 7: 'xl:w-7/12',
144
+ 8: 'xl:w-8/12',
145
+ 9: 'xl:w-9/12',
146
+ 10: 'xl:w-10/12',
147
+ 11: 'xl:w-11/12',
148
+ 12: 'xl:w-full',
149
+ auto: 'xl:w-auto',
150
+ full: 'xl:w-full',
151
+ };
152
+ const FLEX_XXL_SPAN_MAP = {
153
+ 1: '2xl:w-1/12',
154
+ 2: '2xl:w-2/12',
155
+ 3: '2xl:w-3/12',
156
+ 4: '2xl:w-4/12',
157
+ 5: '2xl:w-5/12',
158
+ 6: '2xl:w-6/12',
159
+ 7: '2xl:w-7/12',
160
+ 8: '2xl:w-8/12',
161
+ 9: '2xl:w-9/12',
162
+ 10: '2xl:w-10/12',
163
+ 11: '2xl:w-11/12',
164
+ 12: '2xl:w-full',
165
+ auto: '2xl:w-auto',
166
+ full: '2xl:w-full',
167
+ };
168
+ /** `col-span-*` classes used by `Grid.Col` (unprefixed / base breakpoint). */
169
+ const GRID_SPAN_MAP = {
170
+ 1: 'col-span-1',
171
+ 2: 'col-span-2',
172
+ 3: 'col-span-3',
173
+ 4: 'col-span-4',
174
+ 5: 'col-span-5',
175
+ 6: 'col-span-6',
176
+ 7: 'col-span-7',
177
+ 8: 'col-span-8',
178
+ 9: 'col-span-9',
179
+ 10: 'col-span-10',
180
+ 11: 'col-span-11',
181
+ 12: 'col-span-12',
182
+ auto: 'col-auto',
183
+ full: 'col-span-full',
184
+ };
185
+ const GRID_SM_SPAN_MAP = {
186
+ 1: 'sm:col-span-1',
187
+ 2: 'sm:col-span-2',
188
+ 3: 'sm:col-span-3',
189
+ 4: 'sm:col-span-4',
190
+ 5: 'sm:col-span-5',
191
+ 6: 'sm:col-span-6',
192
+ 7: 'sm:col-span-7',
193
+ 8: 'sm:col-span-8',
194
+ 9: 'sm:col-span-9',
195
+ 10: 'sm:col-span-10',
196
+ 11: 'sm:col-span-11',
197
+ 12: 'sm:col-span-12',
198
+ auto: 'sm:col-auto',
199
+ full: 'sm:col-span-full',
200
+ };
201
+ const GRID_MD_SPAN_MAP = {
202
+ 1: 'md:col-span-1',
203
+ 2: 'md:col-span-2',
204
+ 3: 'md:col-span-3',
205
+ 4: 'md:col-span-4',
206
+ 5: 'md:col-span-5',
207
+ 6: 'md:col-span-6',
208
+ 7: 'md:col-span-7',
209
+ 8: 'md:col-span-8',
210
+ 9: 'md:col-span-9',
211
+ 10: 'md:col-span-10',
212
+ 11: 'md:col-span-11',
213
+ 12: 'md:col-span-12',
214
+ auto: 'md:col-auto',
215
+ full: 'md:col-span-full',
216
+ };
217
+ const GRID_LG_SPAN_MAP = {
218
+ 1: 'lg:col-span-1',
219
+ 2: 'lg:col-span-2',
220
+ 3: 'lg:col-span-3',
221
+ 4: 'lg:col-span-4',
222
+ 5: 'lg:col-span-5',
223
+ 6: 'lg:col-span-6',
224
+ 7: 'lg:col-span-7',
225
+ 8: 'lg:col-span-8',
226
+ 9: 'lg:col-span-9',
227
+ 10: 'lg:col-span-10',
228
+ 11: 'lg:col-span-11',
229
+ 12: 'lg:col-span-12',
230
+ auto: 'lg:col-auto',
231
+ full: 'lg:col-span-full',
232
+ };
233
+ const GRID_XL_SPAN_MAP = {
234
+ 1: 'xl:col-span-1',
235
+ 2: 'xl:col-span-2',
236
+ 3: 'xl:col-span-3',
237
+ 4: 'xl:col-span-4',
238
+ 5: 'xl:col-span-5',
239
+ 6: 'xl:col-span-6',
240
+ 7: 'xl:col-span-7',
241
+ 8: 'xl:col-span-8',
242
+ 9: 'xl:col-span-9',
243
+ 10: 'xl:col-span-10',
244
+ 11: 'xl:col-span-11',
245
+ 12: 'xl:col-span-12',
246
+ auto: 'xl:col-auto',
247
+ full: 'xl:col-span-full',
248
+ };
249
+ const GRID_XXL_SPAN_MAP = {
250
+ 1: '2xl:col-span-1',
251
+ 2: '2xl:col-span-2',
252
+ 3: '2xl:col-span-3',
253
+ 4: '2xl:col-span-4',
254
+ 5: '2xl:col-span-5',
255
+ 6: '2xl:col-span-6',
256
+ 7: '2xl:col-span-7',
257
+ 8: '2xl:col-span-8',
258
+ 9: '2xl:col-span-9',
259
+ 10: '2xl:col-span-10',
260
+ 11: '2xl:col-span-11',
261
+ 12: '2xl:col-span-12',
262
+ auto: '2xl:col-auto',
263
+ full: '2xl:col-span-full',
264
+ };
265
+ /**
266
+ * Preset track-count classes for `Grid`'s `cols` prop. Each preset
267
+ * progressively reveals more columns at wider breakpoints so a grid is
268
+ * responsive out of the box without the caller specifying per-item spans.
269
+ */
270
+ const GRID_COLS_MAP = {
271
+ 1: 'grid-cols-1',
272
+ 2: 'grid-cols-1 sm:grid-cols-2',
273
+ 3: 'grid-cols-1 sm:grid-cols-2 md:grid-cols-3',
274
+ 4: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-4',
275
+ 5: 'grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5',
276
+ 6: 'grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-6',
277
+ 7: 'grid-cols-1 sm:grid-cols-2 md:grid-cols-4 lg:grid-cols-7',
278
+ 8: 'grid-cols-1 sm:grid-cols-2 md:grid-cols-4 lg:grid-cols-8',
279
+ 9: 'grid-cols-1 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-9',
280
+ 10: 'grid-cols-1 sm:grid-cols-2 md:grid-cols-5 lg:grid-cols-10',
281
+ 11: 'grid-cols-1 sm:grid-cols-3 md:grid-cols-6 lg:grid-cols-11',
282
+ 12: 'grid-cols-12',
283
+ auto: 'grid-cols-none auto-cols-auto',
284
+ };
285
+
286
+ export { ALIGN_MAP, DIRECTION_MAP, FLEX_LG_SPAN_MAP, FLEX_MD_SPAN_MAP, FLEX_SM_SPAN_MAP, FLEX_SPAN_MAP, FLEX_XL_SPAN_MAP, FLEX_XXL_SPAN_MAP, GAP_MAP, GAP_X_MAP, GAP_Y_MAP, GRID_COLS_MAP, GRID_LG_SPAN_MAP, GRID_MD_SPAN_MAP, GRID_SM_SPAN_MAP, GRID_SPAN_MAP, GRID_XL_SPAN_MAP, GRID_XXL_SPAN_MAP, JUSTIFY_MAP, WRAP_MAP, resolveOrderClassName, resolveOrderStyle };
287
+ //# sourceMappingURL=common-responsive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-responsive.js","sources":["../../../../src/components/common-responsive.ts"],"sourcesContent":["import type { CSSProperties } from 'react'\n\n/**\n * Shared class-name lookup tables for `Flex`/`Grid` (and their `.Item`/`.Col`\n * sub-components).\n *\n * These are intentionally plain object literals with fully spelled-out class\n * names (e.g. `'sm:col-span-6'`) rather than strings built with template\n * interpolation (e.g. `` `sm:col-span-${n}` ``). Tailwind's JIT compiler\n * discovers classes by statically scanning file text for literal substrings —\n * it does not execute this code — so any class name assembled at runtime\n * would never be generated into the final stylesheet. Keep every entry here\n * fully literal.\n */\n\nexport type ResponsiveGap = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'\nexport type ResponsiveAlign = 'start' | 'center' | 'end' | 'baseline' | 'stretch'\nexport type ResponsiveJustify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly'\nexport type ResponsiveDirection = 'row' | 'row-reverse' | 'col' | 'col-reverse'\nexport type ResponsiveWrap = 'wrap' | 'nowrap' | 'wrap-reverse'\nexport type ResponsiveOrder = 'first' | 'last' | number\n\nexport const GAP_MAP: Record<ResponsiveGap, string> = {\n none: 'gap-0',\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-4',\n lg: 'gap-6',\n xl: 'gap-8',\n '2xl': 'gap-12',\n}\n\nexport const GAP_X_MAP: Record<ResponsiveGap, string> = {\n none: 'gap-x-0',\n xs: 'gap-x-1',\n sm: 'gap-x-2',\n md: 'gap-x-4',\n lg: 'gap-x-6',\n xl: 'gap-x-8',\n '2xl': 'gap-x-12',\n}\n\nexport const GAP_Y_MAP: Record<ResponsiveGap, string> = {\n none: 'gap-y-0',\n xs: 'gap-y-1',\n sm: 'gap-y-2',\n md: 'gap-y-4',\n lg: 'gap-y-6',\n xl: 'gap-y-8',\n '2xl': 'gap-y-12',\n}\n\nexport const ALIGN_MAP: Record<ResponsiveAlign, string> = {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n baseline: 'items-baseline',\n stretch: 'items-stretch',\n}\n\nexport const JUSTIFY_MAP: Record<ResponsiveJustify, string> = {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n}\n\nexport const DIRECTION_MAP: Record<ResponsiveDirection, string> = {\n row: 'flex-row',\n 'row-reverse': 'flex-row-reverse',\n col: 'flex-col',\n 'col-reverse': 'flex-col-reverse',\n}\n\nexport const WRAP_MAP: Record<ResponsiveWrap, string> = {\n wrap: 'flex-wrap',\n nowrap: 'flex-nowrap',\n 'wrap-reverse': 'flex-wrap-reverse',\n}\n\n/**\n * Resolves the `order` prop to inline styles when it's a raw number.\n *\n * `'first'` / `'last'` map to the static `order-first`/`order-last` Tailwind\n * utilities (safe, since those exact class names are literal elsewhere).\n * Arbitrary numeric orders can't be expressed as a safe literal class (the\n * value is unbounded), so they're applied as an inline `order` style instead\n * — that works regardless of what the consuming app's Tailwind build scans.\n */\nexport const resolveOrderStyle = (order?: ResponsiveOrder): CSSProperties | undefined =>\n typeof order === 'number' ? { order } : undefined\n\nexport const resolveOrderClassName = (order?: ResponsiveOrder): string | undefined => {\n if (order === 'first') return '-order-1'\n if (order === 'last') return 'order-last'\n return undefined\n}\n\n/** Width-fraction span classes used by `Flex.Item` (unprefixed / base breakpoint). */\nexport const FLEX_SPAN_MAP: Record<string, string> = {\n 1: 'w-1/12 flex-none',\n 2: 'w-2/12 flex-none',\n 3: 'w-3/12 flex-none',\n 4: 'w-4/12 flex-none',\n 5: 'w-5/12 flex-none',\n 6: 'w-6/12 flex-none',\n 7: 'w-7/12 flex-none',\n 8: 'w-8/12 flex-none',\n 9: 'w-9/12 flex-none',\n 10: 'w-10/12 flex-none',\n 11: 'w-11/12 flex-none',\n 12: 'w-full flex-none',\n auto: 'w-auto flex-none',\n full: 'w-full flex-none',\n}\n\nexport const FLEX_SM_SPAN_MAP: Record<string, string> = {\n 1: 'sm:w-1/12',\n 2: 'sm:w-2/12',\n 3: 'sm:w-3/12',\n 4: 'sm:w-4/12',\n 5: 'sm:w-5/12',\n 6: 'sm:w-6/12',\n 7: 'sm:w-7/12',\n 8: 'sm:w-8/12',\n 9: 'sm:w-9/12',\n 10: 'sm:w-10/12',\n 11: 'sm:w-11/12',\n 12: 'sm:w-full',\n auto: 'sm:w-auto',\n full: 'sm:w-full',\n}\n\nexport const FLEX_MD_SPAN_MAP: Record<string, string> = {\n 1: 'md:w-1/12',\n 2: 'md:w-2/12',\n 3: 'md:w-3/12',\n 4: 'md:w-4/12',\n 5: 'md:w-5/12',\n 6: 'md:w-6/12',\n 7: 'md:w-7/12',\n 8: 'md:w-8/12',\n 9: 'md:w-9/12',\n 10: 'md:w-10/12',\n 11: 'md:w-11/12',\n 12: 'md:w-full',\n auto: 'md:w-auto',\n full: 'md:w-full',\n}\n\nexport const FLEX_LG_SPAN_MAP: Record<string, string> = {\n 1: 'lg:w-1/12',\n 2: 'lg:w-2/12',\n 3: 'lg:w-3/12',\n 4: 'lg:w-4/12',\n 5: 'lg:w-5/12',\n 6: 'lg:w-6/12',\n 7: 'lg:w-7/12',\n 8: 'lg:w-8/12',\n 9: 'lg:w-9/12',\n 10: 'lg:w-10/12',\n 11: 'lg:w-11/12',\n 12: 'lg:w-full',\n auto: 'lg:w-auto',\n full: 'lg:w-full',\n}\n\nexport const FLEX_XL_SPAN_MAP: Record<string, string> = {\n 1: 'xl:w-1/12',\n 2: 'xl:w-2/12',\n 3: 'xl:w-3/12',\n 4: 'xl:w-4/12',\n 5: 'xl:w-5/12',\n 6: 'xl:w-6/12',\n 7: 'xl:w-7/12',\n 8: 'xl:w-8/12',\n 9: 'xl:w-9/12',\n 10: 'xl:w-10/12',\n 11: 'xl:w-11/12',\n 12: 'xl:w-full',\n auto: 'xl:w-auto',\n full: 'xl:w-full',\n}\n\nexport const FLEX_XXL_SPAN_MAP: Record<string, string> = {\n 1: '2xl:w-1/12',\n 2: '2xl:w-2/12',\n 3: '2xl:w-3/12',\n 4: '2xl:w-4/12',\n 5: '2xl:w-5/12',\n 6: '2xl:w-6/12',\n 7: '2xl:w-7/12',\n 8: '2xl:w-8/12',\n 9: '2xl:w-9/12',\n 10: '2xl:w-10/12',\n 11: '2xl:w-11/12',\n 12: '2xl:w-full',\n auto: '2xl:w-auto',\n full: '2xl:w-full',\n}\n\n/** `col-span-*` classes used by `Grid.Col` (unprefixed / base breakpoint). */\nexport const GRID_SPAN_MAP: Record<string, string> = {\n 1: 'col-span-1',\n 2: 'col-span-2',\n 3: 'col-span-3',\n 4: 'col-span-4',\n 5: 'col-span-5',\n 6: 'col-span-6',\n 7: 'col-span-7',\n 8: 'col-span-8',\n 9: 'col-span-9',\n 10: 'col-span-10',\n 11: 'col-span-11',\n 12: 'col-span-12',\n auto: 'col-auto',\n full: 'col-span-full',\n}\n\nexport const GRID_SM_SPAN_MAP: Record<string, string> = {\n 1: 'sm:col-span-1',\n 2: 'sm:col-span-2',\n 3: 'sm:col-span-3',\n 4: 'sm:col-span-4',\n 5: 'sm:col-span-5',\n 6: 'sm:col-span-6',\n 7: 'sm:col-span-7',\n 8: 'sm:col-span-8',\n 9: 'sm:col-span-9',\n 10: 'sm:col-span-10',\n 11: 'sm:col-span-11',\n 12: 'sm:col-span-12',\n auto: 'sm:col-auto',\n full: 'sm:col-span-full',\n}\n\nexport const GRID_MD_SPAN_MAP: Record<string, string> = {\n 1: 'md:col-span-1',\n 2: 'md:col-span-2',\n 3: 'md:col-span-3',\n 4: 'md:col-span-4',\n 5: 'md:col-span-5',\n 6: 'md:col-span-6',\n 7: 'md:col-span-7',\n 8: 'md:col-span-8',\n 9: 'md:col-span-9',\n 10: 'md:col-span-10',\n 11: 'md:col-span-11',\n 12: 'md:col-span-12',\n auto: 'md:col-auto',\n full: 'md:col-span-full',\n}\n\nexport const GRID_LG_SPAN_MAP: Record<string, string> = {\n 1: 'lg:col-span-1',\n 2: 'lg:col-span-2',\n 3: 'lg:col-span-3',\n 4: 'lg:col-span-4',\n 5: 'lg:col-span-5',\n 6: 'lg:col-span-6',\n 7: 'lg:col-span-7',\n 8: 'lg:col-span-8',\n 9: 'lg:col-span-9',\n 10: 'lg:col-span-10',\n 11: 'lg:col-span-11',\n 12: 'lg:col-span-12',\n auto: 'lg:col-auto',\n full: 'lg:col-span-full',\n}\n\nexport const GRID_XL_SPAN_MAP: Record<string, string> = {\n 1: 'xl:col-span-1',\n 2: 'xl:col-span-2',\n 3: 'xl:col-span-3',\n 4: 'xl:col-span-4',\n 5: 'xl:col-span-5',\n 6: 'xl:col-span-6',\n 7: 'xl:col-span-7',\n 8: 'xl:col-span-8',\n 9: 'xl:col-span-9',\n 10: 'xl:col-span-10',\n 11: 'xl:col-span-11',\n 12: 'xl:col-span-12',\n auto: 'xl:col-auto',\n full: 'xl:col-span-full',\n}\n\nexport const GRID_XXL_SPAN_MAP: Record<string, string> = {\n 1: '2xl:col-span-1',\n 2: '2xl:col-span-2',\n 3: '2xl:col-span-3',\n 4: '2xl:col-span-4',\n 5: '2xl:col-span-5',\n 6: '2xl:col-span-6',\n 7: '2xl:col-span-7',\n 8: '2xl:col-span-8',\n 9: '2xl:col-span-9',\n 10: '2xl:col-span-10',\n 11: '2xl:col-span-11',\n 12: '2xl:col-span-12',\n auto: '2xl:col-auto',\n full: '2xl:col-span-full',\n}\n\n/**\n * Preset track-count classes for `Grid`'s `cols` prop. Each preset\n * progressively reveals more columns at wider breakpoints so a grid is\n * responsive out of the box without the caller specifying per-item spans.\n */\nexport const GRID_COLS_MAP: Record<string, string> = {\n 1: 'grid-cols-1',\n 2: 'grid-cols-1 sm:grid-cols-2',\n 3: 'grid-cols-1 sm:grid-cols-2 md:grid-cols-3',\n 4: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-4',\n 5: 'grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5',\n 6: 'grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-6',\n 7: 'grid-cols-1 sm:grid-cols-2 md:grid-cols-4 lg:grid-cols-7',\n 8: 'grid-cols-1 sm:grid-cols-2 md:grid-cols-4 lg:grid-cols-8',\n 9: 'grid-cols-1 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-9',\n 10: 'grid-cols-1 sm:grid-cols-2 md:grid-cols-5 lg:grid-cols-10',\n 11: 'grid-cols-1 sm:grid-cols-3 md:grid-cols-6 lg:grid-cols-11',\n 12: 'grid-cols-12',\n auto: 'grid-cols-none auto-cols-auto',\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { useState, useEffect, useRef, useCallback } from 'react';
2
+
3
+ const useDebounce = (value, delay) => {
4
+ const [debouncedValue, setDebouncedValue] = useState(value);
5
+ useEffect(() => {
6
+ const handler = setTimeout(() => {
7
+ setDebouncedValue(value);
8
+ }, delay);
9
+ // Cancel the timeout if value or delay changes
10
+ return () => {
11
+ clearTimeout(handler);
12
+ };
13
+ }, [value, delay]);
14
+ return debouncedValue;
15
+ };
16
+ const useDebounceFn = (fn, ms) => {
17
+ const timeout = useRef(null);
18
+ useEffect(() => {
19
+ return () => clearTimeout(timeout.current);
20
+ }, []);
21
+ return useCallback((...args) => {
22
+ clearTimeout(timeout.current);
23
+ timeout.current = setTimeout(() => fn(...args), ms);
24
+ }, [fn, ms]);
25
+ };
26
+
27
+ export { useDebounce, useDebounceFn };
28
+ //# sourceMappingURL=use-debounce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-debounce.js","sources":["../../../../src/hooks/use-debounce.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react'\n\nexport const useDebounce = <T,>(value: T, delay: number): T => {\n const [debouncedValue, setDebouncedValue] = useState<T>(value)\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n\n // Cancel the timeout if value or delay changes\n return () => {\n clearTimeout(handler)\n }\n }, [value, delay])\n\n return debouncedValue\n}\n\nexport const useDebounceFn = (fn: (...args: any[]) => void, ms: number) => {\n const timeout = useRef<any>(null)\n\n useEffect(() => {\n return () => clearTimeout(timeout.current)\n }, [])\n\n return useCallback(\n (...args: any[]) => {\n clearTimeout(timeout.current)\n timeout.current = setTimeout(() => fn(...args), ms)\n },\n [fn, ms],\n )\n}\n"],"names":[],"mappings":";;MAEa,WAAW,GAAG,CAAK,KAAQ,EAAE,KAAa,KAAO;IAC5D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAI,KAAK,CAAC;IAE9D,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;YAC9B,iBAAiB,CAAC,KAAK,CAAC;QAC1B,CAAC,EAAE,KAAK,CAAC;;AAGT,QAAA,OAAO,MAAK;YACV,YAAY,CAAC,OAAO,CAAC;AACvB,QAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAElB,IAAA,OAAO,cAAc;AACvB;MAEa,aAAa,GAAG,CAAC,EAA4B,EAAE,EAAU,KAAI;AACxE,IAAA,MAAM,OAAO,GAAG,MAAM,CAAM,IAAI,CAAC;IAEjC,SAAS,CAAC,MAAK;QACb,OAAO,MAAM,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;IAC5C,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,OAAO,WAAW,CAChB,CAAC,GAAG,IAAW,KAAI;AACjB,QAAA,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;AAC7B,QAAA,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AACrD,IAAA,CAAC,EACD,CAAC,EAAE,EAAE,EAAE,CAAC,CACT;AACH;;;;"}
@@ -0,0 +1,22 @@
1
+ import { useState, useEffect } from 'react';
2
+
3
+ const useIsMobile = () => {
4
+ const [isMobile, setIsMobile] = useState(false);
5
+ useEffect(() => {
6
+ const detect = () => {
7
+ const width = window.innerWidth;
8
+ const isTouch = (typeof navigator !== 'undefined' && navigator.maxTouchPoints > 1) ||
9
+ (typeof window !== 'undefined' &&
10
+ typeof window.matchMedia === 'function' &&
11
+ window.matchMedia('(pointer: coarse)').matches);
12
+ setIsMobile(width < 600 && isTouch);
13
+ };
14
+ detect();
15
+ window.addEventListener('resize', detect);
16
+ return () => window.removeEventListener('resize', detect);
17
+ }, []);
18
+ return isMobile;
19
+ };
20
+
21
+ export { useIsMobile };
22
+ //# sourceMappingURL=use-is-mobile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-is-mobile.js","sources":["../../../../src/hooks/use-is-mobile.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\n\nexport const useIsMobile = () => {\n const [isMobile, setIsMobile] = useState(false)\n\n useEffect(() => {\n const detect = () => {\n const width = window.innerWidth\n\n const isTouch =\n (typeof navigator !== 'undefined' && navigator.maxTouchPoints > 1) ||\n (typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(pointer: coarse)').matches)\n\n setIsMobile(width < 600 && isTouch)\n }\n\n detect()\n window.addEventListener('resize', detect)\n return () => window.removeEventListener('resize', detect)\n }, [])\n\n return isMobile\n}\n"],"names":[],"mappings":";;AAEO,MAAM,WAAW,GAAG,MAAK;IAC9B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAE/C,SAAS,CAAC,MAAK;QACb,MAAM,MAAM,GAAG,MAAK;AAClB,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU;AAE/B,YAAA,MAAM,OAAO,GACX,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,cAAc,GAAG,CAAC;iBAChE,OAAO,MAAM,KAAK,WAAW;AAC5B,oBAAA,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU;oBACvC,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC;AAEnD,YAAA,WAAW,CAAC,KAAK,GAAG,GAAG,IAAI,OAAO,CAAC;AACrC,QAAA,CAAC;AAED,QAAA,MAAM,EAAE;AACR,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC;QACzC,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3D,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,OAAO,QAAQ;AACjB;;;;"}
@@ -0,0 +1,11 @@
1
+ import { useIsMobile } from './use-is-mobile.js';
2
+ import { useIsTablet } from './use-is-tablet.js';
3
+
4
+ const useIsTabletOrMobile = () => {
5
+ const isMobile = useIsMobile();
6
+ const isTablet = useIsTablet();
7
+ return isMobile || isTablet;
8
+ };
9
+
10
+ export { useIsTabletOrMobile };
11
+ //# sourceMappingURL=use-is-tablet-or-mobile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-is-tablet-or-mobile.js","sources":["../../../../src/hooks/use-is-tablet-or-mobile.tsx"],"sourcesContent":["import { useIsMobile } from './use-is-mobile'\nimport { useIsTablet } from './use-is-tablet'\n\nexport const useIsTabletOrMobile = () => {\n const isMobile = useIsMobile()\n const isTablet = useIsTablet()\n\n return isMobile || isTablet\n}\n"],"names":[],"mappings":";;;AAGO,MAAM,mBAAmB,GAAG,MAAK;AACtC,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE;AAC9B,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE;IAE9B,OAAO,QAAQ,IAAI,QAAQ;AAC7B;;;;"}
@@ -0,0 +1,19 @@
1
+ import { useState, useEffect } from 'react';
2
+
3
+ const useIsTablet = () => {
4
+ const [isTablet, setIsTablet] = useState(false);
5
+ useEffect(() => {
6
+ const detect = () => {
7
+ const width = window.innerWidth;
8
+ const isTouch = navigator.maxTouchPoints > 1 || window.matchMedia('(pointer: coarse)').matches;
9
+ setIsTablet(width >= 600 && width <= 1024 && isTouch);
10
+ };
11
+ detect();
12
+ window.addEventListener('resize', detect);
13
+ return () => window.removeEventListener('resize', detect);
14
+ }, []);
15
+ return isTablet;
16
+ };
17
+
18
+ export { useIsTablet };
19
+ //# sourceMappingURL=use-is-tablet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-is-tablet.js","sources":["../../../../src/hooks/use-is-tablet.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\n\nexport const useIsTablet = () => {\n const [isTablet, setIsTablet] = useState(false)\n\n useEffect(() => {\n const detect = () => {\n const width = window.innerWidth\n\n const isTouch = navigator.maxTouchPoints > 1 || window.matchMedia('(pointer: coarse)').matches\n\n setIsTablet(width >= 600 && width <= 1024 && isTouch)\n }\n\n detect()\n window.addEventListener('resize', detect)\n return () => window.removeEventListener('resize', detect)\n }, [])\n\n return isTablet\n}\n"],"names":[],"mappings":";;AAEO,MAAM,WAAW,GAAG,MAAK;IAC9B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAE/C,SAAS,CAAC,MAAK;QACb,MAAM,MAAM,GAAG,MAAK;AAClB,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU;AAE/B,YAAA,MAAM,OAAO,GAAG,SAAS,CAAC,cAAc,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,OAAO;YAE9F,WAAW,CAAC,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC;AACvD,QAAA,CAAC;AAED,QAAA,MAAM,EAAE;AACR,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC;QACzC,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3D,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,OAAO,QAAQ;AACjB;;;;"}
@@ -0,0 +1,67 @@
1
+ export { Accordion } from './components/Accordion/Accordion.js';
2
+ export { ActionSheet } from './components/ActionSheet/ActionSheet.js';
3
+ export { Alert } from './components/Alert/Alert.js';
4
+ export { Badge } from './components/Badge/Badge.js';
5
+ export { Banner } from './components/Banner/Banner.js';
6
+ export { BodyText } from './components/BodyText/BodyText.js';
7
+ export { BottomNavigation } from './components/BottomNavigation/BottomNavigation.js';
8
+ export { Breadcrumb } from './components/Breadcrumb/Breadcrumb.js';
9
+ export { Button } from './components/Button/Button.js';
10
+ export { ButtonGroup } from './components/ButtonGroup/ButtonGroup.js';
11
+ export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardMedia, CardTitle } from './components/Card/Card.js';
12
+ export { Checkbox } from './components/Checkbox/Checkbox.js';
13
+ export { CheckboxGroup } from './components/CheckboxGroup/CheckboxGroup.js';
14
+ export { DataTable } from './components/DataTable/DataTable.js';
15
+ export { nextSortDirection, updateSortQuery, useRowSelection } from './components/DataTable/DataTable.utils.js';
16
+ export { SortIconMap, getSortIcon } from './components/DataTable/DataTable.icons.js';
17
+ export { DetailedInformation } from './components/DetailedInformation/DetailedInformation.js';
18
+ export { Dot } from './components/Dot/index.js';
19
+ export { Drawer } from './components/Drawer/Drawer.js';
20
+ export { Dropdown } from './components/Dropdown/Dropdown.js';
21
+ export { EmptyState } from './components/EmptyState/index.js';
22
+ export { FloatingActionButton } from './components/FloatingActionButton/FloatingActionButton.js';
23
+ export { Flex, FlexItem } from './components/Flex/Flex.js';
24
+ export { Grid, GridCol } from './components/Grid/Grid.js';
25
+ export { HeadingText } from './components/HeadingText/HeadingText.js';
26
+ export { Input, buildInputClass } from './components/Input/Input.js';
27
+ export { Label } from './components/Label/Label.js';
28
+ export { Loader } from './components/Loader/index.js';
29
+ export { Pagination } from './components/Pagination/Pagination.js';
30
+ export { DOTS, usePagination } from './components/Pagination/usePagination.js';
31
+ export { PASSWORD_PLACEHOLDER, PASSWORD_TYPE, PasswordInput, evaluatePasswordStrength } from './components/PasswordInput/PasswordInput.js';
32
+ export { PinInput } from './components/PinInput/PinInput.js';
33
+ export { PullToRefresh } from './components/PullToRefresh/PullToRefresh.js';
34
+ export { Radio } from './components/Radio/Radio.js';
35
+ export { RadioGroup } from './components/RadioGroup/RadioGroup.js';
36
+ export { RadioSwitch } from './components/RadioSwitch/RadioSwitch.js';
37
+ export { RangeInput } from './components/RangeInput/RangeInput.js';
38
+ export { RangeSlider } from './components/RangeSlider/RangeSlider.js';
39
+ export { MobilePicker } from './components/MobilePicker/MobilePicker.js';
40
+ export { WheelPicker } from './components/WheelPicker/WheelPicker.js';
41
+ export { MobileHeader } from './components/MobileHeader/MobileHeader.js';
42
+ export { MobileStepper } from './components/MobileStepper/MobileStepper.js';
43
+ export { DataList } from './components/DataList/DataList.js';
44
+ export { SwipeableRow } from './components/SwipeableRow/SwipeableRow.js';
45
+ export { SelectBox } from './components/SelectBox/SelectBox.js';
46
+ export { Skeleton } from './components/Skeleton/Skeleton.js';
47
+ export { QuantityStepper } from './components/QuantityStepper/QuantityStepper.js';
48
+ export { SegmentedControl } from './components/SegmentedControl/SegmentedControl.js';
49
+ export { StatusPill } from './components/StatusPill/StatusPill.js';
50
+ export { StickyActionBar } from './components/StickyActionBar/StickyActionBar.js';
51
+ export { Tabs } from './components/Tabs/Tabs.js';
52
+ export { SwipeableTabs } from './components/SwipeableTabs/SwipeableTabs.js';
53
+ export { EmptyTableRow, Table, TableBody, TableCell, TableFoot, TableHead, TableHeaderCell, TableRow } from './components/Table/Table.js';
54
+ export { TextContent } from './components/TextContent/TextContent.js';
55
+ export { Textarea } from './components/Textarea/Textarea.js';
56
+ export { ToastProvider, useToast } from './components/Toast/ToastProvider.js';
57
+ export { Toast } from './components/Toast/Toast.js';
58
+ export { VirtualizedDataTable } from './components/VirtualizedDataTable/VirtualizedDataTable.js';
59
+ export { useDebounce, useDebounceFn } from './hooks/use-debounce.js';
60
+ export { useIsMobile } from './hooks/use-is-mobile.js';
61
+ export { useIsTablet } from './hooks/use-is-tablet.js';
62
+ export { useIsTabletOrMobile } from './hooks/use-is-tablet-or-mobile.js';
63
+ export { buildClassName } from './utils/build-classname.js';
64
+ export { isArray } from './utils/is-array.js';
65
+ export { isEmpty } from './utils/is-empty.js';
66
+ export { get } from './utils/get.js';
67
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ :root{--ui-primary:#2563eb;--ui-primary-hover:#1d4ed8;--ui-primary-ring:#2563eb;--ui-primary-light:#eff6ff;--ui-primary-text:#1d4ed8;--ui-primary-disabled:#93c5fd;--ui-danger:#dc2626;--ui-danger-hover:#b91c1c;--ui-danger-ring:#dc2626;--ui-danger-light:#fef2f2;--ui-danger-text:#991b1b;--ui-danger-disabled:#fca5a5;--ui-success:#16a34a;--ui-success-ring:#16a34a;--ui-success-light:#f0fdf4;--ui-success-text:#15803d;--ui-warning:#d97706;--ui-warning-ring:#d97706;--ui-warning-light:#fffbeb;--ui-warning-text:#92400e;--ui-info:#2563eb;--ui-info-ring:#2563eb;--ui-info-light:#eff6ff;--ui-info-text:#1d4ed8;--ui-success-ring-subtle:rgba(22,163,74,.2);--ui-danger-ring-subtle:rgba(220,38,38,.2);--ui-warning-ring-subtle:rgba(217,119,6,.2);--ui-info-ring-subtle:rgba(37,99,235,.2);--ui-secondary-ring-subtle:hsla(220,9%,46%,.2);--ui-focus-ring:#2563eb;--ui-text:#111827;--ui-text-muted:#6b7280;--ui-text-danger:#ef4444;--ui-border:#e5e7eb;--ui-border-muted:#f3f4f6;--ui-radius-sm:0.25rem;--ui-radius:0.375rem;--ui-radius-md:0.5rem;--ui-radius-lg:0.75rem;--ui-radius-xl:1rem;--ui-radius-full:9999px}.dark{--ui-primary:#3b82f6;--ui-primary-hover:#2563eb;--ui-primary-ring:#3b82f6;--ui-primary-light:#1e3a8a;--ui-primary-text:#93c5fd;--ui-primary-disabled:#1e40af;--ui-danger:#ef4444;--ui-danger-hover:#dc2626;--ui-danger-ring:#ef4444;--ui-danger-light:#7f1d1d;--ui-danger-text:#fca5a5;--ui-danger-disabled:#991b1b;--ui-success:#22c55e;--ui-success-ring:#22c55e;--ui-success-light:#14532d;--ui-success-text:#86efac;--ui-warning:#f59e0b;--ui-warning-ring:#f59e0b;--ui-warning-light:#78350f;--ui-warning-text:#fcd34d;--ui-info:#3b82f6;--ui-info-ring:#3b82f6;--ui-info-light:#1e3a8a;--ui-info-text:#93c5fd;--ui-success-ring-subtle:rgba(34,197,94,.2);--ui-danger-ring-subtle:rgba(239,68,68,.2);--ui-warning-ring-subtle:rgba(245,158,11,.2);--ui-info-ring-subtle:rgba(59,130,246,.2);--ui-secondary-ring-subtle:rgba(156,163,175,.2);--ui-focus-ring:#3b82f6;--ui-text:#f3f4f6;--ui-text-muted:#9ca3af;--ui-text-danger:#f87171;--ui-border:#374151;--ui-border-muted:#374151}.spinner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite}.spinner .path{-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}
2
+ /*# sourceMappingURL=react-tailwind.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["tokens.css","loader.css"],"names":[],"mappings":"AAgBA,MAEE,oBAAqB,CACrB,0BAA2B,CAC3B,yBAA0B,CAC1B,0BAA2B,CAC3B,yBAA0B,CAC1B,6BAA8B,CAG9B,mBAAoB,CACpB,yBAA0B,CAC1B,wBAAyB,CACzB,yBAA0B,CAC1B,wBAAyB,CACzB,4BAA6B,CAG7B,oBAAqB,CACrB,yBAA0B,CAC1B,0BAA2B,CAC3B,yBAA0B,CAG1B,oBAAqB,CACrB,yBAA0B,CAC1B,0BAA2B,CAC3B,yBAA0B,CAG1B,iBAAkB,CAClB,sBAAuB,CACvB,uBAAwB,CACxB,sBAAuB,CAGvB,2CAAgD,CAChD,0CAA+C,CAC/C,2CAAgD,CAChD,wCAA6C,CAC7C,8CAAoD,CAGpD,uBAAwB,CAGxB,iBAAkB,CAClB,uBAAwB,CACxB,wBAAyB,CAGzB,mBAAoB,CACpB,yBAA0B,CAG1B,sBAAuB,CACvB,oBAAqB,CACrB,qBAAsB,CACtB,sBAAuB,CACvB,mBAAoB,CACpB,uBACF,CAGA,MACE,oBAAqB,CACrB,0BAA2B,CAC3B,yBAA0B,CAC1B,0BAA2B,CAC3B,yBAA0B,CAC1B,6BAA8B,CAE9B,mBAAoB,CACpB,yBAA0B,CAC1B,wBAAyB,CACzB,yBAA0B,CAC1B,wBAAyB,CACzB,4BAA6B,CAE7B,oBAAqB,CACrB,yBAA0B,CAC1B,0BAA2B,CAC3B,yBAA0B,CAE1B,oBAAqB,CACrB,yBAA0B,CAC1B,0BAA2B,CAC3B,yBAA0B,CAE1B,iBAAkB,CAClB,sBAAuB,CACvB,uBAAwB,CACxB,sBAAuB,CAEvB,2CAAgD,CAChD,0CAA+C,CAC/C,4CAAiD,CACjD,yCAA8C,CAC9C,+CAAoD,CAEpD,uBAAwB,CAExB,iBAAkB,CAClB,uBAAwB,CACxB,wBAAyB,CAEzB,mBAAoB,CACpB,yBACF,CC3HA,SACE,2CAA4C,CAC5C,mCACF,CACA,eACE,gDAAiD,CACjD,wCACF,CAEA,0BACE,GACE,+BAAiC,CACjC,uBACF,CACF,CAEA,kBACE,GACE,+BAAiC,CACjC,uBACF,CACF,CACA,wBACE,GACE,sBAAwB,CACxB,mBACF,CACA,IACE,uBAAyB,CACzB,qBACF,CACA,GACE,uBAAyB,CACzB,sBACF,CACF,CACA,gBACE,GACE,sBAAwB,CACxB,mBACF,CACA,IACE,uBAAyB,CACzB,qBACF,CACA,GACE,uBAAyB,CACzB,sBACF,CACF","file":"react-tailwind.css","sourcesContent":["/*\n * Design tokens for @pk-design/react-tailwind.\n *\n * Override any variable in your app's CSS to rebrand the entire library:\n *\n * :root {\n * --ui-primary: #7c3aed;\n * --ui-primary-hover: #6d28d9;\n * --ui-primary-ring: #7c3aed;\n * --ui-primary-light: #f5f3ff;\n * --ui-primary-text: #5b21b6;\n * --ui-primary-disabled:#c4b5fd;\n * }\n */\n\n/* ─── Light mode ────────────────────────────────────────────────────────────── */\n:root {\n /* Primary (blue-600 family) */\n --ui-primary: #2563eb;\n --ui-primary-hover: #1d4ed8;\n --ui-primary-ring: #2563eb;\n --ui-primary-light: #eff6ff;\n --ui-primary-text: #1d4ed8;\n --ui-primary-disabled: #93c5fd;\n\n /* Danger (red-600 family) */\n --ui-danger: #dc2626;\n --ui-danger-hover: #b91c1c;\n --ui-danger-ring: #dc2626;\n --ui-danger-light: #fef2f2;\n --ui-danger-text: #991b1b;\n --ui-danger-disabled: #fca5a5;\n\n /* Success (green-600 family) */\n --ui-success: #16a34a;\n --ui-success-ring: #16a34a;\n --ui-success-light: #f0fdf4;\n --ui-success-text: #15803d;\n\n /* Warning (amber-600 family) */\n --ui-warning: #d97706;\n --ui-warning-ring: #d97706;\n --ui-warning-light: #fffbeb;\n --ui-warning-text: #92400e;\n\n /* Info (same as primary by default) */\n --ui-info: #2563eb;\n --ui-info-ring: #2563eb;\n --ui-info-light: #eff6ff;\n --ui-info-text: #1d4ed8;\n\n /* Badge / Alert ring colors (with opacity pre-baked) */\n --ui-success-ring-subtle: rgba(22, 163, 74, 0.2);\n --ui-danger-ring-subtle: rgba(220, 38, 38, 0.2);\n --ui-warning-ring-subtle: rgba(217, 119, 6, 0.2);\n --ui-info-ring-subtle: rgba(37, 99, 235, 0.2);\n --ui-secondary-ring-subtle: rgba(107, 114, 128, 0.2);\n\n /* Global focus ring */\n --ui-focus-ring: #2563eb;\n\n /* Neutral text (used by BodyText, TextContent, HeadingText) */\n --ui-text: #111827; /* gray-900 */\n --ui-text-muted: #6b7280; /* gray-500 */\n --ui-text-danger: #ef4444; /* red-500 */\n\n /* Neutral structural borders (containers, dividers — not interactive form controls) */\n --ui-border: #e5e7eb; /* gray-200 */\n --ui-border-muted: #f3f4f6; /* gray-100 */\n\n /* Border radius scale */\n --ui-radius-sm: 0.25rem;\n --ui-radius: 0.375rem;\n --ui-radius-md: 0.5rem;\n --ui-radius-lg: 0.75rem;\n --ui-radius-xl: 1rem;\n --ui-radius-full: 9999px;\n}\n\n/* ─── Dark mode overrides ───────────────────────────────────────────────────── */\n.dark {\n --ui-primary: #3b82f6;\n --ui-primary-hover: #2563eb;\n --ui-primary-ring: #3b82f6;\n --ui-primary-light: #1e3a8a;\n --ui-primary-text: #93c5fd;\n --ui-primary-disabled: #1e40af;\n\n --ui-danger: #ef4444;\n --ui-danger-hover: #dc2626;\n --ui-danger-ring: #ef4444;\n --ui-danger-light: #7f1d1d;\n --ui-danger-text: #fca5a5;\n --ui-danger-disabled: #991b1b;\n\n --ui-success: #22c55e;\n --ui-success-ring: #22c55e;\n --ui-success-light: #14532d;\n --ui-success-text: #86efac;\n\n --ui-warning: #f59e0b;\n --ui-warning-ring: #f59e0b;\n --ui-warning-light: #78350f;\n --ui-warning-text: #fcd34d;\n\n --ui-info: #3b82f6;\n --ui-info-ring: #3b82f6;\n --ui-info-light: #1e3a8a;\n --ui-info-text: #93c5fd;\n\n --ui-success-ring-subtle: rgba(34, 197, 94, 0.2);\n --ui-danger-ring-subtle: rgba(239, 68, 68, 0.2);\n --ui-warning-ring-subtle: rgba(245, 158, 11, 0.2);\n --ui-info-ring-subtle: rgba(59, 130, 246, 0.2);\n --ui-secondary-ring-subtle: rgba(156, 163, 175, 0.2);\n\n --ui-focus-ring: #3b82f6;\n\n --ui-text: #f3f4f6; /* gray-100 */\n --ui-text-muted: #9ca3af; /* gray-400 */\n --ui-text-danger: #f87171; /* red-400 */\n\n --ui-border: #374151; /* gray-700 */\n --ui-border-muted: #374151; /* gray-700 */\n}\n","/* SVG spinner icon animation */\n.spinner {\n -webkit-animation: rotate 2s linear infinite;\n animation: rotate 2s linear infinite;\n}\n.spinner .path {\n -webkit-animation: dash 1.5s ease-in-out infinite;\n animation: dash 1.5s ease-in-out infinite;\n}\n\n@-webkit-keyframes rotate {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes rotate {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@-webkit-keyframes dash {\n 0% {\n stroke-dasharray: 1, 150;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -35;\n }\n 100% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -124;\n }\n}\n@keyframes dash {\n 0% {\n stroke-dasharray: 1, 150;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -35;\n }\n 100% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -124;\n }\n}\n"]}