@tomny-dev/uzi 0.5.0 → 0.6.0-pr.60.173.1.802e4f7

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 (279) hide show
  1. package/README.md +5 -2
  2. package/dist/components/card/Card.d.ts +7 -5
  3. package/dist/components/card/Card.d.ts.map +1 -1
  4. package/dist/components/page-container/PageContainer.d.ts +2 -1
  5. package/dist/components/page-container/PageContainer.d.ts.map +1 -1
  6. package/dist/components/surface/Surface.d.ts +16 -0
  7. package/dist/components/surface/Surface.d.ts.map +1 -0
  8. package/dist/components/toolbar/Toolbar.d.ts +13 -0
  9. package/dist/components/toolbar/Toolbar.d.ts.map +1 -0
  10. package/dist/index.cjs +36 -31
  11. package/dist/index.d.ts +4 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +34 -32
  14. package/dist/index10.cjs.map +1 -1
  15. package/dist/index10.js +19 -15
  16. package/dist/index10.js.map +1 -1
  17. package/dist/index11.cjs +21 -18
  18. package/dist/index11.cjs.map +1 -1
  19. package/dist/index11.js +8 -15
  20. package/dist/index11.js.map +1 -1
  21. package/dist/index12.cjs +7 -14
  22. package/dist/index12.cjs.map +1 -1
  23. package/dist/index12.js +15 -37
  24. package/dist/index12.js.map +1 -1
  25. package/dist/index13.cjs +18 -52
  26. package/dist/index13.cjs.map +1 -1
  27. package/dist/index13.js +15 -77
  28. package/dist/index13.js.map +1 -1
  29. package/dist/index14.cjs +15 -80
  30. package/dist/index14.cjs.map +1 -1
  31. package/dist/index14.js +37 -13
  32. package/dist/index14.js.map +1 -1
  33. package/dist/index15.cjs +52 -18
  34. package/dist/index15.cjs.map +1 -1
  35. package/dist/index15.js +77 -9
  36. package/dist/index15.js.map +1 -1
  37. package/dist/index16.cjs +79 -8
  38. package/dist/index16.cjs.map +1 -1
  39. package/dist/index16.js +13 -41
  40. package/dist/index16.js.map +1 -1
  41. package/dist/index17.cjs +18 -60
  42. package/dist/index17.cjs.map +1 -1
  43. package/dist/index17.js +9 -428
  44. package/dist/index17.js.map +1 -1
  45. package/dist/index18.cjs +8 -430
  46. package/dist/index18.cjs.map +1 -1
  47. package/dist/index18.js +42 -4
  48. package/dist/index18.js.map +1 -1
  49. package/dist/index19.cjs +61 -5
  50. package/dist/index19.cjs.map +1 -1
  51. package/dist/index19.js +430 -13
  52. package/dist/index19.js.map +1 -1
  53. package/dist/index20.cjs +430 -12
  54. package/dist/index20.cjs.map +1 -1
  55. package/dist/index20.js +4 -4
  56. package/dist/index20.js.map +1 -1
  57. package/dist/index21.cjs +5 -5
  58. package/dist/index21.cjs.map +1 -1
  59. package/dist/index21.js +12 -9
  60. package/dist/index21.js.map +1 -1
  61. package/dist/index22.cjs +12 -9
  62. package/dist/index22.cjs.map +1 -1
  63. package/dist/index22.js +4 -4
  64. package/dist/index22.js.map +1 -1
  65. package/dist/index23.cjs +5 -5
  66. package/dist/index23.cjs.map +1 -1
  67. package/dist/index23.js +9 -12
  68. package/dist/index23.js.map +1 -1
  69. package/dist/index24.cjs +9 -12
  70. package/dist/index24.cjs.map +1 -1
  71. package/dist/index24.js +4 -38
  72. package/dist/index24.js.map +1 -1
  73. package/dist/index25.cjs +5 -55
  74. package/dist/index25.cjs.map +1 -1
  75. package/dist/index25.js +11 -116
  76. package/dist/index25.js.map +1 -1
  77. package/dist/index26.cjs +10 -116
  78. package/dist/index26.cjs.map +1 -1
  79. package/dist/index26.js +31 -19
  80. package/dist/index26.js.map +1 -1
  81. package/dist/index27.cjs +42 -24
  82. package/dist/index27.cjs.map +1 -1
  83. package/dist/index27.js +106 -93
  84. package/dist/index27.js.map +1 -1
  85. package/dist/index28.cjs +106 -93
  86. package/dist/index28.cjs.map +1 -1
  87. package/dist/index28.js +26 -23
  88. package/dist/index28.js.map +1 -1
  89. package/dist/index29.cjs +37 -25
  90. package/dist/index29.cjs.map +1 -1
  91. package/dist/index29.js +107 -26
  92. package/dist/index29.js.map +1 -1
  93. package/dist/index30.cjs +110 -37
  94. package/dist/index30.cjs.map +1 -1
  95. package/dist/index30.js +21 -113
  96. package/dist/index30.js.map +1 -1
  97. package/dist/index31.cjs +19 -125
  98. package/dist/index31.cjs.map +1 -1
  99. package/dist/index31.js +26 -17
  100. package/dist/index31.js.map +1 -1
  101. package/dist/index32.cjs +37 -20
  102. package/dist/index32.cjs.map +1 -1
  103. package/dist/index32.js +108 -104
  104. package/dist/index32.js.map +1 -1
  105. package/dist/index33.cjs +122 -103
  106. package/dist/index33.cjs.map +1 -1
  107. package/dist/index33.js +17 -4
  108. package/dist/index33.js.map +1 -1
  109. package/dist/index34.cjs +20 -5
  110. package/dist/index34.cjs.map +1 -1
  111. package/dist/index34.js +106 -58
  112. package/dist/index34.js.map +1 -1
  113. package/dist/index35.cjs +106 -57
  114. package/dist/index35.cjs.map +1 -1
  115. package/dist/index35.js +4 -22
  116. package/dist/index35.js.map +1 -1
  117. package/dist/index36.cjs +5 -31
  118. package/dist/index36.cjs.map +1 -1
  119. package/dist/index36.js +55 -44
  120. package/dist/index36.js.map +1 -1
  121. package/dist/index37.cjs +55 -44
  122. package/dist/index37.cjs.map +1 -1
  123. package/dist/index37.js +21 -31
  124. package/dist/index37.js.map +1 -1
  125. package/dist/index38.cjs +30 -45
  126. package/dist/index38.cjs.map +1 -1
  127. package/dist/index38.js +46 -141
  128. package/dist/index38.js.map +1 -1
  129. package/dist/index39.cjs +46 -141
  130. package/dist/index39.cjs.map +1 -1
  131. package/dist/index39.js +31 -41
  132. package/dist/index39.js.map +1 -1
  133. package/dist/index40.cjs +45 -60
  134. package/dist/index40.cjs.map +1 -1
  135. package/dist/index40.js +139 -163
  136. package/dist/index40.js.map +1 -1
  137. package/dist/index41.cjs +137 -161
  138. package/dist/index41.cjs.map +1 -1
  139. package/dist/index41.js +41 -12
  140. package/dist/index41.js.map +1 -1
  141. package/dist/index42.cjs +60 -14
  142. package/dist/index42.cjs.map +1 -1
  143. package/dist/index42.js +167 -15
  144. package/dist/index42.js.map +1 -1
  145. package/dist/index43.cjs +166 -14
  146. package/dist/index43.cjs.map +1 -1
  147. package/dist/index43.js +12 -15
  148. package/dist/index43.js.map +1 -1
  149. package/dist/index44.cjs +14 -21
  150. package/dist/index44.cjs.map +1 -1
  151. package/dist/index44.js +15 -28
  152. package/dist/index44.js.map +1 -1
  153. package/dist/index45.cjs +14 -27
  154. package/dist/index45.cjs.map +1 -1
  155. package/dist/index45.js +10 -8
  156. package/dist/index45.js.map +1 -1
  157. package/dist/index46.cjs +11 -8
  158. package/dist/index46.cjs.map +1 -1
  159. package/dist/index46.js +22 -15
  160. package/dist/index46.js.map +1 -1
  161. package/dist/index47.cjs +22 -15
  162. package/dist/index47.cjs.map +1 -1
  163. package/dist/index47.js +9 -13
  164. package/dist/index47.js.map +1 -1
  165. package/dist/index48.cjs +10 -16
  166. package/dist/index48.cjs.map +1 -1
  167. package/dist/index48.js +18 -25
  168. package/dist/index48.js.map +1 -1
  169. package/dist/index49.cjs +18 -25
  170. package/dist/index49.cjs.map +1 -1
  171. package/dist/index49.js +17 -14
  172. package/dist/index49.js.map +1 -1
  173. package/dist/index50.cjs +24 -17
  174. package/dist/index50.cjs.map +1 -1
  175. package/dist/index50.js +28 -28
  176. package/dist/index50.js.map +1 -1
  177. package/dist/index51.cjs +27 -28
  178. package/dist/index51.cjs.map +1 -1
  179. package/dist/index51.js +14 -17
  180. package/dist/index51.js.map +1 -1
  181. package/dist/index52.cjs +17 -22
  182. package/dist/index52.cjs.map +1 -1
  183. package/dist/index52.js +23 -23
  184. package/dist/index52.js.map +1 -1
  185. package/dist/index53.cjs +23 -23
  186. package/dist/index53.cjs.map +1 -1
  187. package/dist/index53.js +17 -10
  188. package/dist/index53.js.map +1 -1
  189. package/dist/index54.cjs +22 -11
  190. package/dist/index54.cjs.map +1 -1
  191. package/dist/index54.js +28 -14
  192. package/dist/index54.js.map +1 -1
  193. package/dist/index55.cjs +28 -13
  194. package/dist/index55.cjs.map +1 -1
  195. package/dist/index55.js +17 -11
  196. package/dist/index55.js.map +1 -1
  197. package/dist/index56.cjs +23 -13
  198. package/dist/index56.cjs.map +1 -1
  199. package/dist/index56.js +24 -16
  200. package/dist/index56.js.map +1 -1
  201. package/dist/index57.cjs +24 -15
  202. package/dist/index57.cjs.map +1 -1
  203. package/dist/index57.js +10 -9
  204. package/dist/index57.js.map +1 -1
  205. package/dist/index58.cjs +11 -12
  206. package/dist/index58.cjs.map +1 -1
  207. package/dist/index58.js +12 -87
  208. package/dist/index58.js.map +1 -1
  209. package/dist/index59.cjs +12 -89
  210. package/dist/index59.cjs.map +1 -1
  211. package/dist/index59.js +11 -21
  212. package/dist/index59.js.map +1 -1
  213. package/dist/index60.cjs +13 -30
  214. package/dist/index60.cjs.map +1 -1
  215. package/dist/index60.js +17 -43
  216. package/dist/index60.js.map +1 -1
  217. package/dist/index61.cjs +16 -44
  218. package/dist/index61.cjs.map +1 -1
  219. package/dist/index61.js +9 -57
  220. package/dist/index61.js.map +1 -1
  221. package/dist/index62.cjs +11 -83
  222. package/dist/index62.cjs.map +1 -1
  223. package/dist/index62.js +83 -426
  224. package/dist/index62.js.map +1 -1
  225. package/dist/index63.cjs +82 -427
  226. package/dist/index63.cjs.map +1 -1
  227. package/dist/index63.js +21 -59
  228. package/dist/index63.js.map +1 -1
  229. package/dist/index64.cjs +30 -87
  230. package/dist/index64.cjs.map +1 -1
  231. package/dist/index64.js +44 -240
  232. package/dist/index64.js.map +1 -1
  233. package/dist/index65.cjs +43 -239
  234. package/dist/index65.cjs.map +1 -1
  235. package/dist/index65.js +57 -43
  236. package/dist/index65.js.map +1 -1
  237. package/dist/index66.cjs +84 -63
  238. package/dist/index66.cjs.map +1 -1
  239. package/dist/index66.js +426 -73
  240. package/dist/index66.js.map +1 -1
  241. package/dist/index67.cjs +426 -71
  242. package/dist/index67.cjs.map +1 -1
  243. package/dist/index67.js +59 -21
  244. package/dist/index67.js.map +1 -1
  245. package/dist/index68.cjs +87 -30
  246. package/dist/index68.cjs.map +1 -1
  247. package/dist/index68.js +233 -88
  248. package/dist/index68.js.map +1 -1
  249. package/dist/index69.cjs +232 -89
  250. package/dist/index69.cjs.map +1 -1
  251. package/dist/index69.js +40 -16
  252. package/dist/index69.js.map +1 -1
  253. package/dist/index70.cjs +56 -20
  254. package/dist/index70.cjs.map +1 -1
  255. package/dist/index70.js +72 -145
  256. package/dist/index70.js.map +1 -1
  257. package/dist/index71.cjs +72 -145
  258. package/dist/index71.cjs.map +1 -1
  259. package/dist/index71.js +25 -0
  260. package/dist/index71.js.map +1 -0
  261. package/dist/index72.cjs +34 -0
  262. package/dist/index72.cjs.map +1 -0
  263. package/dist/index72.js +101 -0
  264. package/dist/index72.js.map +1 -0
  265. package/dist/index73.cjs +105 -0
  266. package/dist/index73.cjs.map +1 -0
  267. package/dist/index73.js +23 -0
  268. package/dist/index73.js.map +1 -0
  269. package/dist/index74.cjs +31 -0
  270. package/dist/index74.cjs.map +1 -0
  271. package/dist/index74.js +159 -0
  272. package/dist/index74.js.map +1 -0
  273. package/dist/index75.cjs +161 -0
  274. package/dist/index75.cjs.map +1 -0
  275. package/dist/index8.js.map +1 -1
  276. package/dist/index9.cjs.map +1 -1
  277. package/dist/index9.js.map +1 -1
  278. package/dist/style.css +216 -45
  279. package/package.json +2 -2
package/dist/index55.cjs CHANGED
@@ -1,21 +1,36 @@
1
- "use client";
2
1
  const require_cx = require("./index4.cjs");
3
- const require_skeleton_module = require("./index54.cjs");
2
+ const require_stat_module = require("./index54.cjs");
4
3
  let react_jsx_runtime = require("react/jsx-runtime");
5
- //#region src/components/skeleton/Skeleton.tsx
6
- function Skeleton({ width, height, radius = "md", className, style, ...rest }) {
4
+ //#region src/components/stat/Stat.tsx
5
+ function Stat({ label, value, detail, className, ...rest }) {
6
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7
+ className: require_cx.cx(require_stat_module.default.stat, className),
8
+ ...rest,
9
+ children: [
10
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
11
+ className: require_stat_module.default.label,
12
+ children: label
13
+ }),
14
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
15
+ className: require_stat_module.default.value,
16
+ children: value
17
+ }),
18
+ detail && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
19
+ className: require_stat_module.default.detail,
20
+ children: detail
21
+ })
22
+ ]
23
+ });
24
+ }
25
+ function StatGroup({ columns = 3, className, children, ...rest }) {
7
26
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8
- className: require_cx.cx(require_skeleton_module.default.skeleton, require_skeleton_module.default[`radius-${radius}`], className),
9
- style: {
10
- width,
11
- height,
12
- ...style
13
- },
14
- "aria-hidden": "true",
15
- ...rest
27
+ className: require_cx.cx(require_stat_module.default.group, require_stat_module.default[`columns-${columns}`], className),
28
+ ...rest,
29
+ children
16
30
  });
17
31
  }
18
32
  //#endregion
19
- exports.Skeleton = Skeleton;
33
+ exports.Stat = Stat;
34
+ exports.StatGroup = StatGroup;
20
35
 
21
36
  //# sourceMappingURL=index55.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index55.cjs","names":[],"sources":["../src/components/skeleton/Skeleton.tsx"],"sourcesContent":["\"use client\";\n\nimport type { HTMLAttributes } from \"react\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./skeleton.module.css\";\n\nexport type SkeletonProps = HTMLAttributes<HTMLDivElement> & {\n /** Width as a CSS value. */\n width?: string;\n /** Height as a CSS value. */\n height?: string;\n /** Border radius preset. Defaults to \"md\". */\n radius?: \"sm\" | \"md\" | \"lg\" | \"full\";\n};\n\nexport function Skeleton({\n width,\n height,\n radius = \"md\",\n className,\n style,\n ...rest\n}: SkeletonProps) {\n return (\n <div\n className={cx(styles.skeleton, styles[`radius-${radius}`], className)}\n style={{ width, height, ...style }}\n aria-hidden=\"true\"\n {...rest}\n />\n );\n}\n"],"mappings":";;;;;AAeA,SAAgB,SAAS,EACvB,OACA,QACA,SAAS,MACT,WACA,OACA,GAAG,QACa;CAChB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,WAAW,WAAA,GAAG,wBAAA,QAAO,UAAU,wBAAA,QAAO,UAAU,WAAW,SAAS;EACpE,OAAO;GAAE;GAAO;GAAQ,GAAG;EAAM;EACjC,eAAY;EACZ,GAAI;CACL,CAAA;AAEL"}
1
+ {"version":3,"file":"index55.cjs","names":[],"sources":["../src/components/stat/Stat.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from \"react\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./stat.module.css\";\n\nexport type StatProps = HTMLAttributes<HTMLDivElement> & {\n label: ReactNode;\n value: ReactNode;\n detail?: ReactNode;\n};\n\nexport function Stat({ label, value, detail, className, ...rest }: StatProps) {\n return (\n <div className={cx(styles.stat, className)} {...rest}>\n <div className={styles.label}>{label}</div>\n <div className={styles.value}>{value}</div>\n {detail && <div className={styles.detail}>{detail}</div>}\n </div>\n );\n}\n\nexport type StatGroupProps = HTMLAttributes<HTMLDivElement> & {\n columns?: 1 | 2 | 3 | 4;\n};\n\nexport function StatGroup({ columns = 3, className, children, ...rest }: StatGroupProps) {\n return (\n <div\n className={cx(styles.group, styles[`columns-${columns}`], className)}\n {...rest}\n >\n {children}\n </div>\n );\n}\n"],"mappings":";;;;AAUA,SAAgB,KAAK,EAAE,OAAO,OAAO,QAAQ,WAAW,GAAG,QAAmB;CAC5E,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EAAK,WAAW,WAAA,GAAG,oBAAA,QAAO,MAAM,SAAS;EAAG,GAAI;YAAhD;GACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAAK,WAAW,oBAAA,QAAO;cAAQ;GAAW,CAAA;GAC1C,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAAK,WAAW,oBAAA,QAAO;cAAQ;GAAW,CAAA;GACzC,UAAU,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAAK,WAAW,oBAAA,QAAO;cAAS;GAAY,CAAA;EACpD;;AAET;AAMA,SAAgB,UAAU,EAAE,UAAU,GAAG,WAAW,UAAU,GAAG,QAAwB;CACvF,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,WAAW,WAAA,GAAG,oBAAA,QAAO,OAAO,oBAAA,QAAO,WAAW,YAAY,SAAS;EACnE,GAAI;EAEH;CACE,CAAA;AAET"}
package/dist/index55.js CHANGED
@@ -1,15 +1,21 @@
1
- //#region src/components/progress/progress.module.css
2
- var track = "uzi-progress-module__track__gM0oV";
3
- var fill = "uzi-progress-module__fill__aLAbp";
4
- var progress_module_default = {
5
- track,
6
- fill,
7
- "tone-default": "uzi-progress-module__tone-default__fhf7o",
8
- "tone-success": "uzi-progress-module__tone-success__FsGHD",
9
- "tone-warning": "uzi-progress-module__tone-warning__UAttL",
10
- "tone-danger": "uzi-progress-module__tone-danger__-L-Ee"
1
+ //#region src/components/toolbar/toolbar.module.css
2
+ var toolbar = "uzi-toolbar-module__toolbar__IXW3o";
3
+ var sticky = "uzi-toolbar-module__sticky__PxGot";
4
+ var group = "uzi-toolbar-module__group__Cw0lk";
5
+ var grow = "uzi-toolbar-module__grow__8oFpY";
6
+ var label = "uzi-toolbar-module__label__H1fT1";
7
+ var controls = "uzi-toolbar-module__controls__EOiOk";
8
+ var toolbar_module_default = {
9
+ toolbar,
10
+ "density-compact": "uzi-toolbar-module__density-compact__qqXRT",
11
+ "density-default": "uzi-toolbar-module__density-default__rGiHv",
12
+ sticky,
13
+ group,
14
+ grow,
15
+ label,
16
+ controls
11
17
  };
12
18
  //#endregion
13
- export { progress_module_default as default, fill, track };
19
+ export { controls, toolbar_module_default as default, group, grow, label, sticky, toolbar };
14
20
 
15
21
  //# sourceMappingURL=index55.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index55.js","names":[],"sources":["../src/components/progress/progress.module.css"],"sourcesContent":[".track {\n height: 8px;\n border-radius: 9999px;\n overflow: hidden;\n background: color-mix(in srgb, var(--border) 60%, transparent);\n}\n\n.fill {\n height: 100%;\n border-radius: 9999px;\n transition: width 0.4s ease;\n}\n\n.tone-default { background: var(--foreground); }\n.tone-success { background: var(--success); }\n.tone-warning { background: var(--warning); }\n.tone-danger { background: var(--destructive); }\n"],"mappings":""}
1
+ {"version":3,"file":"index55.js","names":[],"sources":["../src/components/toolbar/toolbar.module.css"],"sourcesContent":[".toolbar {\n display: flex;\n min-width: 0;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--uzi-space-2, 0.5rem);\n border: 1px solid var(--uzi-border-subtle, var(--border));\n border-radius: var(--uzi-radius-md, 0.625rem);\n background: var(--uzi-surface-1, var(--panel));\n}\n\n.density-compact { padding: var(--uzi-space-2, 0.5rem); }\n\n.density-default {\n padding: var(--uzi-space-3, 0.75rem);\n gap: var(--uzi-space-3, 0.75rem);\n}\n\n.sticky {\n position: sticky;\n top: var(--uzi-toolbar-sticky-offset, 0);\n z-index: 20;\n background: color-mix(in srgb, var(--uzi-surface-1, var(--panel)) 90%, transparent);\n -webkit-backdrop-filter: blur(12px);\n backdrop-filter: blur(12px);\n}\n\n.group {\n display: flex;\n min-width: 0;\n align-items: center;\n gap: var(--uzi-space-2, 0.5rem);\n}\n\n.group + .group {\n margin-left: var(--uzi-space-1, 0.25rem);\n padding-left: var(--uzi-space-3, 0.75rem);\n border-left: 1px solid var(--uzi-border-subtle, var(--border));\n}\n\n.grow { flex: 1 1 16rem; }\n\n.label {\n flex: 0 0 auto;\n color: var(--uzi-text-secondary, var(--muted-foreground));\n font-size: var(--uzi-font-small, 0.8125rem);\n font-weight: 600;\n white-space: nowrap;\n}\n\n.controls {\n display: flex;\n min-width: 0;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--uzi-space-2, 0.5rem);\n}\n\n@media (max-width: 40rem) {\n .toolbar { align-items: stretch; }\n\n .group,\n .grow { flex: 1 1 100%; }\n\n .group + .group {\n margin-left: 0;\n padding-top: var(--uzi-space-2, 0.5rem);\n padding-left: 0;\n border-top: 1px solid var(--uzi-border-subtle, var(--border));\n border-left: 0;\n }\n\n .controls { flex: 1 1 auto; }\n}\n"],"mappings":""}
package/dist/index56.cjs CHANGED
@@ -1,17 +1,27 @@
1
- //#region src/components/progress/progress.module.css
2
- var track = "uzi-progress-module__track__gM0oV";
3
- var fill = "uzi-progress-module__fill__aLAbp";
4
- var progress_module_default = {
5
- track,
6
- fill,
7
- "tone-default": "uzi-progress-module__tone-default__fhf7o",
8
- "tone-success": "uzi-progress-module__tone-success__FsGHD",
9
- "tone-warning": "uzi-progress-module__tone-warning__UAttL",
10
- "tone-danger": "uzi-progress-module__tone-danger__-L-Ee"
1
+ //#region src/components/toolbar/toolbar.module.css
2
+ var toolbar = "uzi-toolbar-module__toolbar__IXW3o";
3
+ var sticky = "uzi-toolbar-module__sticky__PxGot";
4
+ var group = "uzi-toolbar-module__group__Cw0lk";
5
+ var grow = "uzi-toolbar-module__grow__8oFpY";
6
+ var label = "uzi-toolbar-module__label__H1fT1";
7
+ var controls = "uzi-toolbar-module__controls__EOiOk";
8
+ var toolbar_module_default = {
9
+ toolbar,
10
+ "density-compact": "uzi-toolbar-module__density-compact__qqXRT",
11
+ "density-default": "uzi-toolbar-module__density-default__rGiHv",
12
+ sticky,
13
+ group,
14
+ grow,
15
+ label,
16
+ controls
11
17
  };
12
18
  //#endregion
13
- exports.default = progress_module_default;
14
- exports.fill = fill;
15
- exports.track = track;
19
+ exports.controls = controls;
20
+ exports.default = toolbar_module_default;
21
+ exports.group = group;
22
+ exports.grow = grow;
23
+ exports.label = label;
24
+ exports.sticky = sticky;
25
+ exports.toolbar = toolbar;
16
26
 
17
27
  //# sourceMappingURL=index56.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index56.cjs","names":[],"sources":["../src/components/progress/progress.module.css"],"sourcesContent":[".track {\n height: 8px;\n border-radius: 9999px;\n overflow: hidden;\n background: color-mix(in srgb, var(--border) 60%, transparent);\n}\n\n.fill {\n height: 100%;\n border-radius: 9999px;\n transition: width 0.4s ease;\n}\n\n.tone-default { background: var(--foreground); }\n.tone-success { background: var(--success); }\n.tone-warning { background: var(--warning); }\n.tone-danger { background: var(--destructive); }\n"],"mappings":""}
1
+ {"version":3,"file":"index56.cjs","names":[],"sources":["../src/components/toolbar/toolbar.module.css"],"sourcesContent":[".toolbar {\n display: flex;\n min-width: 0;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--uzi-space-2, 0.5rem);\n border: 1px solid var(--uzi-border-subtle, var(--border));\n border-radius: var(--uzi-radius-md, 0.625rem);\n background: var(--uzi-surface-1, var(--panel));\n}\n\n.density-compact { padding: var(--uzi-space-2, 0.5rem); }\n\n.density-default {\n padding: var(--uzi-space-3, 0.75rem);\n gap: var(--uzi-space-3, 0.75rem);\n}\n\n.sticky {\n position: sticky;\n top: var(--uzi-toolbar-sticky-offset, 0);\n z-index: 20;\n background: color-mix(in srgb, var(--uzi-surface-1, var(--panel)) 90%, transparent);\n -webkit-backdrop-filter: blur(12px);\n backdrop-filter: blur(12px);\n}\n\n.group {\n display: flex;\n min-width: 0;\n align-items: center;\n gap: var(--uzi-space-2, 0.5rem);\n}\n\n.group + .group {\n margin-left: var(--uzi-space-1, 0.25rem);\n padding-left: var(--uzi-space-3, 0.75rem);\n border-left: 1px solid var(--uzi-border-subtle, var(--border));\n}\n\n.grow { flex: 1 1 16rem; }\n\n.label {\n flex: 0 0 auto;\n color: var(--uzi-text-secondary, var(--muted-foreground));\n font-size: var(--uzi-font-small, 0.8125rem);\n font-weight: 600;\n white-space: nowrap;\n}\n\n.controls {\n display: flex;\n min-width: 0;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--uzi-space-2, 0.5rem);\n}\n\n@media (max-width: 40rem) {\n .toolbar { align-items: stretch; }\n\n .group,\n .grow { flex: 1 1 100%; }\n\n .group + .group {\n margin-left: 0;\n padding-top: var(--uzi-space-2, 0.5rem);\n padding-left: 0;\n border-top: 1px solid var(--uzi-border-subtle, var(--border));\n border-left: 0;\n }\n\n .controls { flex: 1 1 auto; }\n}\n"],"mappings":""}
package/dist/index56.js CHANGED
@@ -1,24 +1,32 @@
1
1
  import { cx } from "./index3.js";
2
- import progress_module_default from "./index55.js";
3
- import { jsx } from "react/jsx-runtime";
4
- //#region src/components/progress/Progress.tsx
5
- function Progress({ value, tone = "default", className, "aria-label": ariaLabel, ...rest }) {
6
- const clamped = Math.max(0, Math.min(100, value));
2
+ import toolbar_module_default from "./index55.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ //#region src/components/toolbar/Toolbar.tsx
5
+ function Toolbar({ density = "compact", sticky = false, role, className, children, ...rest }) {
7
6
  return /* @__PURE__ */ jsx("div", {
8
- className: cx(progress_module_default.track, className),
9
- role: "progressbar",
10
- "aria-valuenow": clamped,
11
- "aria-valuemin": 0,
12
- "aria-valuemax": 100,
13
- "aria-label": ariaLabel,
7
+ role,
8
+ className: cx(toolbar_module_default.toolbar, toolbar_module_default[`density-${density}`], sticky && toolbar_module_default.sticky, className),
14
9
  ...rest,
15
- children: /* @__PURE__ */ jsx("div", {
16
- className: cx(progress_module_default.fill, progress_module_default[`tone-${tone}`]),
17
- style: { width: `${clamped}%` }
18
- })
10
+ children
11
+ });
12
+ }
13
+ function ToolbarGroup({ label, grow = false, role, "aria-label": ariaLabel, className, children, ...rest }) {
14
+ const groupLabel = ariaLabel ?? (typeof label === "string" ? label : void 0);
15
+ return /* @__PURE__ */ jsxs("div", {
16
+ role: role ?? (label != null || groupLabel != null ? "group" : void 0),
17
+ "aria-label": groupLabel,
18
+ className: cx(toolbar_module_default.group, grow && toolbar_module_default.grow, className),
19
+ ...rest,
20
+ children: [label != null && /* @__PURE__ */ jsx("span", {
21
+ className: toolbar_module_default.label,
22
+ children: label
23
+ }), /* @__PURE__ */ jsx("div", {
24
+ className: toolbar_module_default.controls,
25
+ children
26
+ })]
19
27
  });
20
28
  }
21
29
  //#endregion
22
- export { Progress };
30
+ export { Toolbar, ToolbarGroup };
23
31
 
24
32
  //# sourceMappingURL=index56.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index56.js","names":[],"sources":["../src/components/progress/Progress.tsx"],"sourcesContent":["import type { HTMLAttributes } from \"react\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./progress.module.css\";\n\nexport type ProgressTone = \"default\" | \"success\" | \"warning\" | \"danger\";\n\nexport type ProgressProps = HTMLAttributes<HTMLDivElement> & {\n /** Value 0–100. */\n value: number;\n /** Visual tone. Defaults to \"default\". */\n tone?: ProgressTone;\n /** Accessible label. */\n \"aria-label\"?: string;\n};\n\nexport function Progress({\n value,\n tone = \"default\",\n className,\n \"aria-label\": ariaLabel,\n ...rest\n}: ProgressProps) {\n const clamped = Math.max(0, Math.min(100, value));\n return (\n <div\n className={cx(styles.track, className)}\n role=\"progressbar\"\n aria-valuenow={clamped}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label={ariaLabel}\n {...rest}\n >\n <div\n className={cx(styles.fill, styles[`tone-${tone}`])}\n style={{ width: `${clamped}%` }}\n />\n </div>\n );\n}\n"],"mappings":";;;;AAeA,SAAgB,SAAS,EACvB,OACA,OAAO,WACP,WACA,cAAc,WACd,GAAG,QACa;CAChB,MAAM,UAAU,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC;CAChD,OACE,oBAAC,OAAD;EACE,WAAW,GAAG,wBAAO,OAAO,SAAS;EACrC,MAAK;EACL,iBAAe;EACf,iBAAe;EACf,iBAAe;EACf,cAAY;EACZ,GAAI;YAEJ,oBAAC,OAAD;GACE,WAAW,GAAG,wBAAO,MAAM,wBAAO,QAAQ,OAAO;GACjD,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG;EAC/B,CAAA;CACE,CAAA;AAET"}
1
+ {"version":3,"file":"index56.js","names":[],"sources":["../src/components/toolbar/Toolbar.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from \"react\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./toolbar.module.css\";\n\nexport type ToolbarDensity = \"compact\" | \"default\";\n\nexport type ToolbarProps = HTMLAttributes<HTMLDivElement> & {\n density?: ToolbarDensity;\n sticky?: boolean;\n};\n\nexport function Toolbar({\n density = \"compact\",\n sticky = false,\n role,\n className,\n children,\n ...rest\n}: ToolbarProps) {\n return (\n <div\n role={role}\n className={cx(styles.toolbar, styles[`density-${density}`], sticky && styles.sticky, className)}\n {...rest}\n >\n {children}\n </div>\n );\n}\n\nexport type ToolbarGroupProps = HTMLAttributes<HTMLDivElement> & {\n label?: ReactNode;\n grow?: boolean;\n};\n\nexport function ToolbarGroup({\n label,\n grow = false,\n role,\n \"aria-label\": ariaLabel,\n className,\n children,\n ...rest\n}: ToolbarGroupProps) {\n const groupLabel = ariaLabel ?? (typeof label === \"string\" ? label : undefined);\n const groupRole = role ?? (label != null || groupLabel != null ? \"group\" : undefined);\n\n return (\n <div\n role={groupRole}\n aria-label={groupLabel}\n className={cx(styles.group, grow && styles.grow, className)}\n {...rest}\n >\n {label != null && <span className={styles.label}>{label}</span>}\n <div className={styles.controls}>{children}</div>\n </div>\n );\n}\n"],"mappings":";;;;AAWA,SAAgB,QAAQ,EACtB,UAAU,WACV,SAAS,OACT,MACA,WACA,UACA,GAAG,QACY;CACf,OACE,oBAAC,OAAD;EACQ;EACN,WAAW,GAAG,uBAAO,SAAS,uBAAO,WAAW,YAAY,UAAU,uBAAO,QAAQ,SAAS;EAC9F,GAAI;EAEH;CACE,CAAA;AAET;AAOA,SAAgB,aAAa,EAC3B,OACA,OAAO,OACP,MACA,cAAc,WACd,WACA,UACA,GAAG,QACiB;CACpB,MAAM,aAAa,cAAc,OAAO,UAAU,WAAW,QAAQ,KAAA;CAGrE,OACE,qBAAC,OAAD;EACE,MAJc,SAAS,SAAS,QAAQ,cAAc,OAAO,UAAU,KAAA;EAKvE,cAAY;EACZ,WAAW,GAAG,uBAAO,OAAO,QAAQ,uBAAO,MAAM,SAAS;EAC1D,GAAI;YAJN,CAMG,SAAS,QAAQ,oBAAC,QAAD;GAAM,WAAW,uBAAO;aAAQ;EAAY,CAAA,GAC9D,oBAAC,OAAD;GAAK,WAAW,uBAAO;GAAW;EAAc,CAAA,CAC7C;;AAET"}
package/dist/index57.cjs CHANGED
@@ -1,24 +1,33 @@
1
1
  const require_cx = require("./index4.cjs");
2
- const require_progress_module = require("./index56.cjs");
2
+ const require_toolbar_module = require("./index56.cjs");
3
3
  let react_jsx_runtime = require("react/jsx-runtime");
4
- //#region src/components/progress/Progress.tsx
5
- function Progress({ value, tone = "default", className, "aria-label": ariaLabel, ...rest }) {
6
- const clamped = Math.max(0, Math.min(100, value));
4
+ //#region src/components/toolbar/Toolbar.tsx
5
+ function Toolbar({ density = "compact", sticky = false, role, className, children, ...rest }) {
7
6
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8
- className: require_cx.cx(require_progress_module.default.track, className),
9
- role: "progressbar",
10
- "aria-valuenow": clamped,
11
- "aria-valuemin": 0,
12
- "aria-valuemax": 100,
13
- "aria-label": ariaLabel,
7
+ role,
8
+ className: require_cx.cx(require_toolbar_module.default.toolbar, require_toolbar_module.default[`density-${density}`], sticky && require_toolbar_module.default.sticky, className),
14
9
  ...rest,
15
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
16
- className: require_cx.cx(require_progress_module.default.fill, require_progress_module.default[`tone-${tone}`]),
17
- style: { width: `${clamped}%` }
18
- })
10
+ children
11
+ });
12
+ }
13
+ function ToolbarGroup({ label, grow = false, role, "aria-label": ariaLabel, className, children, ...rest }) {
14
+ const groupLabel = ariaLabel ?? (typeof label === "string" ? label : void 0);
15
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
16
+ role: role ?? (label != null || groupLabel != null ? "group" : void 0),
17
+ "aria-label": groupLabel,
18
+ className: require_cx.cx(require_toolbar_module.default.group, grow && require_toolbar_module.default.grow, className),
19
+ ...rest,
20
+ children: [label != null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
21
+ className: require_toolbar_module.default.label,
22
+ children: label
23
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
24
+ className: require_toolbar_module.default.controls,
25
+ children
26
+ })]
19
27
  });
20
28
  }
21
29
  //#endregion
22
- exports.Progress = Progress;
30
+ exports.Toolbar = Toolbar;
31
+ exports.ToolbarGroup = ToolbarGroup;
23
32
 
24
33
  //# sourceMappingURL=index57.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index57.cjs","names":[],"sources":["../src/components/progress/Progress.tsx"],"sourcesContent":["import type { HTMLAttributes } from \"react\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./progress.module.css\";\n\nexport type ProgressTone = \"default\" | \"success\" | \"warning\" | \"danger\";\n\nexport type ProgressProps = HTMLAttributes<HTMLDivElement> & {\n /** Value 0–100. */\n value: number;\n /** Visual tone. Defaults to \"default\". */\n tone?: ProgressTone;\n /** Accessible label. */\n \"aria-label\"?: string;\n};\n\nexport function Progress({\n value,\n tone = \"default\",\n className,\n \"aria-label\": ariaLabel,\n ...rest\n}: ProgressProps) {\n const clamped = Math.max(0, Math.min(100, value));\n return (\n <div\n className={cx(styles.track, className)}\n role=\"progressbar\"\n aria-valuenow={clamped}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label={ariaLabel}\n {...rest}\n >\n <div\n className={cx(styles.fill, styles[`tone-${tone}`])}\n style={{ width: `${clamped}%` }}\n />\n </div>\n );\n}\n"],"mappings":";;;;AAeA,SAAgB,SAAS,EACvB,OACA,OAAO,WACP,WACA,cAAc,WACd,GAAG,QACa;CAChB,MAAM,UAAU,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC;CAChD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,WAAW,WAAA,GAAG,wBAAA,QAAO,OAAO,SAAS;EACrC,MAAK;EACL,iBAAe;EACf,iBAAe;EACf,iBAAe;EACf,cAAY;EACZ,GAAI;YAEJ,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;GACE,WAAW,WAAA,GAAG,wBAAA,QAAO,MAAM,wBAAA,QAAO,QAAQ,OAAO;GACjD,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG;EAC/B,CAAA;CACE,CAAA;AAET"}
1
+ {"version":3,"file":"index57.cjs","names":[],"sources":["../src/components/toolbar/Toolbar.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from \"react\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./toolbar.module.css\";\n\nexport type ToolbarDensity = \"compact\" | \"default\";\n\nexport type ToolbarProps = HTMLAttributes<HTMLDivElement> & {\n density?: ToolbarDensity;\n sticky?: boolean;\n};\n\nexport function Toolbar({\n density = \"compact\",\n sticky = false,\n role,\n className,\n children,\n ...rest\n}: ToolbarProps) {\n return (\n <div\n role={role}\n className={cx(styles.toolbar, styles[`density-${density}`], sticky && styles.sticky, className)}\n {...rest}\n >\n {children}\n </div>\n );\n}\n\nexport type ToolbarGroupProps = HTMLAttributes<HTMLDivElement> & {\n label?: ReactNode;\n grow?: boolean;\n};\n\nexport function ToolbarGroup({\n label,\n grow = false,\n role,\n \"aria-label\": ariaLabel,\n className,\n children,\n ...rest\n}: ToolbarGroupProps) {\n const groupLabel = ariaLabel ?? (typeof label === \"string\" ? label : undefined);\n const groupRole = role ?? (label != null || groupLabel != null ? \"group\" : undefined);\n\n return (\n <div\n role={groupRole}\n aria-label={groupLabel}\n className={cx(styles.group, grow && styles.grow, className)}\n {...rest}\n >\n {label != null && <span className={styles.label}>{label}</span>}\n <div className={styles.controls}>{children}</div>\n </div>\n );\n}\n"],"mappings":";;;;AAWA,SAAgB,QAAQ,EACtB,UAAU,WACV,SAAS,OACT,MACA,WACA,UACA,GAAG,QACY;CACf,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACQ;EACN,WAAW,WAAA,GAAG,uBAAA,QAAO,SAAS,uBAAA,QAAO,WAAW,YAAY,UAAU,uBAAA,QAAO,QAAQ,SAAS;EAC9F,GAAI;EAEH;CACE,CAAA;AAET;AAOA,SAAgB,aAAa,EAC3B,OACA,OAAO,OACP,MACA,cAAc,WACd,WACA,UACA,GAAG,QACiB;CACpB,MAAM,aAAa,cAAc,OAAO,UAAU,WAAW,QAAQ,KAAA;CAGrE,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EACE,MAJc,SAAS,SAAS,QAAQ,cAAc,OAAO,UAAU,KAAA;EAKvE,cAAY;EACZ,WAAW,WAAA,GAAG,uBAAA,QAAO,OAAO,QAAQ,uBAAA,QAAO,MAAM,SAAS;EAC1D,GAAI;YAJN,CAMG,SAAS,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GAAM,WAAW,uBAAA,QAAO;aAAQ;EAAY,CAAA,GAC9D,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;GAAK,WAAW,uBAAA,QAAO;GAAW;EAAc,CAAA,CAC7C;;AAET"}
package/dist/index57.js CHANGED
@@ -1,13 +1,14 @@
1
- //#region src/components/segmented-toggle/segmented-toggle.module.css
2
- var track = "uzi-segmented-toggle-module__track__M4fjm";
3
- var option = "uzi-segmented-toggle-module__option__7cEZJ";
4
- var label = "uzi-segmented-toggle-module__label__bDAIv";
5
- var segmented_toggle_module_default = {
6
- track,
7
- option,
8
- label
1
+ //#region src/components/skeleton/skeleton.module.css
2
+ var skeleton = "uzi-skeleton-module__skeleton__fula5";
3
+ var skeleton_module_default = {
4
+ skeleton,
5
+ "skeleton-pulse": "uzi-skeleton-module__skeleton-pulse__Yp45W",
6
+ "radius-sm": "uzi-skeleton-module__radius-sm__FdccD",
7
+ "radius-md": "uzi-skeleton-module__radius-md__zH3RE",
8
+ "radius-lg": "uzi-skeleton-module__radius-lg__YVrHw",
9
+ "radius-full": "uzi-skeleton-module__radius-full__5o2m0"
9
10
  };
10
11
  //#endregion
11
- export { segmented_toggle_module_default as default, label, option, track };
12
+ export { skeleton_module_default as default, skeleton };
12
13
 
13
14
  //# sourceMappingURL=index57.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index57.js","names":[],"sources":["../src/components/segmented-toggle/segmented-toggle.module.css"],"sourcesContent":[".track {\n display: inline-flex;\n border-radius: 999px;\n border: 1px solid var(--border);\n background: var(--card);\n padding: 4px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);\n gap: 2px;\n}\n\n.option {\n border-radius: 999px;\n padding: 6px 16px;\n font-size: var(--uzi-control-font-size);\n font-weight: 500;\n line-height: var(--uzi-control-line-height);\n background: transparent;\n color: var(--muted-foreground);\n border: none;\n cursor: pointer;\n transition:\n color 120ms ease,\n background 120ms ease;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n white-space: nowrap;\n}\n\n.label {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.option:hover:not([aria-checked=\"true\"]):not(:disabled) {\n color: var(--foreground);\n}\n\n.option[aria-checked=\"true\"] {\n background: var(--foreground);\n color: var(--background);\n}\n\n.option:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.option:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"index57.js","names":[],"sources":["../src/components/skeleton/skeleton.module.css"],"sourcesContent":[".skeleton {\n background: color-mix(in srgb, var(--muted-foreground) 14%, var(--background));\n animation: skeleton-pulse 1.6s ease-in-out infinite;\n}\n\n@keyframes skeleton-pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.45; }\n}\n\n.radius-sm { border-radius: 4px; }\n.radius-md { border-radius: 8px; }\n.radius-lg { border-radius: 12px; }\n.radius-full { border-radius: 9999px; }\n"],"mappings":""}
package/dist/index58.cjs CHANGED
@@ -1,16 +1,15 @@
1
- //#region src/components/segmented-toggle/segmented-toggle.module.css
2
- var track = "uzi-segmented-toggle-module__track__M4fjm";
3
- var option = "uzi-segmented-toggle-module__option__7cEZJ";
4
- var label = "uzi-segmented-toggle-module__label__bDAIv";
5
- var segmented_toggle_module_default = {
6
- track,
7
- option,
8
- label
1
+ //#region src/components/skeleton/skeleton.module.css
2
+ var skeleton = "uzi-skeleton-module__skeleton__fula5";
3
+ var skeleton_module_default = {
4
+ skeleton,
5
+ "skeleton-pulse": "uzi-skeleton-module__skeleton-pulse__Yp45W",
6
+ "radius-sm": "uzi-skeleton-module__radius-sm__FdccD",
7
+ "radius-md": "uzi-skeleton-module__radius-md__zH3RE",
8
+ "radius-lg": "uzi-skeleton-module__radius-lg__YVrHw",
9
+ "radius-full": "uzi-skeleton-module__radius-full__5o2m0"
9
10
  };
10
11
  //#endregion
11
- exports.default = segmented_toggle_module_default;
12
- exports.label = label;
13
- exports.option = option;
14
- exports.track = track;
12
+ exports.default = skeleton_module_default;
13
+ exports.skeleton = skeleton;
15
14
 
16
15
  //# sourceMappingURL=index58.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index58.cjs","names":[],"sources":["../src/components/segmented-toggle/segmented-toggle.module.css"],"sourcesContent":[".track {\n display: inline-flex;\n border-radius: 999px;\n border: 1px solid var(--border);\n background: var(--card);\n padding: 4px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);\n gap: 2px;\n}\n\n.option {\n border-radius: 999px;\n padding: 6px 16px;\n font-size: var(--uzi-control-font-size);\n font-weight: 500;\n line-height: var(--uzi-control-line-height);\n background: transparent;\n color: var(--muted-foreground);\n border: none;\n cursor: pointer;\n transition:\n color 120ms ease,\n background 120ms ease;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n white-space: nowrap;\n}\n\n.label {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.option:hover:not([aria-checked=\"true\"]):not(:disabled) {\n color: var(--foreground);\n}\n\n.option[aria-checked=\"true\"] {\n background: var(--foreground);\n color: var(--background);\n}\n\n.option:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.option:focus-visible {\n outline: var(--focus-ring);\n outline-offset: var(--focus-ring-offset);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"index58.cjs","names":[],"sources":["../src/components/skeleton/skeleton.module.css"],"sourcesContent":[".skeleton {\n background: color-mix(in srgb, var(--muted-foreground) 14%, var(--background));\n animation: skeleton-pulse 1.6s ease-in-out infinite;\n}\n\n@keyframes skeleton-pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.45; }\n}\n\n.radius-sm { border-radius: 4px; }\n.radius-md { border-radius: 8px; }\n.radius-lg { border-radius: 12px; }\n.radius-full { border-radius: 9999px; }\n"],"mappings":""}
package/dist/index58.js CHANGED
@@ -1,96 +1,21 @@
1
1
  "use client";
2
2
  import { cx } from "./index3.js";
3
- import segmented_toggle_module_default from "./index57.js";
4
- import * as React from "react";
3
+ import skeleton_module_default from "./index57.js";
5
4
  import { jsx } from "react/jsx-runtime";
6
- //#region src/components/segmented-toggle/SegmentedToggle.tsx
7
- function SegmentedToggle({ options, value, onChange, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, className }) {
8
- const itemRefs = React.useRef([]);
9
- const selectedIndex = options.findIndex((opt) => opt.value === value);
10
- const fallbackIndex = options.findIndex((opt) => !opt.disabled);
11
- let lastEnabledIndex = -1;
12
- for (let index = options.length - 1; index >= 0; index -= 1) if (!options[index]?.disabled) {
13
- lastEnabledIndex = index;
14
- break;
15
- }
16
- const tabbableIndex = selectedIndex >= 0 && !options[selectedIndex]?.disabled ? selectedIndex : fallbackIndex;
17
- const focusItem = (index) => {
18
- itemRefs.current[index]?.focus();
19
- };
20
- const findEnabledIndex = (startIndex, direction) => {
21
- if (options.length === 0) return -1;
22
- let nextIndex = startIndex;
23
- for (let i = 0; i < options.length; i += 1) {
24
- nextIndex = (nextIndex + direction + options.length) % options.length;
25
- if (!options[nextIndex]?.disabled) return nextIndex;
26
- }
27
- return startIndex;
28
- };
29
- const selectIndex = (index) => {
30
- const nextOption = options[index];
31
- if (!nextOption || nextOption.disabled || nextOption.value === value) return;
32
- onChange(nextOption.value);
33
- };
34
- const handleKeyDown = (event, index) => {
35
- switch (event.key) {
36
- case "ArrowRight":
37
- case "ArrowDown": {
38
- event.preventDefault();
39
- const nextIndex = findEnabledIndex(index, 1);
40
- focusItem(nextIndex);
41
- selectIndex(nextIndex);
42
- break;
43
- }
44
- case "ArrowLeft":
45
- case "ArrowUp": {
46
- event.preventDefault();
47
- const nextIndex = findEnabledIndex(index, -1);
48
- focusItem(nextIndex);
49
- selectIndex(nextIndex);
50
- break;
51
- }
52
- case "Home":
53
- event.preventDefault();
54
- focusItem(fallbackIndex);
55
- if (fallbackIndex >= 0) selectIndex(fallbackIndex);
56
- break;
57
- case "End":
58
- event.preventDefault();
59
- if (lastEnabledIndex >= 0) {
60
- focusItem(lastEnabledIndex);
61
- selectIndex(lastEnabledIndex);
62
- }
63
- break;
64
- default: break;
65
- }
66
- };
5
+ //#region src/components/skeleton/Skeleton.tsx
6
+ function Skeleton({ width, height, radius = "md", className, style, ...rest }) {
67
7
  return /* @__PURE__ */ jsx("div", {
68
- className: cx(segmented_toggle_module_default.track, className),
69
- role: "radiogroup",
70
- "aria-label": ariaLabel,
71
- "aria-labelledby": ariaLabelledBy,
72
- children: options.map((opt, index) => /* @__PURE__ */ jsx("button", {
73
- ref: (node) => {
74
- itemRefs.current[index] = node;
75
- },
76
- type: "button",
77
- role: "radio",
78
- "aria-checked": opt.value === value,
79
- disabled: opt.disabled,
80
- tabIndex: opt.disabled ? -1 : index === tabbableIndex ? 0 : -1,
81
- onClick: () => {
82
- if (opt.value !== value) onChange(opt.value);
83
- },
84
- onKeyDown: (event) => handleKeyDown(event, index),
85
- className: cx(segmented_toggle_module_default.option),
86
- children: /* @__PURE__ */ jsx("span", {
87
- className: segmented_toggle_module_default.label,
88
- children: opt.label
89
- })
90
- }, opt.value))
8
+ className: cx(skeleton_module_default.skeleton, skeleton_module_default[`radius-${radius}`], className),
9
+ style: {
10
+ width,
11
+ height,
12
+ ...style
13
+ },
14
+ "aria-hidden": "true",
15
+ ...rest
91
16
  });
92
17
  }
93
18
  //#endregion
94
- export { SegmentedToggle };
19
+ export { Skeleton };
95
20
 
96
21
  //# sourceMappingURL=index58.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index58.js","names":[],"sources":["../src/components/segmented-toggle/SegmentedToggle.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport type { ReactNode } from \"react\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./segmented-toggle.module.css\";\n\nexport type SegmentedToggleOption<T extends string = string> = {\n label: ReactNode;\n value: T;\n disabled?: boolean;\n};\n\nexport type SegmentedToggleProps<T extends string = string> = {\n options: SegmentedToggleOption<T>[];\n value: T;\n onChange: (value: T) => void;\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n className?: string;\n};\n\nexport function SegmentedToggle<T extends string = string>({\n options,\n value,\n onChange,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n className,\n}: SegmentedToggleProps<T>) {\n const itemRefs = React.useRef<Array<HTMLButtonElement | null>>([]);\n const selectedIndex = options.findIndex((opt) => opt.value === value);\n const fallbackIndex = options.findIndex((opt) => !opt.disabled);\n let lastEnabledIndex = -1;\n for (let index = options.length - 1; index >= 0; index -= 1) {\n if (!options[index]?.disabled) {\n lastEnabledIndex = index;\n break;\n }\n }\n const tabbableIndex =\n selectedIndex >= 0 && !options[selectedIndex]?.disabled\n ? selectedIndex\n : fallbackIndex;\n\n const focusItem = (index: number) => {\n itemRefs.current[index]?.focus();\n };\n\n const findEnabledIndex = (\n startIndex: number,\n direction: 1 | -1,\n ): number => {\n if (options.length === 0) return -1;\n\n let nextIndex = startIndex;\n for (let i = 0; i < options.length; i += 1) {\n nextIndex = (nextIndex + direction + options.length) % options.length;\n if (!options[nextIndex]?.disabled) {\n return nextIndex;\n }\n }\n\n return startIndex;\n };\n\n const selectIndex = (index: number) => {\n const nextOption = options[index];\n if (!nextOption || nextOption.disabled || nextOption.value === value) {\n return;\n }\n onChange(nextOption.value);\n };\n\n const handleKeyDown = (\n event: React.KeyboardEvent<HTMLButtonElement>,\n index: number,\n ) => {\n switch (event.key) {\n case \"ArrowRight\":\n case \"ArrowDown\": {\n event.preventDefault();\n const nextIndex = findEnabledIndex(index, 1);\n focusItem(nextIndex);\n selectIndex(nextIndex);\n break;\n }\n case \"ArrowLeft\":\n case \"ArrowUp\": {\n event.preventDefault();\n const nextIndex = findEnabledIndex(index, -1);\n focusItem(nextIndex);\n selectIndex(nextIndex);\n break;\n }\n case \"Home\": {\n event.preventDefault();\n focusItem(fallbackIndex);\n if (fallbackIndex >= 0) {\n selectIndex(fallbackIndex);\n }\n break;\n }\n case \"End\": {\n event.preventDefault();\n if (lastEnabledIndex >= 0) {\n focusItem(lastEnabledIndex);\n selectIndex(lastEnabledIndex);\n }\n break;\n }\n default:\n break;\n }\n };\n\n return (\n <div\n className={cx(styles.track, className)}\n role=\"radiogroup\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {options.map((opt, index) => (\n <button\n key={opt.value}\n ref={(node) => {\n itemRefs.current[index] = node;\n }}\n type=\"button\"\n role=\"radio\"\n aria-checked={opt.value === value}\n disabled={opt.disabled}\n tabIndex={\n opt.disabled\n ? -1\n : index === tabbableIndex\n ? 0\n : -1\n }\n onClick={() => {\n if (opt.value !== value) {\n onChange(opt.value);\n }\n }}\n onKeyDown={(event) => handleKeyDown(event, index)}\n className={cx(styles.option)}\n >\n <span className={styles.label}>{opt.label}</span>\n </button>\n ))}\n </div>\n );\n}\n"],"mappings":";;;;;;AAsBA,SAAgB,gBAA2C,EACzD,SACA,OACA,UACA,cAAc,WACd,mBAAmB,gBACnB,aAC0B;CAC1B,MAAM,WAAW,MAAM,OAAwC,CAAC,CAAC;CACjE,MAAM,gBAAgB,QAAQ,WAAW,QAAQ,IAAI,UAAU,KAAK;CACpE,MAAM,gBAAgB,QAAQ,WAAW,QAAQ,CAAC,IAAI,QAAQ;CAC9D,IAAI,mBAAmB;CACvB,KAAK,IAAI,QAAQ,QAAQ,SAAS,GAAG,SAAS,GAAG,SAAS,GACxD,IAAI,CAAC,QAAQ,MAAM,EAAE,UAAU;EAC7B,mBAAmB;EACnB;CACF;CAEF,MAAM,gBACJ,iBAAiB,KAAK,CAAC,QAAQ,cAAc,EAAE,WAC3C,gBACA;CAEN,MAAM,aAAa,UAAkB;EACnC,SAAS,QAAQ,MAAM,EAAE,MAAM;CACjC;CAEA,MAAM,oBACJ,YACA,cACW;EACX,IAAI,QAAQ,WAAW,GAAG,OAAO;EAEjC,IAAI,YAAY;EAChB,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,GAAG;GAC1C,aAAa,YAAY,YAAY,QAAQ,UAAU,QAAQ;GAC/D,IAAI,CAAC,QAAQ,UAAU,EAAE,UACvB,OAAO;EAEX;EAEA,OAAO;CACT;CAEA,MAAM,eAAe,UAAkB;EACrC,MAAM,aAAa,QAAQ;EAC3B,IAAI,CAAC,cAAc,WAAW,YAAY,WAAW,UAAU,OAC7D;EAEF,SAAS,WAAW,KAAK;CAC3B;CAEA,MAAM,iBACJ,OACA,UACG;EACH,QAAQ,MAAM,KAAd;GACE,KAAK;GACL,KAAK,aAAa;IAChB,MAAM,eAAe;IACrB,MAAM,YAAY,iBAAiB,OAAO,CAAC;IAC3C,UAAU,SAAS;IACnB,YAAY,SAAS;IACrB;GACF;GACA,KAAK;GACL,KAAK,WAAW;IACd,MAAM,eAAe;IACrB,MAAM,YAAY,iBAAiB,OAAO,EAAE;IAC5C,UAAU,SAAS;IACnB,YAAY,SAAS;IACrB;GACF;GACA,KAAK;IACH,MAAM,eAAe;IACrB,UAAU,aAAa;IACvB,IAAI,iBAAiB,GACnB,YAAY,aAAa;IAE3B;GAEF,KAAK;IACH,MAAM,eAAe;IACrB,IAAI,oBAAoB,GAAG;KACzB,UAAU,gBAAgB;KAC1B,YAAY,gBAAgB;IAC9B;IACA;GAEF,SACE;EACJ;CACF;CAEA,OACE,oBAAC,OAAD;EACE,WAAW,GAAG,gCAAO,OAAO,SAAS;EACrC,MAAK;EACL,cAAY;EACZ,mBAAiB;YAEhB,QAAQ,KAAK,KAAK,UACjB,oBAAC,UAAD;GAEE,MAAM,SAAS;IACb,SAAS,QAAQ,SAAS;GAC5B;GACA,MAAK;GACL,MAAK;GACL,gBAAc,IAAI,UAAU;GAC5B,UAAU,IAAI;GACd,UACE,IAAI,WACA,KACA,UAAU,gBACR,IACA;GAER,eAAe;IACb,IAAI,IAAI,UAAU,OAChB,SAAS,IAAI,KAAK;GAEtB;GACA,YAAY,UAAU,cAAc,OAAO,KAAK;GAChD,WAAW,GAAG,gCAAO,MAAM;aAE3B,oBAAC,QAAD;IAAM,WAAW,gCAAO;cAAQ,IAAI;GAAY,CAAA;EAC1C,GAxBD,IAAI,KAwBH,CACT;CACE,CAAA;AAET"}
1
+ {"version":3,"file":"index58.js","names":[],"sources":["../src/components/skeleton/Skeleton.tsx"],"sourcesContent":["\"use client\";\n\nimport type { HTMLAttributes } from \"react\";\nimport { cx } from \"../../utils/cx\";\nimport styles from \"./skeleton.module.css\";\n\nexport type SkeletonProps = HTMLAttributes<HTMLDivElement> & {\n /** Width as a CSS value. */\n width?: string;\n /** Height as a CSS value. */\n height?: string;\n /** Border radius preset. Defaults to \"md\". */\n radius?: \"sm\" | \"md\" | \"lg\" | \"full\";\n};\n\nexport function Skeleton({\n width,\n height,\n radius = \"md\",\n className,\n style,\n ...rest\n}: SkeletonProps) {\n return (\n <div\n className={cx(styles.skeleton, styles[`radius-${radius}`], className)}\n style={{ width, height, ...style }}\n aria-hidden=\"true\"\n {...rest}\n />\n );\n}\n"],"mappings":";;;;;AAeA,SAAgB,SAAS,EACvB,OACA,QACA,SAAS,MACT,WACA,OACA,GAAG,QACa;CAChB,OACE,oBAAC,OAAD;EACE,WAAW,GAAG,wBAAO,UAAU,wBAAO,UAAU,WAAW,SAAS;EACpE,OAAO;GAAE;GAAO;GAAQ,GAAG;EAAM;EACjC,eAAY;EACZ,GAAI;CACL,CAAA;AAEL"}
package/dist/index59.cjs CHANGED
@@ -1,98 +1,21 @@
1
1
  "use client";
2
- const require_runtime = require("./index2.cjs");
3
2
  const require_cx = require("./index4.cjs");
4
- const require_segmented_toggle_module = require("./index58.cjs");
5
- let react = require("react");
6
- react = require_runtime.__toESM(react, 1);
3
+ const require_skeleton_module = require("./index58.cjs");
7
4
  let react_jsx_runtime = require("react/jsx-runtime");
8
- //#region src/components/segmented-toggle/SegmentedToggle.tsx
9
- function SegmentedToggle({ options, value, onChange, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, className }) {
10
- const itemRefs = react.useRef([]);
11
- const selectedIndex = options.findIndex((opt) => opt.value === value);
12
- const fallbackIndex = options.findIndex((opt) => !opt.disabled);
13
- let lastEnabledIndex = -1;
14
- for (let index = options.length - 1; index >= 0; index -= 1) if (!options[index]?.disabled) {
15
- lastEnabledIndex = index;
16
- break;
17
- }
18
- const tabbableIndex = selectedIndex >= 0 && !options[selectedIndex]?.disabled ? selectedIndex : fallbackIndex;
19
- const focusItem = (index) => {
20
- itemRefs.current[index]?.focus();
21
- };
22
- const findEnabledIndex = (startIndex, direction) => {
23
- if (options.length === 0) return -1;
24
- let nextIndex = startIndex;
25
- for (let i = 0; i < options.length; i += 1) {
26
- nextIndex = (nextIndex + direction + options.length) % options.length;
27
- if (!options[nextIndex]?.disabled) return nextIndex;
28
- }
29
- return startIndex;
30
- };
31
- const selectIndex = (index) => {
32
- const nextOption = options[index];
33
- if (!nextOption || nextOption.disabled || nextOption.value === value) return;
34
- onChange(nextOption.value);
35
- };
36
- const handleKeyDown = (event, index) => {
37
- switch (event.key) {
38
- case "ArrowRight":
39
- case "ArrowDown": {
40
- event.preventDefault();
41
- const nextIndex = findEnabledIndex(index, 1);
42
- focusItem(nextIndex);
43
- selectIndex(nextIndex);
44
- break;
45
- }
46
- case "ArrowLeft":
47
- case "ArrowUp": {
48
- event.preventDefault();
49
- const nextIndex = findEnabledIndex(index, -1);
50
- focusItem(nextIndex);
51
- selectIndex(nextIndex);
52
- break;
53
- }
54
- case "Home":
55
- event.preventDefault();
56
- focusItem(fallbackIndex);
57
- if (fallbackIndex >= 0) selectIndex(fallbackIndex);
58
- break;
59
- case "End":
60
- event.preventDefault();
61
- if (lastEnabledIndex >= 0) {
62
- focusItem(lastEnabledIndex);
63
- selectIndex(lastEnabledIndex);
64
- }
65
- break;
66
- default: break;
67
- }
68
- };
5
+ //#region src/components/skeleton/Skeleton.tsx
6
+ function Skeleton({ width, height, radius = "md", className, style, ...rest }) {
69
7
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
70
- className: require_cx.cx(require_segmented_toggle_module.default.track, className),
71
- role: "radiogroup",
72
- "aria-label": ariaLabel,
73
- "aria-labelledby": ariaLabelledBy,
74
- children: options.map((opt, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
75
- ref: (node) => {
76
- itemRefs.current[index] = node;
77
- },
78
- type: "button",
79
- role: "radio",
80
- "aria-checked": opt.value === value,
81
- disabled: opt.disabled,
82
- tabIndex: opt.disabled ? -1 : index === tabbableIndex ? 0 : -1,
83
- onClick: () => {
84
- if (opt.value !== value) onChange(opt.value);
85
- },
86
- onKeyDown: (event) => handleKeyDown(event, index),
87
- className: require_cx.cx(require_segmented_toggle_module.default.option),
88
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
89
- className: require_segmented_toggle_module.default.label,
90
- children: opt.label
91
- })
92
- }, opt.value))
8
+ className: require_cx.cx(require_skeleton_module.default.skeleton, require_skeleton_module.default[`radius-${radius}`], className),
9
+ style: {
10
+ width,
11
+ height,
12
+ ...style
13
+ },
14
+ "aria-hidden": "true",
15
+ ...rest
93
16
  });
94
17
  }
95
18
  //#endregion
96
- exports.SegmentedToggle = SegmentedToggle;
19
+ exports.Skeleton = Skeleton;
97
20
 
98
21
  //# sourceMappingURL=index59.cjs.map