@spark-ui/components 10.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 (296) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +19 -0
  4. package/dist/DialogTrigger-5SI4dvpK.d.mts +142 -0
  5. package/dist/DialogTrigger-5SI4dvpK.d.ts +142 -0
  6. package/dist/Input-g0LpWuv0.d.mts +17 -0
  7. package/dist/Input-g0LpWuv0.d.ts +17 -0
  8. package/dist/InputGroup-aoaZxCLk.d.mts +28 -0
  9. package/dist/InputGroup-aoaZxCLk.d.ts +28 -0
  10. package/dist/InputTrailingIcon-BBp7sE6D.d.mts +20 -0
  11. package/dist/InputTrailingIcon-ZZx8PoJy.d.ts +20 -0
  12. package/dist/LabelRequiredIndicator-DRnCzHMU.d.mts +19 -0
  13. package/dist/LabelRequiredIndicator-DRnCzHMU.d.ts +19 -0
  14. package/dist/accordion/index.d.mts +85 -0
  15. package/dist/accordion/index.d.ts +85 -0
  16. package/dist/accordion/index.js +461 -0
  17. package/dist/accordion/index.js.map +1 -0
  18. package/dist/accordion/index.mjs +249 -0
  19. package/dist/accordion/index.mjs.map +1 -0
  20. package/dist/alert-dialog/index.d.mts +119 -0
  21. package/dist/alert-dialog/index.d.ts +119 -0
  22. package/dist/alert-dialog/index.js +1451 -0
  23. package/dist/alert-dialog/index.js.map +1 -0
  24. package/dist/alert-dialog/index.mjs +177 -0
  25. package/dist/alert-dialog/index.mjs.map +1 -0
  26. package/dist/badge/index.d.mts +47 -0
  27. package/dist/badge/index.d.ts +47 -0
  28. package/dist/badge/index.js +122 -0
  29. package/dist/badge/index.js.map +1 -0
  30. package/dist/badge/index.mjs +95 -0
  31. package/dist/badge/index.mjs.map +1 -0
  32. package/dist/breadcrumb/index.d.mts +64 -0
  33. package/dist/breadcrumb/index.d.ts +64 -0
  34. package/dist/breadcrumb/index.js +326 -0
  35. package/dist/breadcrumb/index.js.map +1 -0
  36. package/dist/breadcrumb/index.mjs +149 -0
  37. package/dist/breadcrumb/index.mjs.map +1 -0
  38. package/dist/button/index.d.mts +40 -0
  39. package/dist/button/index.d.ts +40 -0
  40. package/dist/button/index.js +877 -0
  41. package/dist/button/index.js.map +1 -0
  42. package/dist/button/index.mjs +10 -0
  43. package/dist/button/index.mjs.map +1 -0
  44. package/dist/carousel/index.d.mts +253 -0
  45. package/dist/carousel/index.d.ts +253 -0
  46. package/dist/carousel/index.js +1678 -0
  47. package/dist/carousel/index.js.map +1 -0
  48. package/dist/carousel/index.mjs +716 -0
  49. package/dist/carousel/index.mjs.map +1 -0
  50. package/dist/checkbox/index.d.mts +120 -0
  51. package/dist/checkbox/index.d.ts +120 -0
  52. package/dist/checkbox/index.js +873 -0
  53. package/dist/checkbox/index.js.map +1 -0
  54. package/dist/checkbox/index.mjs +349 -0
  55. package/dist/checkbox/index.mjs.map +1 -0
  56. package/dist/chip/index.d.mts +97 -0
  57. package/dist/chip/index.d.ts +97 -0
  58. package/dist/chip/index.js +905 -0
  59. package/dist/chip/index.js.map +1 -0
  60. package/dist/chip/index.mjs +793 -0
  61. package/dist/chip/index.mjs.map +1 -0
  62. package/dist/chunk-2KPFQEAA.mjs +52 -0
  63. package/dist/chunk-2KPFQEAA.mjs.map +1 -0
  64. package/dist/chunk-4F5DOL57.mjs +26 -0
  65. package/dist/chunk-4F5DOL57.mjs.map +1 -0
  66. package/dist/chunk-6JOA37TZ.mjs +742 -0
  67. package/dist/chunk-6JOA37TZ.mjs.map +1 -0
  68. package/dist/chunk-7PMPYEHJ.mjs +379 -0
  69. package/dist/chunk-7PMPYEHJ.mjs.map +1 -0
  70. package/dist/chunk-AESXFMCC.mjs +68 -0
  71. package/dist/chunk-AESXFMCC.mjs.map +1 -0
  72. package/dist/chunk-B42LOFIZ.mjs +308 -0
  73. package/dist/chunk-B42LOFIZ.mjs.map +1 -0
  74. package/dist/chunk-FGOZHKBT.mjs +97 -0
  75. package/dist/chunk-FGOZHKBT.mjs.map +1 -0
  76. package/dist/chunk-HLXYG643.mjs +52 -0
  77. package/dist/chunk-HLXYG643.mjs.map +1 -0
  78. package/dist/chunk-JKNBJHD5.mjs +601 -0
  79. package/dist/chunk-JKNBJHD5.mjs.map +1 -0
  80. package/dist/chunk-K7VP7DH3.mjs +66 -0
  81. package/dist/chunk-K7VP7DH3.mjs.map +1 -0
  82. package/dist/chunk-MUNDKRAE.mjs +80 -0
  83. package/dist/chunk-MUNDKRAE.mjs.map +1 -0
  84. package/dist/chunk-NBZKMCHF.mjs +36 -0
  85. package/dist/chunk-NBZKMCHF.mjs.map +1 -0
  86. package/dist/chunk-PZWESKAR.mjs +314 -0
  87. package/dist/chunk-PZWESKAR.mjs.map +1 -0
  88. package/dist/collapsible/index.d.mts +60 -0
  89. package/dist/collapsible/index.d.ts +60 -0
  90. package/dist/collapsible/index.js +140 -0
  91. package/dist/collapsible/index.js.map +1 -0
  92. package/dist/collapsible/index.mjs +8 -0
  93. package/dist/collapsible/index.mjs.map +1 -0
  94. package/dist/combobox/index.d.mts +285 -0
  95. package/dist/combobox/index.d.ts +285 -0
  96. package/dist/combobox/index.js +2920 -0
  97. package/dist/combobox/index.js.map +1 -0
  98. package/dist/combobox/index.mjs +1267 -0
  99. package/dist/combobox/index.mjs.map +1 -0
  100. package/dist/dialog/index.d.mts +33 -0
  101. package/dist/dialog/index.d.ts +33 -0
  102. package/dist/dialog/index.js +1286 -0
  103. package/dist/dialog/index.js.map +1 -0
  104. package/dist/dialog/index.mjs +13 -0
  105. package/dist/dialog/index.mjs.map +1 -0
  106. package/dist/divider/index.d.mts +61 -0
  107. package/dist/divider/index.d.ts +61 -0
  108. package/dist/divider/index.js +223 -0
  109. package/dist/divider/index.js.map +1 -0
  110. package/dist/divider/index.mjs +196 -0
  111. package/dist/divider/index.mjs.map +1 -0
  112. package/dist/drawer/index.d.mts +148 -0
  113. package/dist/drawer/index.d.ts +148 -0
  114. package/dist/drawer/index.js +1266 -0
  115. package/dist/drawer/index.js.map +1 -0
  116. package/dist/drawer/index.mjs +299 -0
  117. package/dist/drawer/index.mjs.map +1 -0
  118. package/dist/dropdown/index.d.mts +233 -0
  119. package/dist/dropdown/index.d.ts +233 -0
  120. package/dist/dropdown/index.js +2402 -0
  121. package/dist/dropdown/index.js.map +1 -0
  122. package/dist/dropdown/index.mjs +741 -0
  123. package/dist/dropdown/index.mjs.map +1 -0
  124. package/dist/form-field/index.d.mts +176 -0
  125. package/dist/form-field/index.d.ts +176 -0
  126. package/dist/form-field/index.js +540 -0
  127. package/dist/form-field/index.js.map +1 -0
  128. package/dist/form-field/index.mjs +13 -0
  129. package/dist/form-field/index.mjs.map +1 -0
  130. package/dist/icon/index.d.mts +28 -0
  131. package/dist/icon/index.d.ts +28 -0
  132. package/dist/icon/index.js +127 -0
  133. package/dist/icon/index.js.map +1 -0
  134. package/dist/icon/index.mjs +9 -0
  135. package/dist/icon/index.mjs.map +1 -0
  136. package/dist/icon-button/index.d.mts +16 -0
  137. package/dist/icon-button/index.d.ts +16 -0
  138. package/dist/icon-button/index.js +921 -0
  139. package/dist/icon-button/index.js.map +1 -0
  140. package/dist/icon-button/index.mjs +11 -0
  141. package/dist/icon-button/index.mjs.map +1 -0
  142. package/dist/input/index.d.mts +78 -0
  143. package/dist/input/index.d.ts +78 -0
  144. package/dist/input/index.js +1119 -0
  145. package/dist/input/index.js.map +1 -0
  146. package/dist/input/index.mjs +16 -0
  147. package/dist/input/index.mjs.map +1 -0
  148. package/dist/kbd/index.d.mts +9 -0
  149. package/dist/kbd/index.d.ts +9 -0
  150. package/dist/kbd/index.js +46 -0
  151. package/dist/kbd/index.js.map +1 -0
  152. package/dist/kbd/index.mjs +19 -0
  153. package/dist/kbd/index.mjs.map +1 -0
  154. package/dist/label/index.d.mts +11 -0
  155. package/dist/label/index.d.ts +11 -0
  156. package/dist/label/index.js +78 -0
  157. package/dist/label/index.js.map +1 -0
  158. package/dist/label/index.mjs +7 -0
  159. package/dist/label/index.mjs.map +1 -0
  160. package/dist/link-box/index.d.mts +34 -0
  161. package/dist/link-box/index.d.ts +34 -0
  162. package/dist/link-box/index.js +92 -0
  163. package/dist/link-box/index.js.map +1 -0
  164. package/dist/link-box/index.mjs +58 -0
  165. package/dist/link-box/index.mjs.map +1 -0
  166. package/dist/pagination/index.d.mts +143 -0
  167. package/dist/pagination/index.d.ts +143 -0
  168. package/dist/pagination/index.js +1303 -0
  169. package/dist/pagination/index.js.map +1 -0
  170. package/dist/pagination/index.mjs +326 -0
  171. package/dist/pagination/index.mjs.map +1 -0
  172. package/dist/popover/index.d.mts +93 -0
  173. package/dist/popover/index.d.ts +93 -0
  174. package/dist/popover/index.js +1280 -0
  175. package/dist/popover/index.js.map +1 -0
  176. package/dist/popover/index.mjs +13 -0
  177. package/dist/popover/index.mjs.map +1 -0
  178. package/dist/portal/index.d.mts +13 -0
  179. package/dist/portal/index.d.ts +13 -0
  180. package/dist/portal/index.js +37 -0
  181. package/dist/portal/index.js.map +1 -0
  182. package/dist/portal/index.mjs +10 -0
  183. package/dist/portal/index.mjs.map +1 -0
  184. package/dist/progress/index.d.mts +48 -0
  185. package/dist/progress/index.d.ts +48 -0
  186. package/dist/progress/index.js +201 -0
  187. package/dist/progress/index.js.map +1 -0
  188. package/dist/progress/index.mjs +174 -0
  189. package/dist/progress/index.mjs.map +1 -0
  190. package/dist/progress-tracker/index.d.mts +81 -0
  191. package/dist/progress-tracker/index.d.ts +81 -0
  192. package/dist/progress-tracker/index.js +834 -0
  193. package/dist/progress-tracker/index.js.map +1 -0
  194. package/dist/progress-tracker/index.mjs +716 -0
  195. package/dist/progress-tracker/index.mjs.map +1 -0
  196. package/dist/radio-group/index.d.mts +100 -0
  197. package/dist/radio-group/index.d.ts +100 -0
  198. package/dist/radio-group/index.js +824 -0
  199. package/dist/radio-group/index.js.map +1 -0
  200. package/dist/radio-group/index.mjs +297 -0
  201. package/dist/radio-group/index.mjs.map +1 -0
  202. package/dist/rating/index.d.mts +78 -0
  203. package/dist/rating/index.d.ts +78 -0
  204. package/dist/rating/index.js +362 -0
  205. package/dist/rating/index.js.map +1 -0
  206. package/dist/rating/index.mjs +247 -0
  207. package/dist/rating/index.mjs.map +1 -0
  208. package/dist/scrolling-list/index.d.mts +105 -0
  209. package/dist/scrolling-list/index.d.ts +105 -0
  210. package/dist/scrolling-list/index.js +1367 -0
  211. package/dist/scrolling-list/index.js.map +1 -0
  212. package/dist/scrolling-list/index.mjs +407 -0
  213. package/dist/scrolling-list/index.mjs.map +1 -0
  214. package/dist/select/index.d.mts +167 -0
  215. package/dist/select/index.d.ts +167 -0
  216. package/dist/select/index.js +991 -0
  217. package/dist/select/index.js.map +1 -0
  218. package/dist/select/index.mjs +470 -0
  219. package/dist/select/index.mjs.map +1 -0
  220. package/dist/skeleton/index.d.mts +67 -0
  221. package/dist/skeleton/index.d.ts +67 -0
  222. package/dist/skeleton/index.js +206 -0
  223. package/dist/skeleton/index.js.map +1 -0
  224. package/dist/skeleton/index.mjs +147 -0
  225. package/dist/skeleton/index.mjs.map +1 -0
  226. package/dist/slider/index.d.mts +97 -0
  227. package/dist/slider/index.d.ts +97 -0
  228. package/dist/slider/index.js +209 -0
  229. package/dist/slider/index.js.map +1 -0
  230. package/dist/slider/index.mjs +182 -0
  231. package/dist/slider/index.mjs.map +1 -0
  232. package/dist/slot/index.d.mts +17 -0
  233. package/dist/slot/index.d.ts +17 -0
  234. package/dist/slot/index.js +51 -0
  235. package/dist/slot/index.js.map +1 -0
  236. package/dist/slot/index.mjs +11 -0
  237. package/dist/slot/index.mjs.map +1 -0
  238. package/dist/snackbar/index.d.mts +158 -0
  239. package/dist/snackbar/index.d.ts +158 -0
  240. package/dist/snackbar/index.js +1693 -0
  241. package/dist/snackbar/index.js.map +1 -0
  242. package/dist/snackbar/index.mjs +733 -0
  243. package/dist/snackbar/index.mjs.map +1 -0
  244. package/dist/spinner/index.d.mts +21 -0
  245. package/dist/spinner/index.d.ts +21 -0
  246. package/dist/spinner/index.js +139 -0
  247. package/dist/spinner/index.js.map +1 -0
  248. package/dist/spinner/index.mjs +9 -0
  249. package/dist/spinner/index.mjs.map +1 -0
  250. package/dist/stepper/index.d.mts +82 -0
  251. package/dist/stepper/index.d.ts +82 -0
  252. package/dist/stepper/index.js +2178 -0
  253. package/dist/stepper/index.js.map +1 -0
  254. package/dist/stepper/index.mjs +229 -0
  255. package/dist/stepper/index.mjs.map +1 -0
  256. package/dist/switch/index.d.mts +64 -0
  257. package/dist/switch/index.d.ts +64 -0
  258. package/dist/switch/index.js +768 -0
  259. package/dist/switch/index.js.map +1 -0
  260. package/dist/switch/index.mjs +245 -0
  261. package/dist/switch/index.mjs.map +1 -0
  262. package/dist/tabs/index.d.mts +103 -0
  263. package/dist/tabs/index.d.ts +103 -0
  264. package/dist/tabs/index.js +1315 -0
  265. package/dist/tabs/index.js.map +1 -0
  266. package/dist/tabs/index.mjs +391 -0
  267. package/dist/tabs/index.mjs.map +1 -0
  268. package/dist/tag/index.d.mts +27 -0
  269. package/dist/tag/index.d.ts +27 -0
  270. package/dist/tag/index.js +269 -0
  271. package/dist/tag/index.js.map +1 -0
  272. package/dist/tag/index.mjs +237 -0
  273. package/dist/tag/index.mjs.map +1 -0
  274. package/dist/text-link/index.d.mts +20 -0
  275. package/dist/text-link/index.d.ts +20 -0
  276. package/dist/text-link/index.js +99 -0
  277. package/dist/text-link/index.js.map +1 -0
  278. package/dist/text-link/index.mjs +8 -0
  279. package/dist/text-link/index.mjs.map +1 -0
  280. package/dist/textarea/index.d.mts +47 -0
  281. package/dist/textarea/index.d.ts +47 -0
  282. package/dist/textarea/index.js +1180 -0
  283. package/dist/textarea/index.js.map +1 -0
  284. package/dist/textarea/index.mjs +77 -0
  285. package/dist/textarea/index.mjs.map +1 -0
  286. package/dist/visually-hidden/index.d.mts +16 -0
  287. package/dist/visually-hidden/index.d.ts +16 -0
  288. package/dist/visually-hidden/index.js +67 -0
  289. package/dist/visually-hidden/index.js.map +1 -0
  290. package/dist/visually-hidden/index.mjs +8 -0
  291. package/dist/visually-hidden/index.mjs.map +1 -0
  292. package/global.d.ts +12 -0
  293. package/package.json +75 -0
  294. package/tsconfig.build.json +9 -0
  295. package/tsconfig.json +9 -0
  296. package/tsup.config.ts +11 -0
@@ -0,0 +1,1303 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/pagination/index.ts
31
+ var pagination_exports = {};
32
+ __export(pagination_exports, {
33
+ Pagination: () => Pagination2
34
+ });
35
+ module.exports = __toCommonJS(pagination_exports);
36
+
37
+ // src/pagination/PaginationContext.tsx
38
+ var pagination = __toESM(require("@zag-js/pagination"));
39
+ var import_react = require("@zag-js/react");
40
+ var import_react2 = require("react");
41
+
42
+ // src/pagination/utils.ts
43
+ function sliceArrayWithIndex(arr, index, length) {
44
+ const relativeElements = (length - 1) / 2;
45
+ let start = Math.max(0, index - relativeElements);
46
+ let end = Math.min(arr.length, index + relativeElements + 1);
47
+ if (end - start < length) {
48
+ start = Math.max(0, Math.min(start, arr.length - length));
49
+ end = Math.min(arr.length, start + length);
50
+ }
51
+ return arr.slice(start, end);
52
+ }
53
+
54
+ // src/pagination/PaginationContext.tsx
55
+ var import_jsx_runtime = require("react/jsx-runtime");
56
+ var PaginationContext = (0, import_react2.createContext)(null);
57
+ var PaginationProvider = ({
58
+ children,
59
+ count,
60
+ visiblePageItems = 7,
61
+ pageSize,
62
+ page,
63
+ onPageChange,
64
+ noEllipsis,
65
+ type = "link"
66
+ }) => {
67
+ const siblingCount = noEllipsis ? Infinity : Math.max(0, Math.floor((visiblePageItems - 5) / 2));
68
+ const id = (0, import_react2.useId)();
69
+ const service = (0, import_react.useMachine)(pagination.machine, {
70
+ id,
71
+ count,
72
+ siblingCount,
73
+ pageSize,
74
+ page,
75
+ onPageChange,
76
+ type
77
+ });
78
+ const api = pagination.connect(service, import_react.normalizeProps);
79
+ const pages = noEllipsis ? sliceArrayWithIndex(api.pages, api.page - 1, visiblePageItems) : api.pages;
80
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
81
+ PaginationContext.Provider,
82
+ {
83
+ value: {
84
+ type,
85
+ pagination: {
86
+ ...api,
87
+ pages,
88
+ // Extending ZagJS anatomy
89
+ getFirstPageTriggerProps: () => {
90
+ return {
91
+ ...api.getPrevTriggerProps(),
92
+ id: `${api.getRootProps().id}:first`,
93
+ "data-part": "first-page-trigger",
94
+ onClick: api.goToFirstPage
95
+ };
96
+ },
97
+ getLastPageTriggerProps: () => {
98
+ return {
99
+ ...api.getNextTriggerProps(),
100
+ id: `${api.getRootProps().id}:last`,
101
+ "data-part": "last-page-trigger",
102
+ onClick: api.goToLastPage
103
+ };
104
+ }
105
+ }
106
+ },
107
+ children
108
+ }
109
+ );
110
+ };
111
+ var usePagination = () => {
112
+ const context = (0, import_react2.useContext)(PaginationContext);
113
+ if (!context) {
114
+ throw Error("usePagination must be used within a Pagination provider");
115
+ }
116
+ return context;
117
+ };
118
+
119
+ // src/pagination/Pagination.tsx
120
+ var import_jsx_runtime2 = require("react/jsx-runtime");
121
+ var Pagination = ({
122
+ children,
123
+ visiblePageItems = 5,
124
+ type = "link",
125
+ noEllipsis = false,
126
+ className,
127
+ ...rest
128
+ }) => {
129
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
130
+ PaginationProvider,
131
+ {
132
+ visiblePageItems,
133
+ noEllipsis,
134
+ type,
135
+ ...rest,
136
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(PaginationWrapper, { className, children })
137
+ }
138
+ );
139
+ };
140
+ var PaginationWrapper = ({
141
+ children,
142
+ className
143
+ }) => {
144
+ const { pagination: pagination2 } = usePagination();
145
+ const props = pagination2.getRootProps();
146
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("nav", { "data-spark-component": "pagination", ...props, className, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("ul", { className: "gap-md flex flex-wrap", children }) });
147
+ };
148
+ Pagination.displayName = "Pagination";
149
+
150
+ // src/pagination/PaginationEllipsis.tsx
151
+ var import_react3 = require("@zag-js/react");
152
+ var import_class_variance_authority = require("class-variance-authority");
153
+ var import_jsx_runtime3 = require("react/jsx-runtime");
154
+ var Ellipsis = ({ children, index, className, ref, ...rest }) => {
155
+ const { pagination: pagination2 } = usePagination();
156
+ const apiProps = pagination2.getEllipsisProps({ index });
157
+ const localProps = {
158
+ className: (0, import_class_variance_authority.cx)("flex size-sz-44 items-center justify-center", className),
159
+ ...rest
160
+ };
161
+ const mergedProps = (0, import_react3.mergeProps)(apiProps, localProps);
162
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
163
+ "span",
164
+ {
165
+ "data-spark-component": "pagination-ellipsis",
166
+ ref,
167
+ className: (0, import_class_variance_authority.cx)("size-sz-44 flex items-center justify-center"),
168
+ ...mergedProps,
169
+ children: children || "\u2026"
170
+ }
171
+ ) });
172
+ };
173
+ Ellipsis.displayName = "Pagination.Ellipsis";
174
+
175
+ // src/pagination/PaginationFirstPageTrigger.tsx
176
+ var import_ArrowDoubleLeft = require("@spark-ui/icons/ArrowDoubleLeft");
177
+ var import_react7 = require("@zag-js/react");
178
+
179
+ // src/icon/Icon.tsx
180
+ var import_react5 = require("react");
181
+
182
+ // src/slot/Slot.tsx
183
+ var import_radix_ui = require("radix-ui");
184
+ var import_react4 = require("react");
185
+ var import_jsx_runtime4 = require("react/jsx-runtime");
186
+ var Slottable = import_radix_ui.Slot.Slottable;
187
+ var Slot = ({ ref, ...props }) => {
188
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_radix_ui.Slot.Root, { ref, ...props });
189
+ };
190
+ var wrapPolymorphicSlot = (asChild, children, callback) => {
191
+ if (!asChild) return callback(children);
192
+ return (0, import_react4.isValidElement)(children) ? (0, import_react4.cloneElement)(
193
+ children,
194
+ void 0,
195
+ callback(children.props.children)
196
+ ) : null;
197
+ };
198
+
199
+ // src/visually-hidden/VisuallyHidden.tsx
200
+ var import_jsx_runtime5 = require("react/jsx-runtime");
201
+ var VisuallyHidden = ({ asChild = false, ref, ...props }) => {
202
+ const Component = asChild ? Slot : "span";
203
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
204
+ Component,
205
+ {
206
+ ...props,
207
+ ref,
208
+ style: {
209
+ // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss
210
+ position: "absolute",
211
+ border: 0,
212
+ width: 1,
213
+ height: 1,
214
+ padding: 0,
215
+ margin: -1,
216
+ overflow: "hidden",
217
+ clip: "rect(0, 0, 0, 0)",
218
+ whiteSpace: "nowrap",
219
+ wordWrap: "normal",
220
+ ...props.style
221
+ }
222
+ }
223
+ );
224
+ };
225
+ VisuallyHidden.displayName = "VisuallyHidden";
226
+
227
+ // src/icon/Icon.styles.tsx
228
+ var import_internal_utils = require("@spark-ui/internal-utils");
229
+ var import_class_variance_authority2 = require("class-variance-authority");
230
+ var iconStyles = (0, import_class_variance_authority2.cva)(["fill-current shrink-0"], {
231
+ variants: {
232
+ /**
233
+ * Color scheme of the icon.
234
+ */
235
+ intent: (0, import_internal_utils.makeVariants)({
236
+ current: ["text-current"],
237
+ main: ["text-main"],
238
+ support: ["text-support"],
239
+ accent: ["text-accent"],
240
+ basic: ["text-basic"],
241
+ success: ["text-success"],
242
+ alert: ["text-alert"],
243
+ error: ["text-error"],
244
+ info: ["text-info"],
245
+ neutral: ["text-neutral"]
246
+ }),
247
+ /**
248
+ * Sets the size of the icon.
249
+ */
250
+ size: (0, import_internal_utils.makeVariants)({
251
+ current: ["u-current-font-size"],
252
+ sm: ["w-sz-16", "h-sz-16"],
253
+ md: ["w-sz-24", "h-sz-24"],
254
+ lg: ["w-sz-32", "h-sz-32"],
255
+ xl: ["w-sz-40", "h-sz-40"]
256
+ })
257
+ }
258
+ });
259
+
260
+ // src/icon/Icon.tsx
261
+ var import_jsx_runtime6 = require("react/jsx-runtime");
262
+ var Icon = ({
263
+ label,
264
+ className,
265
+ size = "current",
266
+ intent = "current",
267
+ children,
268
+ ...others
269
+ }) => {
270
+ const child = import_react5.Children.only(children);
271
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
272
+ (0, import_react5.cloneElement)(child, {
273
+ className: iconStyles({ className, size, intent }),
274
+ "data-spark-component": "icon",
275
+ "aria-hidden": "true",
276
+ focusable: "false",
277
+ ...others
278
+ }),
279
+ label && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(VisuallyHidden, { children: label })
280
+ ] });
281
+ };
282
+ Icon.displayName = "Icon";
283
+
284
+ // src/button/Button.tsx
285
+ var import_class_variance_authority5 = require("class-variance-authority");
286
+ var import_react6 = require("react");
287
+
288
+ // src/spinner/Spinner.styles.tsx
289
+ var import_internal_utils2 = require("@spark-ui/internal-utils");
290
+ var import_class_variance_authority3 = require("class-variance-authority");
291
+ var defaultVariants = {
292
+ intent: "current",
293
+ size: "current",
294
+ isBackgroundVisible: false
295
+ };
296
+ var spinnerStyles = (0, import_class_variance_authority3.cva)(
297
+ ["inline-block", "border-solid", "rounded-full", "border-md", "animate-spin"],
298
+ {
299
+ variants: {
300
+ /**
301
+ * Use `size` prop to set the size of the spinner. If you want to set the full size for the spinner, don't forget to add a wrapping container with its own size.
302
+ */
303
+ size: {
304
+ current: ["u-current-font-size"],
305
+ sm: ["w-sz-20", "h-sz-20"],
306
+ md: ["w-sz-28", "h-sz-28"],
307
+ full: ["w-full", "h-full"]
308
+ },
309
+ /**
310
+ * Color scheme of the spinner.
311
+ */
312
+ intent: (0, import_internal_utils2.makeVariants)({
313
+ current: ["border-current"],
314
+ main: ["border-main"],
315
+ support: ["border-support"],
316
+ accent: ["border-accent"],
317
+ basic: ["border-basic"],
318
+ success: ["border-success"],
319
+ alert: ["border-alert"],
320
+ error: ["border-error"],
321
+ info: ["border-info"],
322
+ neutral: ["border-neutral"]
323
+ }),
324
+ /**
325
+ * Size of the button.
326
+ */
327
+ isBackgroundVisible: {
328
+ true: ["border-b-neutral-container", "border-l-neutral-container"],
329
+ false: ["border-b-transparent", "border-l-transparent"]
330
+ }
331
+ },
332
+ defaultVariants
333
+ }
334
+ );
335
+
336
+ // src/spinner/Spinner.tsx
337
+ var import_jsx_runtime7 = require("react/jsx-runtime");
338
+ var Spinner = ({
339
+ className,
340
+ size = "current",
341
+ intent = "current",
342
+ label,
343
+ isBackgroundVisible,
344
+ ref,
345
+ ...others
346
+ }) => {
347
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
348
+ "span",
349
+ {
350
+ role: "status",
351
+ "data-spark-component": "spinner",
352
+ ref,
353
+ className: spinnerStyles({ className, size, intent, isBackgroundVisible }),
354
+ ...others,
355
+ children: label && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(VisuallyHidden, { children: label })
356
+ }
357
+ );
358
+ };
359
+
360
+ // src/button/Button.styles.tsx
361
+ var import_internal_utils8 = require("@spark-ui/internal-utils");
362
+ var import_class_variance_authority4 = require("class-variance-authority");
363
+
364
+ // src/button/variants/filled.ts
365
+ var import_internal_utils3 = require("@spark-ui/internal-utils");
366
+ var filledVariants = [
367
+ // Main
368
+ {
369
+ intent: "main",
370
+ design: "filled",
371
+ class: (0, import_internal_utils3.tw)([
372
+ "bg-main",
373
+ "text-on-main",
374
+ "hover:bg-main-hovered",
375
+ "enabled:active:bg-main-hovered",
376
+ "focus-visible:bg-main-hovered"
377
+ ])
378
+ },
379
+ // Support
380
+ {
381
+ intent: "support",
382
+ design: "filled",
383
+ class: (0, import_internal_utils3.tw)([
384
+ "bg-support",
385
+ "text-on-support",
386
+ "hover:bg-support-hovered",
387
+ "enabled:active:bg-support-hovered",
388
+ "focus-visible:bg-support-hovered"
389
+ ])
390
+ },
391
+ // Accent
392
+ {
393
+ intent: "accent",
394
+ design: "filled",
395
+ class: (0, import_internal_utils3.tw)([
396
+ "bg-accent",
397
+ "text-on-accent",
398
+ "hover:bg-accent-hovered",
399
+ "enabled:active:bg-accent-hovered",
400
+ "focus-visible:bg-accent-hovered"
401
+ ])
402
+ },
403
+ // Basic
404
+ {
405
+ intent: "basic",
406
+ design: "filled",
407
+ class: (0, import_internal_utils3.tw)([
408
+ "bg-basic",
409
+ "text-on-basic",
410
+ "hover:bg-basic-hovered",
411
+ "enabled:active:bg-basic-hovered",
412
+ "focus-visible:bg-basic-hovered"
413
+ ])
414
+ },
415
+ // Success
416
+ {
417
+ intent: "success",
418
+ design: "filled",
419
+ class: (0, import_internal_utils3.tw)([
420
+ "bg-success",
421
+ "text-on-success",
422
+ "hover:bg-success-hovered",
423
+ "enabled:active:bg-success-hovered",
424
+ "focus-visible:bg-success-hovered"
425
+ ])
426
+ },
427
+ // Alert
428
+ {
429
+ intent: "alert",
430
+ design: "filled",
431
+ class: (0, import_internal_utils3.tw)([
432
+ "bg-alert",
433
+ "text-on-alert",
434
+ "hover:bg-alert-hovered",
435
+ "enabled:active:bg-alert-hovered",
436
+ "focus-visible:bg-alert-hovered"
437
+ ])
438
+ },
439
+ // Danger
440
+ {
441
+ intent: "danger",
442
+ design: "filled",
443
+ class: (0, import_internal_utils3.tw)([
444
+ "text-on-error bg-error",
445
+ "hover:bg-error-hovered enabled:active:bg-error-hovered",
446
+ "focus-visible:bg-error-hovered"
447
+ ])
448
+ },
449
+ // Info
450
+ {
451
+ intent: "info",
452
+ design: "filled",
453
+ class: (0, import_internal_utils3.tw)([
454
+ "text-on-error bg-info",
455
+ "hover:bg-info-hovered enabled:active:bg-info-hovered",
456
+ "focus-visible:bg-info-hovered"
457
+ ])
458
+ },
459
+ // Neutral
460
+ {
461
+ intent: "neutral",
462
+ design: "filled",
463
+ class: (0, import_internal_utils3.tw)([
464
+ "bg-neutral",
465
+ "text-on-neutral",
466
+ "hover:bg-neutral-hovered",
467
+ "enabled:active:bg-neutral-hovered",
468
+ "focus-visible:bg-neutral-hovered"
469
+ ])
470
+ },
471
+ // Surface
472
+ {
473
+ intent: "surface",
474
+ design: "filled",
475
+ class: (0, import_internal_utils3.tw)([
476
+ "bg-surface",
477
+ "text-on-surface",
478
+ "hover:bg-surface-hovered",
479
+ "enabled:active:bg-surface-hovered",
480
+ "focus-visible:bg-surface-hovered"
481
+ ])
482
+ }
483
+ ];
484
+
485
+ // src/button/variants/ghost.ts
486
+ var import_internal_utils4 = require("@spark-ui/internal-utils");
487
+ var ghostVariants = [
488
+ {
489
+ intent: "main",
490
+ design: "ghost",
491
+ class: (0, import_internal_utils4.tw)([
492
+ "text-main",
493
+ "hover:bg-main/dim-5",
494
+ "enabled:active:bg-main/dim-5",
495
+ "focus-visible:bg-main/dim-5"
496
+ ])
497
+ },
498
+ {
499
+ intent: "support",
500
+ design: "ghost",
501
+ class: (0, import_internal_utils4.tw)([
502
+ "text-support",
503
+ "hover:bg-support/dim-5",
504
+ "enabled:active:bg-support/dim-5",
505
+ "focus-visible:bg-support/dim-5"
506
+ ])
507
+ },
508
+ {
509
+ intent: "accent",
510
+ design: "ghost",
511
+ class: (0, import_internal_utils4.tw)([
512
+ "text-accent",
513
+ "hover:bg-accent/dim-5",
514
+ "enabled:active:bg-accent/dim-5",
515
+ "focus-visible:bg-accent/dim-5"
516
+ ])
517
+ },
518
+ {
519
+ intent: "basic",
520
+ design: "ghost",
521
+ class: (0, import_internal_utils4.tw)([
522
+ "text-basic",
523
+ "hover:bg-basic/dim-5",
524
+ "enabled:active:bg-basic/dim-5",
525
+ "focus-visible:bg-basic/dim-5"
526
+ ])
527
+ },
528
+ {
529
+ intent: "success",
530
+ design: "ghost",
531
+ class: (0, import_internal_utils4.tw)([
532
+ "text-success",
533
+ "hover:bg-success/dim-5",
534
+ "enabled:active:bg-success/dim-5",
535
+ "focus-visible:bg-success/dim-5"
536
+ ])
537
+ },
538
+ {
539
+ intent: "alert",
540
+ design: "ghost",
541
+ class: (0, import_internal_utils4.tw)([
542
+ "text-alert",
543
+ "hover:bg-alert/dim-5",
544
+ "enabled:active:bg-alert/dim-5",
545
+ "focus-visible:bg-alert/dim-5"
546
+ ])
547
+ },
548
+ {
549
+ intent: "danger",
550
+ design: "ghost",
551
+ class: (0, import_internal_utils4.tw)([
552
+ "text-error",
553
+ "hover:bg-error/dim-5",
554
+ "enabled:active:bg-error/dim-5",
555
+ "focus-visible:bg-error/dim-5"
556
+ ])
557
+ },
558
+ {
559
+ intent: "info",
560
+ design: "ghost",
561
+ class: (0, import_internal_utils4.tw)([
562
+ "text-info",
563
+ "hover:bg-info/dim-5",
564
+ "enabled:active:bg-info/dim-5",
565
+ "focus-visible:bg-info/dim-5"
566
+ ])
567
+ },
568
+ {
569
+ intent: "neutral",
570
+ design: "ghost",
571
+ class: (0, import_internal_utils4.tw)([
572
+ "text-neutral",
573
+ "hover:bg-neutral/dim-5",
574
+ "enabled:active:bg-neutral/dim-5",
575
+ "focus-visible:bg-neutral/dim-5"
576
+ ])
577
+ },
578
+ {
579
+ intent: "surface",
580
+ design: "ghost",
581
+ class: (0, import_internal_utils4.tw)([
582
+ "text-surface",
583
+ "hover:bg-surface/dim-5",
584
+ "enabled:active:bg-surface/dim-5",
585
+ "focus-visible:bg-surface/dim-5"
586
+ ])
587
+ }
588
+ ];
589
+
590
+ // src/button/variants/outlined.ts
591
+ var import_internal_utils5 = require("@spark-ui/internal-utils");
592
+ var outlinedVariants = [
593
+ {
594
+ intent: "main",
595
+ design: "outlined",
596
+ class: (0, import_internal_utils5.tw)([
597
+ "hover:bg-main/dim-5",
598
+ "enabled:active:bg-main/dim-5",
599
+ "focus-visible:bg-main/dim-5",
600
+ "text-main"
601
+ ])
602
+ },
603
+ {
604
+ intent: "support",
605
+ design: "outlined",
606
+ class: (0, import_internal_utils5.tw)([
607
+ "hover:bg-support/dim-5",
608
+ "enabled:active:bg-support/dim-5",
609
+ "focus-visible:bg-support/dim-5",
610
+ "text-support"
611
+ ])
612
+ },
613
+ {
614
+ intent: "accent",
615
+ design: "outlined",
616
+ class: (0, import_internal_utils5.tw)([
617
+ "hover:bg-accent/dim-5",
618
+ "enabled:active:bg-accent/dim-5",
619
+ "focus-visible:bg-accent/dim-5",
620
+ "text-accent"
621
+ ])
622
+ },
623
+ {
624
+ intent: "basic",
625
+ design: "outlined",
626
+ class: (0, import_internal_utils5.tw)([
627
+ "hover:bg-basic/dim-5",
628
+ "enabled:active:bg-basic/dim-5",
629
+ "focus-visible:bg-basic/dim-5",
630
+ "text-basic"
631
+ ])
632
+ },
633
+ {
634
+ intent: "success",
635
+ design: "outlined",
636
+ class: (0, import_internal_utils5.tw)([
637
+ "hover:bg-success/dim-5",
638
+ "enabled:active:bg-success/dim-5",
639
+ "focus-visible:bg-success/dim-5",
640
+ "text-success"
641
+ ])
642
+ },
643
+ {
644
+ intent: "alert",
645
+ design: "outlined",
646
+ class: (0, import_internal_utils5.tw)([
647
+ "hover:bg-alert/dim-5",
648
+ "enabled:active:bg-alert/dim-5",
649
+ "focus-visible:bg-alert/dim-5",
650
+ "text-alert"
651
+ ])
652
+ },
653
+ {
654
+ intent: "danger",
655
+ design: "outlined",
656
+ class: (0, import_internal_utils5.tw)([
657
+ "hover:bg-error/dim-5",
658
+ "enabled:active:bg-error/dim-5",
659
+ "focus-visible:bg-error/dim-5",
660
+ "text-error"
661
+ ])
662
+ },
663
+ {
664
+ intent: "info",
665
+ design: "outlined",
666
+ class: (0, import_internal_utils5.tw)([
667
+ "hover:bg-info/dim-5",
668
+ "enabled:active:bg-info/dim-5",
669
+ "focus-visible:bg-info/dim-5",
670
+ "text-info"
671
+ ])
672
+ },
673
+ {
674
+ intent: "neutral",
675
+ design: "outlined",
676
+ class: (0, import_internal_utils5.tw)([
677
+ "hover:bg-neutral/dim-5",
678
+ "enabled:active:bg-neutral/dim-5",
679
+ "focus-visible:bg-neutral/dim-5",
680
+ "text-neutral"
681
+ ])
682
+ },
683
+ {
684
+ intent: "surface",
685
+ design: "outlined",
686
+ class: (0, import_internal_utils5.tw)([
687
+ "hover:bg-surface/dim-5",
688
+ "enabled:active:bg-surface/dim-5",
689
+ "focus-visible:bg-surface/dim-5",
690
+ "text-surface"
691
+ ])
692
+ }
693
+ ];
694
+
695
+ // src/button/variants/tinted.ts
696
+ var import_internal_utils6 = require("@spark-ui/internal-utils");
697
+ var tintedVariants = [
698
+ {
699
+ intent: "main",
700
+ design: "tinted",
701
+ class: (0, import_internal_utils6.tw)([
702
+ "bg-main-container",
703
+ "text-on-main-container",
704
+ "hover:bg-main-container-hovered",
705
+ "enabled:active:bg-main-container-hovered",
706
+ "focus-visible:bg-main-container-hovered"
707
+ ])
708
+ },
709
+ {
710
+ intent: "support",
711
+ design: "tinted",
712
+ class: (0, import_internal_utils6.tw)([
713
+ "bg-support-container",
714
+ "text-on-support-container",
715
+ "hover:bg-support-container-hovered",
716
+ "enabled:active:bg-support-container-hovered",
717
+ "focus-visible:bg-support-container-hovered"
718
+ ])
719
+ },
720
+ {
721
+ intent: "accent",
722
+ design: "tinted",
723
+ class: (0, import_internal_utils6.tw)([
724
+ "bg-accent-container",
725
+ "text-on-accent-container",
726
+ "hover:bg-accent-container-hovered",
727
+ "enabled:active:bg-accent-container-hovered",
728
+ "focus-visible:bg-accent-container-hovered"
729
+ ])
730
+ },
731
+ {
732
+ intent: "basic",
733
+ design: "tinted",
734
+ class: (0, import_internal_utils6.tw)([
735
+ "bg-basic-container",
736
+ "text-on-basic-container",
737
+ "hover:bg-basic-container-hovered",
738
+ "enabled:active:bg-basic-container-hovered",
739
+ "focus-visible:bg-basic-container-hovered"
740
+ ])
741
+ },
742
+ {
743
+ intent: "success",
744
+ design: "tinted",
745
+ class: (0, import_internal_utils6.tw)([
746
+ "bg-success-container",
747
+ "text-on-success-container",
748
+ "hover:bg-success-container-hovered",
749
+ "enabled:active:bg-success-container-hovered",
750
+ "focus-visible:bg-success-container-hovered"
751
+ ])
752
+ },
753
+ {
754
+ intent: "alert",
755
+ design: "tinted",
756
+ class: (0, import_internal_utils6.tw)([
757
+ "bg-alert-container",
758
+ "text-on-alert-container",
759
+ "hover:bg-alert-container-hovered",
760
+ "enabled:active:bg-alert-container-hovered",
761
+ "focus-visible:bg-alert-container-hovered"
762
+ ])
763
+ },
764
+ {
765
+ intent: "danger",
766
+ design: "tinted",
767
+ class: (0, import_internal_utils6.tw)([
768
+ "bg-error-container",
769
+ "text-on-error-container",
770
+ "hover:bg-error-container-hovered",
771
+ "enabled:active:bg-error-container-hovered",
772
+ "focus-visible:bg-error-container-hovered"
773
+ ])
774
+ },
775
+ {
776
+ intent: "info",
777
+ design: "tinted",
778
+ class: (0, import_internal_utils6.tw)([
779
+ "bg-info-container",
780
+ "text-on-info-container",
781
+ "hover:bg-info-container-hovered",
782
+ "enabled:active:bg-info-container-hovered",
783
+ "focus-visible:bg-info-container-hovered"
784
+ ])
785
+ },
786
+ {
787
+ intent: "neutral",
788
+ design: "tinted",
789
+ class: (0, import_internal_utils6.tw)([
790
+ "bg-neutral-container",
791
+ "text-on-neutral-container",
792
+ "hover:bg-neutral-container-hovered",
793
+ "enabled:active:bg-neutral-container-hovered",
794
+ "focus-visible:bg-neutral-container-hovered"
795
+ ])
796
+ },
797
+ {
798
+ intent: "surface",
799
+ design: "tinted",
800
+ class: (0, import_internal_utils6.tw)([
801
+ "bg-surface",
802
+ "text-on-surface",
803
+ "hover:bg-surface-hovered",
804
+ "enabled:active:bg-surface-hovered",
805
+ "focus-visible:bg-surface-hovered"
806
+ ])
807
+ }
808
+ ];
809
+
810
+ // src/button/variants/contrast.ts
811
+ var import_internal_utils7 = require("@spark-ui/internal-utils");
812
+ var contrastVariants = [
813
+ {
814
+ intent: "main",
815
+ design: "contrast",
816
+ class: (0, import_internal_utils7.tw)([
817
+ "text-main",
818
+ "hover:bg-main-container-hovered",
819
+ "enabled:active:bg-main-container-hovered",
820
+ "focus-visible:bg-main-container-hovered"
821
+ ])
822
+ },
823
+ {
824
+ intent: "support",
825
+ design: "contrast",
826
+ class: (0, import_internal_utils7.tw)([
827
+ "text-support",
828
+ "hover:bg-support-container-hovered",
829
+ "enabled:active:bg-support-container-hovered",
830
+ "focus-visible:bg-support-container-hovered"
831
+ ])
832
+ },
833
+ {
834
+ intent: "accent",
835
+ design: "contrast",
836
+ class: (0, import_internal_utils7.tw)([
837
+ "text-accent",
838
+ "hover:bg-accent-container-hovered",
839
+ "enabled:active:bg-accent-container-hovered",
840
+ "focus-visible:bg-accent-container-hovered"
841
+ ])
842
+ },
843
+ {
844
+ intent: "basic",
845
+ design: "contrast",
846
+ class: (0, import_internal_utils7.tw)([
847
+ "text-basic",
848
+ "hover:bg-basic-container-hovered",
849
+ "enabled:active:bg-basic-container-hovered",
850
+ "focus-visible:bg-basic-container-hovered"
851
+ ])
852
+ },
853
+ {
854
+ intent: "success",
855
+ design: "contrast",
856
+ class: (0, import_internal_utils7.tw)([
857
+ "text-success",
858
+ "hover:bg-success-container-hovered",
859
+ "enabled:active:bg-success-container-hovered",
860
+ "focus-visible:bg-success-container-hovered"
861
+ ])
862
+ },
863
+ {
864
+ intent: "alert",
865
+ design: "contrast",
866
+ class: (0, import_internal_utils7.tw)([
867
+ "text-alert",
868
+ "hover:bg-alert-container-hovered",
869
+ "enabled:active:bg-alert-container-hovered",
870
+ "focus-visible:bg-alert-container-hovered"
871
+ ])
872
+ },
873
+ {
874
+ intent: "danger",
875
+ design: "contrast",
876
+ class: (0, import_internal_utils7.tw)([
877
+ "text-error",
878
+ "hover:bg-error-container-hovered",
879
+ "enabled:active:bg-error-container-hovered",
880
+ "focus-visible:bg-error-container-hovered"
881
+ ])
882
+ },
883
+ {
884
+ intent: "info",
885
+ design: "contrast",
886
+ class: (0, import_internal_utils7.tw)([
887
+ "text-info",
888
+ "hover:bg-info-container-hovered",
889
+ "enabled:active:bg-info-container-hovered",
890
+ "focus-visible:bg-info-container-hovered"
891
+ ])
892
+ },
893
+ {
894
+ intent: "neutral",
895
+ design: "contrast",
896
+ class: (0, import_internal_utils7.tw)([
897
+ "text-neutral",
898
+ "hover:bg-neutral-container-hovered",
899
+ "enabled:active:bg-neutral-container-hovered",
900
+ "focus-visible:bg-neutral-container-hovered"
901
+ ])
902
+ },
903
+ {
904
+ intent: "surface",
905
+ design: "contrast",
906
+ class: (0, import_internal_utils7.tw)([
907
+ "text-on-surface",
908
+ "hover:bg-surface-hovered",
909
+ "enabled:active:bg-surface-hovered",
910
+ "focus-visible:bg-surface-hovered"
911
+ ])
912
+ }
913
+ ];
914
+
915
+ // src/button/Button.styles.tsx
916
+ var buttonStyles = (0, import_class_variance_authority4.cva)(
917
+ [
918
+ "u-shadow-border-transition",
919
+ "box-border inline-flex items-center justify-center gap-md whitespace-nowrap",
920
+ "px-lg",
921
+ "text-body-1 font-bold",
922
+ "focus-visible:u-outline"
923
+ ],
924
+ {
925
+ variants: {
926
+ /**
927
+ * Main style of the button.
928
+ *
929
+ * - `filled`: Button will be plain.
930
+ *
931
+ * - `outlined`: Button will be transparent with an outline.
932
+ *
933
+ * - `tinted`: Button will be filled but using a lighter color scheme.
934
+ *
935
+ * - `ghost`: Button will look like a link. No borders, plain text.
936
+ *
937
+ * - `contrast`: Button will be surface filled. No borders, plain text.
938
+ *
939
+ */
940
+ design: (0, import_internal_utils8.makeVariants)({
941
+ filled: [],
942
+ outlined: ["bg-transparent", "border-sm", "border-current"],
943
+ tinted: [],
944
+ ghost: [],
945
+ contrast: ["bg-surface"]
946
+ }),
947
+ /**
948
+ * Color scheme of the button.
949
+ */
950
+ intent: (0, import_internal_utils8.makeVariants)({
951
+ main: [],
952
+ support: [],
953
+ accent: [],
954
+ basic: [],
955
+ success: [],
956
+ alert: [],
957
+ danger: [],
958
+ info: [],
959
+ neutral: [],
960
+ surface: []
961
+ }),
962
+ /**
963
+ * Size of the button.
964
+ */
965
+ size: (0, import_internal_utils8.makeVariants)({
966
+ sm: ["min-w-sz-32", "h-sz-32"],
967
+ md: ["min-w-sz-44", "h-sz-44"],
968
+ lg: ["min-w-sz-56", "h-sz-56"]
969
+ }),
970
+ /**
971
+ * Shape of the button.
972
+ */
973
+ shape: (0, import_internal_utils8.makeVariants)({
974
+ rounded: ["rounded-lg"],
975
+ square: ["rounded-0"],
976
+ pill: ["rounded-full"]
977
+ }),
978
+ /**
979
+ * Disable the button, preventing user interaction and adding opacity.
980
+ */
981
+ disabled: {
982
+ true: ["cursor-not-allowed", "opacity-dim-3"],
983
+ false: ["cursor-pointer"]
984
+ }
985
+ },
986
+ compoundVariants: [
987
+ ...filledVariants,
988
+ ...outlinedVariants,
989
+ ...tintedVariants,
990
+ ...ghostVariants,
991
+ ...contrastVariants
992
+ ],
993
+ defaultVariants: {
994
+ design: "filled",
995
+ intent: "main",
996
+ size: "md",
997
+ shape: "rounded"
998
+ }
999
+ }
1000
+ );
1001
+
1002
+ // src/button/Button.tsx
1003
+ var import_jsx_runtime8 = require("react/jsx-runtime");
1004
+ var blockedEventHandlers = [
1005
+ "onClick",
1006
+ "onMouseDown",
1007
+ "onMouseUp",
1008
+ "onMouseEnter",
1009
+ "onMouseLeave",
1010
+ "onMouseOver",
1011
+ "onMouseOut",
1012
+ "onKeyDown",
1013
+ "onKeyPress",
1014
+ "onKeyUp",
1015
+ "onSubmit"
1016
+ ];
1017
+ var Button = ({
1018
+ children,
1019
+ design = "filled",
1020
+ disabled = false,
1021
+ intent = "main",
1022
+ isLoading = false,
1023
+ loadingLabel,
1024
+ loadingText,
1025
+ shape = "rounded",
1026
+ size = "md",
1027
+ asChild,
1028
+ className,
1029
+ ref,
1030
+ ...others
1031
+ }) => {
1032
+ const Component = asChild ? Slot : "button";
1033
+ const shouldNotInteract = !!disabled || isLoading;
1034
+ const disabledEventHandlers = (0, import_react6.useMemo)(() => {
1035
+ const result = {};
1036
+ if (shouldNotInteract) {
1037
+ blockedEventHandlers.forEach((eventHandler) => result[eventHandler] = void 0);
1038
+ }
1039
+ return result;
1040
+ }, [shouldNotInteract]);
1041
+ const spinnerProps = {
1042
+ size: "current",
1043
+ className: loadingText ? "inline-block" : "absolute",
1044
+ ...loadingLabel && { "aria-label": loadingLabel }
1045
+ };
1046
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1047
+ Component,
1048
+ {
1049
+ "data-spark-component": "button",
1050
+ ...Component === "button" && { type: "button" },
1051
+ ref,
1052
+ className: buttonStyles({
1053
+ className,
1054
+ design,
1055
+ disabled: shouldNotInteract,
1056
+ intent,
1057
+ shape,
1058
+ size
1059
+ }),
1060
+ disabled: !!disabled,
1061
+ "aria-busy": isLoading,
1062
+ "aria-live": isLoading ? "assertive" : "off",
1063
+ ...others,
1064
+ ...disabledEventHandlers,
1065
+ children: wrapPolymorphicSlot(
1066
+ asChild,
1067
+ children,
1068
+ (slotted) => isLoading ? /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
1069
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Spinner, { ...spinnerProps }),
1070
+ loadingText && loadingText,
1071
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1072
+ "div",
1073
+ {
1074
+ "aria-hidden": true,
1075
+ className: (0, import_class_variance_authority5.cx)("gap-md", loadingText ? "hidden" : "inline-flex opacity-0"),
1076
+ children: slotted
1077
+ }
1078
+ )
1079
+ ] }) : slotted
1080
+ )
1081
+ }
1082
+ );
1083
+ };
1084
+ Button.displayName = "Button";
1085
+
1086
+ // src/icon-button/IconButton.styles.tsx
1087
+ var import_internal_utils9 = require("@spark-ui/internal-utils");
1088
+ var import_class_variance_authority6 = require("class-variance-authority");
1089
+ var iconButtonStyles = (0, import_class_variance_authority6.cva)(["pl-0 pr-0"], {
1090
+ variants: {
1091
+ /**
1092
+ * Sets the size of the icon.
1093
+ */
1094
+ size: (0, import_internal_utils9.makeVariants)({
1095
+ sm: ["text-body-1"],
1096
+ md: ["text-body-1"],
1097
+ lg: ["text-display-3"]
1098
+ })
1099
+ }
1100
+ });
1101
+
1102
+ // src/icon-button/IconButton.tsx
1103
+ var import_jsx_runtime9 = require("react/jsx-runtime");
1104
+ var IconButton = ({
1105
+ design = "filled",
1106
+ disabled = false,
1107
+ intent = "main",
1108
+ shape = "rounded",
1109
+ size = "md",
1110
+ className,
1111
+ ref,
1112
+ ...others
1113
+ }) => {
1114
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1115
+ Button,
1116
+ {
1117
+ ref,
1118
+ className: iconButtonStyles({ size, className }),
1119
+ design,
1120
+ disabled,
1121
+ intent,
1122
+ shape,
1123
+ size,
1124
+ ...others
1125
+ }
1126
+ );
1127
+ };
1128
+ IconButton.displayName = "IconButton";
1129
+
1130
+ // src/pagination/PaginationFirstPageTrigger.tsx
1131
+ var import_jsx_runtime10 = require("react/jsx-runtime");
1132
+ var FirstPageTrigger = ({
1133
+ children,
1134
+ className,
1135
+ href,
1136
+ ref,
1137
+ ...props
1138
+ }) => {
1139
+ const { pagination: pagination2, type } = usePagination();
1140
+ const apiProps = pagination2.getFirstPageTriggerProps();
1141
+ const shouldDisableLink = type === "link" && apiProps["data-disabled"] === "";
1142
+ const localProps = {
1143
+ "data-spark-component": "pagination-first-page-trigger",
1144
+ intent: "support",
1145
+ design: "ghost",
1146
+ ...props,
1147
+ className,
1148
+ ...shouldDisableLink && {
1149
+ disabled: true,
1150
+ role: "link",
1151
+ "aria-disabled": true
1152
+ }
1153
+ };
1154
+ const mergedProps = (0, import_react7.mergeProps)(
1155
+ apiProps,
1156
+ localProps
1157
+ );
1158
+ const content = children || /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Icon, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_ArrowDoubleLeft.ArrowDoubleLeft, {}) });
1159
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("li", { children: href ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(IconButton, { ref, ...mergedProps, asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("a", { href: shouldDisableLink ? void 0 : href, children: content }) }) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(IconButton, { ref, ...mergedProps, children: content }) });
1160
+ };
1161
+ FirstPageTrigger.displayName = "Pagination.FirstPageTrigger";
1162
+
1163
+ // src/pagination/PaginationItem.tsx
1164
+ var import_react8 = require("@zag-js/react");
1165
+ var import_jsx_runtime11 = require("react/jsx-runtime");
1166
+ var Item = ({ children, value, className, href, ref, ...props }) => {
1167
+ const { pagination: pagination2 } = usePagination();
1168
+ const apiProps = pagination2.getItemProps({ type: "page", value });
1169
+ const localProps = {
1170
+ "data-spark-component": "pagination-item",
1171
+ intent: "support",
1172
+ design: apiProps["aria-current"] === "page" ? "filled" : "ghost",
1173
+ className,
1174
+ ...props
1175
+ };
1176
+ const mergedProps = (0, import_react8.mergeProps)(apiProps, localProps);
1177
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("li", { children: href ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Button, { ref, ...mergedProps, asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("a", { href, children: children || value }) }) : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Button, { ref, ...mergedProps, children: children || value }) });
1178
+ };
1179
+ Item.displayName = "Pagination.Item";
1180
+
1181
+ // src/pagination/PaginationLastPageTrigger.tsx
1182
+ var import_ArrowDoubleRight = require("@spark-ui/icons/ArrowDoubleRight");
1183
+ var import_react9 = require("@zag-js/react");
1184
+ var import_jsx_runtime12 = require("react/jsx-runtime");
1185
+ var LastPageTrigger = ({
1186
+ children,
1187
+ className,
1188
+ href,
1189
+ ref,
1190
+ ...props
1191
+ }) => {
1192
+ const { pagination: pagination2, type } = usePagination();
1193
+ const apiProps = pagination2.getLastPageTriggerProps();
1194
+ const shouldDisableLink = type === "link" && apiProps["data-disabled"] === "";
1195
+ const localProps = {
1196
+ "data-spark-component": "pagination-last-page-trigger",
1197
+ intent: "support",
1198
+ design: "ghost",
1199
+ ...props,
1200
+ className,
1201
+ ...shouldDisableLink && {
1202
+ disabled: true,
1203
+ role: "link",
1204
+ "aria-disabled": true
1205
+ }
1206
+ };
1207
+ const mergedProps = (0, import_react9.mergeProps)(
1208
+ apiProps,
1209
+ localProps
1210
+ );
1211
+ const content = children || /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Icon, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_ArrowDoubleRight.ArrowDoubleRight, {}) });
1212
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("li", { children: href ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(IconButton, { ref, ...mergedProps, asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("a", { href: shouldDisableLink ? void 0 : href, children: content }) }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(IconButton, { ref, ...mergedProps, children: content }) });
1213
+ };
1214
+ LastPageTrigger.displayName = "Pagination.LastPageTrigger";
1215
+
1216
+ // src/pagination/PaginationNextTrigger.tsx
1217
+ var import_ArrowVerticalRight = require("@spark-ui/icons/ArrowVerticalRight");
1218
+ var import_react10 = require("@zag-js/react");
1219
+ var import_jsx_runtime13 = require("react/jsx-runtime");
1220
+ var NextTrigger = ({ children, className, href, ref, ...props }) => {
1221
+ const { pagination: pagination2, type } = usePagination();
1222
+ const apiProps = pagination2.getNextTriggerProps();
1223
+ const shouldDisableLink = type === "link" && apiProps["data-disabled"] === "";
1224
+ const localProps = {
1225
+ "data-spark-component": "pagination-next-trigger",
1226
+ intent: "support",
1227
+ design: "ghost",
1228
+ ...props,
1229
+ className,
1230
+ ...shouldDisableLink && {
1231
+ disabled: true,
1232
+ role: "link",
1233
+ "aria-disabled": true
1234
+ }
1235
+ };
1236
+ const mergedProps = (0, import_react10.mergeProps)(
1237
+ apiProps,
1238
+ localProps
1239
+ );
1240
+ const content = children || /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Icon, { children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_ArrowVerticalRight.ArrowVerticalRight, {}) });
1241
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("li", { children: href ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconButton, { ref, ...mergedProps, asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("a", { href: shouldDisableLink ? void 0 : href, children: content }) }) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconButton, { ref, ...mergedProps, children: content }) });
1242
+ };
1243
+ NextTrigger.displayName = "Pagination.NextTrigger";
1244
+
1245
+ // src/pagination/PaginationPages.tsx
1246
+ var Pages = ({ children }) => {
1247
+ const { pagination: pagination2 } = usePagination();
1248
+ return children(pagination2);
1249
+ };
1250
+ Pages.displayName = "Pagination.Pages";
1251
+
1252
+ // src/pagination/PaginationPrevTrigger.tsx
1253
+ var import_ArrowVerticalLeft = require("@spark-ui/icons/ArrowVerticalLeft");
1254
+ var import_react11 = require("@zag-js/react");
1255
+ var import_jsx_runtime14 = require("react/jsx-runtime");
1256
+ var PrevTrigger = ({ children, className, href, ref, ...props }) => {
1257
+ const { pagination: pagination2, type } = usePagination();
1258
+ const apiProps = pagination2.getPrevTriggerProps();
1259
+ const shouldDisableLink = type === "link" && apiProps["data-disabled"] === "";
1260
+ const localProps = {
1261
+ "data-spark-component": "pagination-prev-trigger",
1262
+ intent: "support",
1263
+ design: "ghost",
1264
+ ...props,
1265
+ className,
1266
+ ...shouldDisableLink && {
1267
+ disabled: true,
1268
+ role: "link",
1269
+ "aria-disabled": true
1270
+ }
1271
+ };
1272
+ const mergedProps = (0, import_react11.mergeProps)(
1273
+ apiProps,
1274
+ localProps
1275
+ );
1276
+ const content = children || /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Icon, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_ArrowVerticalLeft.ArrowVerticalLeft, {}) });
1277
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("li", { children: href ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(IconButton, { ref, ...mergedProps, asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("a", { href: shouldDisableLink ? void 0 : href, children: content }) }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(IconButton, { ref, ...mergedProps, children: content }) });
1278
+ };
1279
+ PrevTrigger.displayName = "Pagination.PrevTrigger";
1280
+
1281
+ // src/pagination/index.ts
1282
+ var Pagination2 = Object.assign(Pagination, {
1283
+ PrevTrigger,
1284
+ NextTrigger,
1285
+ Pages,
1286
+ Item,
1287
+ Ellipsis,
1288
+ FirstPageTrigger,
1289
+ LastPageTrigger
1290
+ });
1291
+ Pagination2.displayName = "Pagination";
1292
+ PrevTrigger.displayName = "Pagination.PrevTrigger";
1293
+ NextTrigger.displayName = "Pagination.NextTrigger";
1294
+ Pages.displayName = "Pagination.Pages";
1295
+ Item.displayName = "Pagination.Item";
1296
+ Ellipsis.displayName = "Pagination.Ellipsis";
1297
+ FirstPageTrigger.displayName = "Pagination.FirstPageTrigger";
1298
+ LastPageTrigger.displayName = "Pagination.LastPageTrigger";
1299
+ // Annotate the CommonJS export names for ESM import in node:
1300
+ 0 && (module.exports = {
1301
+ Pagination
1302
+ });
1303
+ //# sourceMappingURL=index.js.map