@cascivo/react 1.1.0 → 1.2.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 (306) hide show
  1. package/dist/accordion/accordion.js +1 -1
  2. package/dist/action-sheet/action-sheet.js +1 -1
  3. package/dist/alert/alert.js +1 -1
  4. package/dist/alert-dialog/alert-dialog.js +1 -1
  5. package/dist/app-shell/app-shell.css +1 -1
  6. package/dist/app-shell/app-shell.js +1 -1
  7. package/dist/app-shell/app-shell.module.js +1 -1
  8. package/dist/aspect-ratio/aspect-ratio.js +1 -1
  9. package/dist/avatar/avatar.js +1 -1
  10. package/dist/avatar-group/avatar-group.js +1 -1
  11. package/dist/badge/badge.js +1 -1
  12. package/dist/blockquote/blockquote.js +1 -1
  13. package/dist/bottom-sheet/bottom-sheet.js +1 -1
  14. package/dist/brand/logo/logo.js +1 -1
  15. package/dist/breadcrumb/breadcrumb.js +1 -1
  16. package/dist/button/button.css +1 -1
  17. package/dist/button/button.module.js +1 -1
  18. package/dist/button-group/button-group.js +1 -1
  19. package/dist/calendar/calendar-date.js +1 -1
  20. package/dist/calendar/calendar.js +1 -1
  21. package/dist/card/card.js +1 -1
  22. package/dist/carousel/carousel.js +1 -1
  23. package/dist/chat-bubble/chat-bubble.js +1 -1
  24. package/dist/code/code.js +1 -1
  25. package/dist/code-snippet/code-snippet.js +2 -2
  26. package/dist/code-snippet/highlight.js +1 -1
  27. package/dist/collapsible/collapsible.js +1 -1
  28. package/dist/color-picker/color-picker.js +1 -1
  29. package/dist/color-picker/color.js +1 -1
  30. package/dist/combobox/combobox.js +1 -1
  31. package/dist/combobox/list-nav.js +1 -1
  32. package/dist/combobox/option-list.js +1 -1
  33. package/dist/command-menu/command-menu.js +1 -1
  34. package/dist/comparison/comparison.js +1 -1
  35. package/dist/contained-list/contained-list.js +1 -1
  36. package/dist/context-menu/context-menu.js +1 -1
  37. package/dist/data-list/data-list.js +1 -1
  38. package/dist/data-table/column-filter.js +1 -1
  39. package/dist/data-table/column-layout.js +1 -1
  40. package/dist/data-table/data-table.js +1 -1
  41. package/dist/data-table/grid-keys.js +1 -1
  42. package/dist/data-table/row-group.js +1 -1
  43. package/dist/data-table/row-search.js +1 -1
  44. package/dist/data-table/row-sort.js +1 -1
  45. package/dist/data-table/to-csv.js +2 -2
  46. package/dist/data-table/virtual-window.js +1 -1
  47. package/dist/date-picker/date-picker.js +1 -1
  48. package/dist/date-picker/parse-date.js +1 -1
  49. package/dist/date-range-picker/date-range-picker.js +1 -1
  50. package/dist/dock/dock.js +1 -1
  51. package/dist/drawer/drawer.js +1 -1
  52. package/dist/dropdown/dropdown.js +1 -1
  53. package/dist/editable/editable.js +1 -1
  54. package/dist/empty-state/empty-state.js +1 -1
  55. package/dist/fab/fab.js +1 -1
  56. package/dist/field/field.js +1 -1
  57. package/dist/file-uploader/file-uploader.js +1 -1
  58. package/dist/filter/filter.js +1 -1
  59. package/dist/form/form.js +1 -1
  60. package/dist/header/header.js +1 -1
  61. package/dist/header-panel/header-panel.js +1 -1
  62. package/dist/heading/heading.js +1 -1
  63. package/dist/hover-card/hover-card.js +1 -1
  64. package/dist/image/image.js +1 -1
  65. package/dist/index.d.ts +749 -13
  66. package/dist/indicator/indicator.js +1 -1
  67. package/dist/infinite-scroll/infinite-scroll.js +1 -1
  68. package/dist/inline-loading/inline-loading.js +1 -1
  69. package/dist/input-group/input-group.js +1 -1
  70. package/dist/item/item.js +1 -1
  71. package/dist/join/join.js +1 -1
  72. package/dist/kbd/kbd.js +1 -1
  73. package/dist/label/label.js +1 -1
  74. package/dist/large-title-header/large-title-header.js +1 -1
  75. package/dist/layouts/src/auto-grid/auto-grid.js +1 -1
  76. package/dist/layouts/src/center/center.js +1 -1
  77. package/dist/layouts/src/columns/columns.js +1 -1
  78. package/dist/layouts/src/flex/flex.css +1 -1
  79. package/dist/layouts/src/flex/flex.js +1 -1
  80. package/dist/layouts/src/flex/flex.module.js +1 -1
  81. package/dist/layouts/src/grid/grid.js +1 -1
  82. package/dist/layouts/src/page-header/page-header.js +1 -1
  83. package/dist/layouts/src/spacer/spacer.js +1 -1
  84. package/dist/list/list.js +1 -1
  85. package/dist/log-viewer/log-viewer.css +1 -1
  86. package/dist/log-viewer/log-viewer.js +2 -2
  87. package/dist/log-viewer/log-viewer.module.js +1 -1
  88. package/dist/menu/menu.js +1 -1
  89. package/dist/menu-button/menu-button.js +1 -1
  90. package/dist/menubar/menubar.js +1 -1
  91. package/dist/modal/modal.js +1 -1
  92. package/dist/multi-select/list-nav.js +1 -1
  93. package/dist/multi-select/multi-select.js +1 -1
  94. package/dist/multi-select/option-list.js +1 -1
  95. package/dist/navigation-menu/navigation-menu.js +1 -1
  96. package/dist/node/accordion/accordion.js +1 -1
  97. package/dist/node/action-sheet/action-sheet.js +1 -1
  98. package/dist/node/alert/alert.js +1 -1
  99. package/dist/node/alert-dialog/alert-dialog.js +1 -1
  100. package/dist/node/app-shell/app-shell.js +1 -1
  101. package/dist/node/app-shell/app-shell.module.js +1 -1
  102. package/dist/node/aspect-ratio/aspect-ratio.js +1 -1
  103. package/dist/node/avatar/avatar.js +1 -1
  104. package/dist/node/avatar-group/avatar-group.js +1 -1
  105. package/dist/node/badge/badge.js +1 -1
  106. package/dist/node/blockquote/blockquote.js +1 -1
  107. package/dist/node/bottom-sheet/bottom-sheet.js +1 -1
  108. package/dist/node/brand/logo/logo.js +1 -1
  109. package/dist/node/breadcrumb/breadcrumb.js +1 -1
  110. package/dist/node/button/button.module.js +1 -1
  111. package/dist/node/button-group/button-group.js +1 -1
  112. package/dist/node/calendar/calendar-date.js +1 -1
  113. package/dist/node/calendar/calendar.js +1 -1
  114. package/dist/node/card/card.js +1 -1
  115. package/dist/node/carousel/carousel.js +1 -1
  116. package/dist/node/chat-bubble/chat-bubble.js +1 -1
  117. package/dist/node/code/code.js +1 -1
  118. package/dist/node/code-snippet/code-snippet.js +2 -2
  119. package/dist/node/code-snippet/highlight.js +1 -1
  120. package/dist/node/collapsible/collapsible.js +1 -1
  121. package/dist/node/color-picker/color-picker.js +1 -1
  122. package/dist/node/color-picker/color.js +1 -1
  123. package/dist/node/combobox/combobox.js +1 -1
  124. package/dist/node/combobox/list-nav.js +1 -1
  125. package/dist/node/combobox/option-list.js +1 -1
  126. package/dist/node/command-menu/command-menu.js +1 -1
  127. package/dist/node/comparison/comparison.js +1 -1
  128. package/dist/node/contained-list/contained-list.js +1 -1
  129. package/dist/node/context-menu/context-menu.js +1 -1
  130. package/dist/node/data-list/data-list.js +1 -1
  131. package/dist/node/data-table/column-filter.js +1 -1
  132. package/dist/node/data-table/column-layout.js +1 -1
  133. package/dist/node/data-table/data-table.js +1 -1
  134. package/dist/node/data-table/grid-keys.js +1 -1
  135. package/dist/node/data-table/row-group.js +1 -1
  136. package/dist/node/data-table/row-search.js +1 -1
  137. package/dist/node/data-table/row-sort.js +1 -1
  138. package/dist/node/data-table/to-csv.js +2 -2
  139. package/dist/node/data-table/virtual-window.js +1 -1
  140. package/dist/node/date-picker/date-picker.js +1 -1
  141. package/dist/node/date-picker/parse-date.js +1 -1
  142. package/dist/node/date-range-picker/date-range-picker.js +1 -1
  143. package/dist/node/dock/dock.js +1 -1
  144. package/dist/node/drawer/drawer.js +1 -1
  145. package/dist/node/dropdown/dropdown.js +1 -1
  146. package/dist/node/editable/editable.js +1 -1
  147. package/dist/node/empty-state/empty-state.js +1 -1
  148. package/dist/node/fab/fab.js +1 -1
  149. package/dist/node/field/field.js +1 -1
  150. package/dist/node/file-uploader/file-uploader.js +1 -1
  151. package/dist/node/filter/filter.js +1 -1
  152. package/dist/node/form/form.js +1 -1
  153. package/dist/node/header/header.js +1 -1
  154. package/dist/node/header-panel/header-panel.js +1 -1
  155. package/dist/node/heading/heading.js +1 -1
  156. package/dist/node/hover-card/hover-card.js +1 -1
  157. package/dist/node/image/image.js +1 -1
  158. package/dist/node/indicator/indicator.js +1 -1
  159. package/dist/node/infinite-scroll/infinite-scroll.js +1 -1
  160. package/dist/node/inline-loading/inline-loading.js +1 -1
  161. package/dist/node/input-group/input-group.js +1 -1
  162. package/dist/node/item/item.js +1 -1
  163. package/dist/node/join/join.js +1 -1
  164. package/dist/node/kbd/kbd.js +1 -1
  165. package/dist/node/label/label.js +1 -1
  166. package/dist/node/large-title-header/large-title-header.js +1 -1
  167. package/dist/node/layouts/src/auto-grid/auto-grid.js +1 -1
  168. package/dist/node/layouts/src/center/center.js +1 -1
  169. package/dist/node/layouts/src/columns/columns.js +1 -1
  170. package/dist/node/layouts/src/flex/flex.js +1 -1
  171. package/dist/node/layouts/src/flex/flex.module.js +1 -1
  172. package/dist/node/layouts/src/grid/grid.js +1 -1
  173. package/dist/node/layouts/src/page-header/page-header.js +1 -1
  174. package/dist/node/layouts/src/spacer/spacer.js +1 -1
  175. package/dist/node/list/list.js +1 -1
  176. package/dist/node/log-viewer/log-viewer.js +2 -2
  177. package/dist/node/log-viewer/log-viewer.module.js +1 -1
  178. package/dist/node/menu/menu.js +1 -1
  179. package/dist/node/menu-button/menu-button.js +1 -1
  180. package/dist/node/menubar/menubar.js +1 -1
  181. package/dist/node/modal/modal.js +1 -1
  182. package/dist/node/multi-select/list-nav.js +1 -1
  183. package/dist/node/multi-select/multi-select.js +1 -1
  184. package/dist/node/multi-select/option-list.js +1 -1
  185. package/dist/node/navigation-menu/navigation-menu.js +1 -1
  186. package/dist/node/notification/notification.js +1 -1
  187. package/dist/node/number-input/number-input.js +1 -1
  188. package/dist/node/otp-input/otp-input.js +1 -1
  189. package/dist/node/overflow-menu/overflow-menu.js +1 -1
  190. package/dist/node/pagination/pagination.js +1 -1
  191. package/dist/node/password-input/password-input.js +1 -1
  192. package/dist/node/popover/popover.js +1 -1
  193. package/dist/node/popover/use-popover.js +1 -1
  194. package/dist/node/progress/progress.js +1 -1
  195. package/dist/node/progress-bar/progress-bar.js +1 -1
  196. package/dist/node/progress-circle/progress-circle.js +1 -1
  197. package/dist/node/progress-indicator/progress-indicator.js +1 -1
  198. package/dist/node/prose/prose.js +1 -1
  199. package/dist/node/pull-to-refresh/pull-to-refresh.js +1 -1
  200. package/dist/node/qr-code/encode.js +1 -1
  201. package/dist/node/qr-code/qr-code.js +1 -1
  202. package/dist/node/radial-progress/radial-progress.js +1 -1
  203. package/dist/node/radio/radio.js +1 -1
  204. package/dist/node/radio-card/radio-card.js +1 -1
  205. package/dist/node/rating-group/rating-group.js +1 -1
  206. package/dist/node/react/src/index.js +1 -1
  207. package/dist/node/relative-time/relative-time.js +1 -1
  208. package/dist/node/reorder-list/reorder-list.js +1 -1
  209. package/dist/node/resizable/resizable.js +1 -1
  210. package/dist/node/scroll-area/scroll-area.js +1 -1
  211. package/dist/node/search/search.js +1 -1
  212. package/dist/node/segmented-control/segmented-control.js +1 -1
  213. package/dist/node/separator/separator.js +1 -1
  214. package/dist/node/sheet/sheet.js +1 -1
  215. package/dist/node/shell-header/shell-header.js +1 -1
  216. package/dist/node/side-nav/side-nav.js +1 -1
  217. package/dist/node/side-nav/side-nav.module.js +1 -1
  218. package/dist/node/skeleton/skeleton.js +1 -1
  219. package/dist/node/skip-nav/skip-nav.js +1 -1
  220. package/dist/node/spinner/spinner.js +1 -1
  221. package/dist/node/stack/stack.js +1 -1
  222. package/dist/node/stat/stat.js +1 -1
  223. package/dist/node/status/status.js +1 -1
  224. package/dist/node/steps/steps.js +1 -1
  225. package/dist/node/structured-list/structured-list.js +1 -1
  226. package/dist/node/swap/swap.js +1 -1
  227. package/dist/node/swipe-item/swipe-item.js +1 -1
  228. package/dist/node/switcher/switcher.js +1 -1
  229. package/dist/node/tabs/tabs.js +1 -1
  230. package/dist/node/tag/tag.js +1 -1
  231. package/dist/node/tags-input/tags-input.js +1 -1
  232. package/dist/node/text/text.js +1 -1
  233. package/dist/node/tile/tile.js +1 -1
  234. package/dist/node/timeline/timeline.js +1 -1
  235. package/dist/node/toast/toast.js +1 -1
  236. package/dist/node/toc/toc.js +1 -1
  237. package/dist/node/toc/use-toc-from-region.js +1 -1
  238. package/dist/node/toggle-group/toggle-group.js +1 -1
  239. package/dist/node/toggletip/toggletip.js +1 -1
  240. package/dist/node/tooltip/tooltip.js +1 -1
  241. package/dist/node/tree-view/tree-view.js +1 -1
  242. package/dist/node/user/user.js +1 -1
  243. package/dist/node/virtual-list/virtual-list.js +1 -1
  244. package/dist/node/wheel-picker/wheel-picker.js +1 -1
  245. package/dist/notification/notification.js +1 -1
  246. package/dist/number-input/number-input.js +1 -1
  247. package/dist/otp-input/otp-input.js +1 -1
  248. package/dist/overflow-menu/overflow-menu.js +1 -1
  249. package/dist/pagination/pagination.js +1 -1
  250. package/dist/password-input/password-input.js +1 -1
  251. package/dist/popover/popover.js +1 -1
  252. package/dist/popover/use-popover.js +1 -1
  253. package/dist/progress/progress.js +1 -1
  254. package/dist/progress-bar/progress-bar.js +1 -1
  255. package/dist/progress-circle/progress-circle.js +1 -1
  256. package/dist/progress-indicator/progress-indicator.js +1 -1
  257. package/dist/prose/prose.js +1 -1
  258. package/dist/pull-to-refresh/pull-to-refresh.js +1 -1
  259. package/dist/qr-code/encode.js +1 -1
  260. package/dist/qr-code/qr-code.js +1 -1
  261. package/dist/radial-progress/radial-progress.js +1 -1
  262. package/dist/radio/radio.js +1 -1
  263. package/dist/radio-card/radio-card.js +1 -1
  264. package/dist/rating-group/rating-group.js +1 -1
  265. package/dist/react/src/index.js +1 -1
  266. package/dist/relative-time/relative-time.js +1 -1
  267. package/dist/reorder-list/reorder-list.js +1 -1
  268. package/dist/resizable/resizable.js +1 -1
  269. package/dist/scroll-area/scroll-area.js +1 -1
  270. package/dist/search/search.js +1 -1
  271. package/dist/segmented-control/segmented-control.js +1 -1
  272. package/dist/separator/separator.js +1 -1
  273. package/dist/sheet/sheet.js +1 -1
  274. package/dist/shell-header/shell-header.js +1 -1
  275. package/dist/side-nav/side-nav.css +1 -1
  276. package/dist/side-nav/side-nav.js +1 -1
  277. package/dist/side-nav/side-nav.module.js +1 -1
  278. package/dist/skeleton/skeleton.js +1 -1
  279. package/dist/skip-nav/skip-nav.js +1 -1
  280. package/dist/spinner/spinner.js +1 -1
  281. package/dist/stack/stack.js +1 -1
  282. package/dist/stat/stat.js +1 -1
  283. package/dist/status/status.js +1 -1
  284. package/dist/steps/steps.js +1 -1
  285. package/dist/structured-list/structured-list.js +1 -1
  286. package/dist/styles.css +10 -6
  287. package/dist/swap/swap.js +1 -1
  288. package/dist/swipe-item/swipe-item.js +1 -1
  289. package/dist/switcher/switcher.js +1 -1
  290. package/dist/tabs/tabs.js +1 -1
  291. package/dist/tag/tag.js +1 -1
  292. package/dist/tags-input/tags-input.js +1 -1
  293. package/dist/text/text.js +1 -1
  294. package/dist/tile/tile.js +1 -1
  295. package/dist/timeline/timeline.js +1 -1
  296. package/dist/toast/toast.js +1 -1
  297. package/dist/toc/toc.js +1 -1
  298. package/dist/toc/use-toc-from-region.js +1 -1
  299. package/dist/toggle-group/toggle-group.js +1 -1
  300. package/dist/toggletip/toggletip.js +1 -1
  301. package/dist/tooltip/tooltip.js +1 -1
  302. package/dist/tree-view/tree-view.js +1 -1
  303. package/dist/user/user.js +1 -1
  304. package/dist/virtual-list/virtual-list.js +1 -1
  305. package/dist/wheel-picker/wheel-picker.js +1 -1
  306. package/package.json +4 -4
@@ -1 +1 @@
1
- import e from"./indicator.module.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";function r({children:r,overlay:i,placement:a=`top-end`,className:o}){return n(`div`,{className:[e.indicator,o].filter(Boolean).join(` `),"data-placement":a,children:[r,t(`div`,{className:e.overlay,"aria-hidden":!0,children:i})]})}export{r as Indicator};
1
+ import e from"./indicator.module.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";function Indicator({children:r,overlay:i,placement:a=`top-end`,className:o}){return n(`div`,{className:[e.indicator,o].filter(Boolean).join(` `),"data-placement":a,children:[r,t(`div`,{className:e.overlay,"aria-hidden":!0,children:i})]})}export{Indicator};
@@ -1 +1 @@
1
- "use client";import{Spinner as e}from"../spinner/spinner.js";import t from"./infinite-scroll.module.js";import{useRef as n}from"react";import{cn as r,useSignal as i,useSignalEffect as a,useSignals as o}from"@cascivo/core";import{builtin as s,t as c}from"@cascivo/i18n";import{jsx as l,jsxs as u}from"react/jsx-runtime";function d({onLoadMore:d,disabled:f=!1,rootMargin:p=`200px`,labels:m,className:h}){o();let g=n(null),_=i(!1),v=n(d);v.current=d;let y=n(f);y.current=f;let b=()=>{_.value||y.current||(_.value=!0,Promise.resolve(v.current()).then(()=>{_.value=!1},()=>{_.value=!1}))},x=n(b);return x.current=b,a(()=>{let e=g.current;if(!e||f||typeof IntersectionObserver>`u`)return;let t=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&x.current()},{rootMargin:p});return t.observe(e),()=>t.disconnect()}),f?null:l(`div`,{ref:g,className:r(t.root,h),children:_.value?u(`span`,{className:t.status,role:`status`,children:[l(e,{size:`sm`,"aria-hidden":`true`}),m?.loading??c(s.infiniteScroll.loading)]}):l(`button`,{type:`button`,className:t.button,onClick:b,children:m?.loadMore??c(s.infiniteScroll.loadMore)})})}export{d as InfiniteScroll};
1
+ "use client";import{Spinner as e}from"../spinner/spinner.js";import t from"./infinite-scroll.module.js";import{useRef as n}from"react";import{cn as r,useSignal as i,useSignalEffect as a,useSignals as o}from"@cascivo/core";import{builtin as s,t as c}from"@cascivo/i18n";import{jsx as l,jsxs as u}from"react/jsx-runtime";function InfiniteScroll({onLoadMore:d,disabled:f=!1,rootMargin:p=`200px`,labels:m,className:h}){o();let g=n(null),_=i(!1),v=n(d);v.current=d;let y=n(f);y.current=f;let load=()=>{_.value||y.current||(_.value=!0,Promise.resolve(v.current()).then(()=>{_.value=!1},()=>{_.value=!1}))},b=n(load);return b.current=load,a(()=>{let e=g.current;if(!e||f||typeof IntersectionObserver>`u`)return;let t=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&b.current()},{rootMargin:p});return t.observe(e),()=>t.disconnect()}),f?null:l(`div`,{ref:g,className:r(t.root,h),children:_.value?u(`span`,{className:t.status,role:`status`,children:[l(e,{size:`sm`,"aria-hidden":`true`}),m?.loading??c(s.infiniteScroll.loading)]}):l(`button`,{type:`button`,className:t.button,onClick:load,children:m?.loadMore??c(s.infiniteScroll.loadMore)})})}export{InfiniteScroll};
@@ -1 +1 @@
1
- import{Spinner as e}from"../spinner/spinner.js";import t from"./inline-loading.module.js";import{cn as n}from"@cascivo/core/pure";import{builtin as r,t as i}from"@cascivo/i18n";import{jsx as a,jsxs as o}from"react/jsx-runtime";function s(e,t){switch(e){case`active`:return t?.active??i(r.inlineLoading.active);case`finished`:return t?.finished??i(r.inlineLoading.finished);case`error`:return t?.error??i(r.inlineLoading.error);default:return``}}function c({status:n}){return n===`active`?a(e,{size:`sm`,className:t.spinner}):n===`finished`?a(`svg`,{className:t.icon,viewBox:`0 0 16 16`,width:`16`,height:`16`,fill:`none`,"aria-hidden":`true`,children:a(`path`,{d:`M3.5 8.5l3 3 6-7`,stroke:`currentColor`,strokeWidth:`1.75`,strokeLinecap:`round`,strokeLinejoin:`round`})}):n===`error`?o(`svg`,{className:t.icon,viewBox:`0 0 16 16`,width:`16`,height:`16`,fill:`none`,"aria-hidden":`true`,children:[a(`path`,{d:`M8 4.5v4M8 11h.01`,stroke:`currentColor`,strokeWidth:`1.75`,strokeLinecap:`round`,strokeLinejoin:`round`}),a(`circle`,{cx:`8`,cy:`8`,r:`6.25`,stroke:`currentColor`,strokeWidth:`1.5`})]}):null}function l({status:e,label:r,labels:i,className:l,...u}){let d=r??s(e,i);return o(`div`,{role:`status`,"aria-live":`polite`,"data-status":e,className:n(t[`inline-loading`],l),...u,children:[a(`span`,{className:t.indicator,"aria-hidden":`true`,children:a(c,{status:e})}),d&&a(`span`,{className:t.label,children:d})]})}export{l as InlineLoading};
1
+ import{Spinner as e}from"../spinner/spinner.js";import t from"./inline-loading.module.js";import{cn as n}from"@cascivo/core/pure";import{builtin as r,t as i}from"@cascivo/i18n";import{jsx as a,jsxs as o}from"react/jsx-runtime";function defaultLabel(e,t){switch(e){case`active`:return t?.active??i(r.inlineLoading.active);case`finished`:return t?.finished??i(r.inlineLoading.finished);case`error`:return t?.error??i(r.inlineLoading.error);default:return``}}function StatusIcon({status:n}){return n===`active`?a(e,{size:`sm`,className:t.spinner}):n===`finished`?a(`svg`,{className:t.icon,viewBox:`0 0 16 16`,width:`16`,height:`16`,fill:`none`,"aria-hidden":`true`,children:a(`path`,{d:`M3.5 8.5l3 3 6-7`,stroke:`currentColor`,strokeWidth:`1.75`,strokeLinecap:`round`,strokeLinejoin:`round`})}):n===`error`?o(`svg`,{className:t.icon,viewBox:`0 0 16 16`,width:`16`,height:`16`,fill:`none`,"aria-hidden":`true`,children:[a(`path`,{d:`M8 4.5v4M8 11h.01`,stroke:`currentColor`,strokeWidth:`1.75`,strokeLinecap:`round`,strokeLinejoin:`round`}),a(`circle`,{cx:`8`,cy:`8`,r:`6.25`,stroke:`currentColor`,strokeWidth:`1.5`})]}):null}function InlineLoading({status:e,label:r,labels:i,className:s,...c}){let l=r??defaultLabel(e,i);return o(`div`,{role:`status`,"aria-live":`polite`,"data-status":e,className:n(t[`inline-loading`],s),...c,children:[a(`span`,{className:t.indicator,"aria-hidden":`true`,children:a(StatusIcon,{status:e})}),l&&a(`span`,{className:t.label,children:l})]})}export{InlineLoading};
@@ -1 +1 @@
1
- import e from"./input-group.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";function i({align:r=`inline-start`,children:i,className:a,...o}){return n(`span`,{className:t(e[`inline-addon`],a),"data-align":r,"aria-hidden":`true`,...o,children:i})}function a({prefix:i,suffix:a,children:o,className:s,...c}){return r(`div`,{className:t(e[`input-group`],s),"data-has-prefix":i?``:void 0,"data-has-suffix":a?``:void 0,...c,children:[i&&n(`span`,{className:e.addon,"data-position":`prefix`,children:i}),n(`span`,{className:e[`input-wrap`],children:o}),a&&n(`span`,{className:e.addon,"data-position":`suffix`,children:a})]})}export{a as InputGroup,i as InputGroupAddon};
1
+ import e from"./input-group.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";function InputGroupAddon({align:r=`inline-start`,children:i,className:a,...o}){return n(`span`,{className:t(e[`inline-addon`],a),"data-align":r,"aria-hidden":`true`,...o,children:i})}function InputGroup({prefix:i,suffix:a,children:o,className:s,...c}){return r(`div`,{className:t(e[`input-group`],s),"data-has-prefix":i?``:void 0,"data-has-suffix":a?``:void 0,...c,children:[i&&n(`span`,{className:e.addon,"data-position":`prefix`,children:i}),n(`span`,{className:e[`input-wrap`],children:o}),a&&n(`span`,{className:e.addon,"data-position":`suffix`,children:a})]})}export{InputGroup,InputGroupAddon};
package/dist/item/item.js CHANGED
@@ -1 +1 @@
1
- import e from"./item.module.js";import{Slot as t,cn as n}from"@cascivo/core/pure";import{jsx as r}from"react/jsx-runtime";function i({asChild:i=!1,variant:a=`default`,size:o=`md`,className:s,children:c,...l}){return r(i?t:`div`,{"data-variant":a,"data-size":o,className:n(e.item,s),...l,children:c})}function a({className:t,children:i,...a}){return r(`div`,{className:n(e.media,t),...a,children:i})}function o({className:t,children:i,...a}){return r(`div`,{className:n(e.content,t),...a,children:i})}function s({className:t,children:i,...a}){return r(`div`,{className:n(e.title,t),...a,children:i})}function c({className:t,children:i,...a}){return r(`p`,{className:n(e.description,t),...a,children:i})}function l({className:t,children:i,...a}){return r(`div`,{className:n(e.actions,t),...a,children:i})}export{i as Item,l as ItemActions,o as ItemContent,c as ItemDescription,a as ItemMedia,s as ItemTitle};
1
+ import e from"./item.module.js";import{Slot as t,cn as n}from"@cascivo/core/pure";import{jsx as r}from"react/jsx-runtime";function Item({asChild:i=!1,variant:a=`default`,size:o=`md`,className:s,children:c,...l}){return r(i?t:`div`,{"data-variant":a,"data-size":o,className:n(e.item,s),...l,children:c})}function ItemMedia({className:t,children:i,...a}){return r(`div`,{className:n(e.media,t),...a,children:i})}function ItemContent({className:t,children:i,...a}){return r(`div`,{className:n(e.content,t),...a,children:i})}function ItemTitle({className:t,children:i,...a}){return r(`div`,{className:n(e.title,t),...a,children:i})}function ItemDescription({className:t,children:i,...a}){return r(`p`,{className:n(e.description,t),...a,children:i})}function ItemActions({className:t,children:i,...a}){return r(`div`,{className:n(e.actions,t),...a,children:i})}export{Item,ItemActions,ItemContent,ItemDescription,ItemMedia,ItemTitle};
package/dist/join/join.js CHANGED
@@ -1 +1 @@
1
- import e from"./join.module.js";import{jsx as t}from"react/jsx-runtime";function n({children:n,orientation:r=`horizontal`,className:i}){return t(`div`,{className:[e.join,i].filter(Boolean).join(` `),"data-orientation":r,children:n})}export{n as Join};
1
+ import e from"./join.module.js";import{jsx as t}from"react/jsx-runtime";function Join({children:n,orientation:r=`horizontal`,className:i}){return t(`div`,{className:[e.join,i].filter(Boolean).join(` `),"data-orientation":r,children:n})}export{Join};
package/dist/kbd/kbd.js CHANGED
@@ -1 +1 @@
1
- import e from"./kbd.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function r({size:r=`md`,className:i,children:a,...o}){return n(`kbd`,{"data-size":r,className:t(e.kbd,i),...o,children:a})}export{r as Kbd};
1
+ import e from"./kbd.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function Kbd({size:r=`md`,className:i,children:a,...o}){return n(`kbd`,{"data-size":r,className:t(e.kbd,i),...o,children:a})}export{Kbd};
@@ -1 +1 @@
1
- import e from"./label.module.js";import{Slot as t,cn as n}from"@cascivo/core/pure";import{builtin as r,t as i}from"@cascivo/i18n";import{Fragment as a,jsx as o,jsxs as s}from"react/jsx-runtime";function c({asChild:c=!1,required:l=!1,disabled:u=!1,className:d,children:f,labels:p,...m}){let h=c?t:`label`,g=p?.required??i(r.label.required),_=l?s(a,{children:[o(`span`,{className:e.marker,"aria-hidden":`true`,children:`*`}),o(`span`,{className:e.srOnly,children:g})]}):null;return o(h,{"data-disabled":u?``:void 0,className:n(e.label,d),...m,children:_?s(a,{children:[f,_]}):f})}export{c as Label};
1
+ import e from"./label.module.js";import{Slot as t,cn as n}from"@cascivo/core/pure";import{builtin as r,t as i}from"@cascivo/i18n";import{Fragment as a,jsx as o,jsxs as s}from"react/jsx-runtime";function Label({asChild:c=!1,required:l=!1,disabled:u=!1,className:d,children:f,labels:p,...m}){let h=c?t:`label`,g=p?.required??i(r.label.required),_=l?s(a,{children:[o(`span`,{className:e.marker,"aria-hidden":`true`,children:`*`}),o(`span`,{className:e.srOnly,children:g})]}):null;return o(h,{"data-disabled":u?``:void 0,className:n(e.label,d),...m,children:_?s(a,{children:[f,_]}):f})}export{Label};
@@ -1 +1 @@
1
- import e from"./large-title-header.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";function i({title:i,children:a,leading:o,actions:s,level:c=1,collapseDistance:l=48,className:u}){let d=`h${c}`,f={"--_collapse":`${l}px`};return r(`div`,{className:t(e.root,u),style:f,children:[r(`div`,{className:e.bar,children:[n(`div`,{className:e.slot,children:o}),n(`span`,{"aria-hidden":`true`,className:e.compactTitle,children:i}),n(`div`,{className:t(e.slot,e.slotEnd),children:s})]}),n(d,{className:e.largeTitle,children:i}),a]})}export{i as LargeTitleHeader};
1
+ import e from"./large-title-header.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";function LargeTitleHeader({title:i,children:a,leading:o,actions:s,level:c=1,collapseDistance:l=48,className:u}){let d=`h${c}`,f={"--_collapse":`${l}px`};return r(`div`,{className:t(e.root,u),style:f,children:[r(`div`,{className:e.bar,children:[n(`div`,{className:e.slot,children:o}),n(`span`,{"aria-hidden":`true`,className:e.compactTitle,children:i}),n(`div`,{className:t(e.slot,e.slotEnd),children:s})]}),n(d,{className:e.largeTitle,children:i}),a]})}export{LargeTitleHeader};
@@ -1 +1 @@
1
- import e from"./auto-grid.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function r({min:r=`16rem`,gap:i=4,className:a,style:o,...s}){return n(`div`,{className:t(e[`auto-grid`],a),style:{"--_min":r,"--_gap":`var(--cascivo-space-${i})`,...o},...s})}export{r as AutoGrid};
1
+ import e from"./auto-grid.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function AutoGrid({min:r=`16rem`,gap:i=4,className:a,style:o,...s}){return n(`div`,{className:t(e[`auto-grid`],a),style:{"--_min":r,"--_gap":`var(--cascivo-space-${i})`,...o},...s})}export{AutoGrid};
@@ -1 +1 @@
1
- import e from"./center.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function r({maxWidth:r=`48rem`,className:i,style:a,...o}){return n(`div`,{className:t(e.center,i),style:{"--_center-max":r,...a},...o})}export{r as Center};
1
+ import e from"./center.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function Center({maxWidth:r=`48rem`,className:i,style:a,...o}){return n(`div`,{className:t(e.center,i),style:{"--_center-max":r,...a},...o})}export{Center};
@@ -1 +1 @@
1
- import e from"./columns.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function r({count:r=2,gap:i=4,className:a,style:o,children:s,...c}){return n(`div`,{className:t(e[`columns-container`],a),style:{"--_cols":String(r),"--_gap":`var(--cascivo-space-${i})`,...o},...c,children:n(`div`,{className:e.columns,children:s})})}export{r as Columns};
1
+ import e from"./columns.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function Columns({count:r=2,gap:i=4,className:a,style:o,children:s,...c}){return n(`div`,{className:t(e[`columns-container`],a),style:{"--_cols":String(r),"--_gap":`var(--cascivo-space-${i})`,...o},...c,children:n(`div`,{className:e.columns,children:s})})}export{Columns};
@@ -1 +1 @@
1
- @layer cascivo.component{._flex_1cngp_2{gap:var(--_flex-gap,var(--cascivo-space-4));display:flex}._flex_1cngp_2[data-direction=vertical]{flex-direction:column}._flex_1cngp_2[data-direction=horizontal]{flex-direction:row}._flex_1cngp_2[data-wrap]{flex-wrap:wrap}}
1
+ @layer cascivo.component{._flex_39htm_2{gap:var(--_flex-gap,var(--cascivo-space-4));display:flex}._flex_39htm_2[data-direction=vertical]{flex-direction:column}._flex_39htm_2[data-direction=horizontal]{flex-direction:row}._flex_39htm_2[data-wrap]{flex-wrap:wrap}._flex-item_39htm_19[data-size=auto]{flex:auto}._flex-item_39htm_19[data-size=fixed]{flex:none}._flex-item_39htm_19[data-size=grow]{flex:1 0 auto}._flex-item_39htm_19[data-size=shrink]{flex:0 auto}._flex-item_39htm_19[data-truncate]{text-overflow:ellipsis;min-inline-size:0;overflow:hidden}}
@@ -1 +1 @@
1
- import e from"./flex.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function r({direction:r=`vertical`,gap:i=4,align:a,justify:o,wrap:s=!1,className:c,style:l,...u}){return n(`div`,{className:t(e.flex,c),"data-direction":r,"data-wrap":s?``:void 0,style:{"--_flex-gap":`var(--cascivo-space-${i})`,...a?{alignItems:a===`start`||a===`end`?`flex-${a}`:a}:{},...o?{justifyContent:o===`between`?`space-between`:o===`start`||o===`end`?`flex-${o}`:o}:{},...l},...u})}export{r as Flex};
1
+ import e from"./flex.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function Flex({direction:r=`vertical`,gap:i=4,align:a,justify:o,wrap:s=!1,className:c,style:l,...u}){return n(`div`,{className:t(e.flex,c),"data-direction":r,"data-wrap":s?``:void 0,style:{"--_flex-gap":`var(--cascivo-space-${i})`,...a?{alignItems:a===`start`||a===`end`?`flex-${a}`:a}:{},...o?{justifyContent:o===`between`?`space-between`:o===`start`||o===`end`?`flex-${o}`:o}:{},...l},...u})}function FlexItem({size:r=`auto`,basis:i,truncate:a=!1,className:o,style:s,...c}){return n(`div`,{className:t(e[`flex-item`],o),"data-size":r,"data-truncate":a?``:void 0,style:{...i===void 0?{}:{flexBasis:i},...s},...c})}export{Flex,FlexItem};
@@ -1,2 +1,2 @@
1
1
  import './flex.css';
2
- var e={flex:`_flex_1cngp_2`};export{e as default};
2
+ var e={flex:`_flex_39htm_2`,"flex-item":`_flex-item_39htm_19`};export{e as default};
@@ -1 +1 @@
1
- import e from"./grid.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function r(e){return typeof e==`object`&&!!e}function i(e,t){if(t===void 0)return{};if(!r(t))return{[e]:String(t)};let n={};t.base!==void 0&&(n[e]=String(t.base));for(let r of[`sm`,`md`,`lg`,`xl`]){let i=t[r];i!==void 0&&(n[`${e}-${r}`]=String(i))}return n}function a({cols:a=12,gap:o=4,align:s,justify:c,alignRows:l=!1,className:u,style:d,children:f,...p}){return n(`div`,{className:t(e[`grid-container`],u),style:{...i(`--_grid-cols`,a),"--_grid-gap":`var(--cascivo-space-${o})`,...s?{"--_grid-align":s}:{},...c?{"--_grid-justify":c}:{},...d},...p,children:n(`div`,{className:e.grid,"data-responsive":r(a)?``:void 0,"data-align-rows":l?``:void 0,children:f})})}function o({span:a,className:o,style:s,...c}){let l=a!==void 0&&r(a);return n(`div`,{className:t(e[`grid-item`],o),"data-responsive":l?``:void 0,style:{...i(`--_span`,a),...s},...c})}export{a as Grid,o as GridItem};
1
+ import e from"./grid.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function isResponsive(e){return typeof e==`object`&&!!e}function responsiveVars(e,t){if(t===void 0)return{};if(!isResponsive(t))return{[e]:String(t)};let n={};t.base!==void 0&&(n[e]=String(t.base));for(let r of[`sm`,`md`,`lg`,`xl`]){let i=t[r];i!==void 0&&(n[`${e}-${r}`]=String(i))}return n}function Grid({cols:r=12,gap:i=4,align:a,justify:o,alignRows:s=!1,className:c,style:l,children:u,...d}){return n(`div`,{className:t(e[`grid-container`],c),style:{...responsiveVars(`--_grid-cols`,r),"--_grid-gap":`var(--cascivo-space-${i})`,...a?{"--_grid-align":a}:{},...o?{"--_grid-justify":o}:{},...l},...d,children:n(`div`,{className:e.grid,"data-responsive":isResponsive(r)?``:void 0,"data-align-rows":s?``:void 0,children:u})})}function GridItem({span:r,className:i,style:a,...o}){let s=r!==void 0&&isResponsive(r);return n(`div`,{className:t(e[`grid-item`],i),"data-responsive":s?``:void 0,style:{...responsiveVars(`--_span`,r),...a},...o})}export{Grid,GridItem};
@@ -1 +1 @@
1
- import e from"./page-header.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";function i({title:i,description:a,breadcrumb:o,actions:s,className:c}){return r(`header`,{className:t(e.header,c),children:[o&&n(`div`,{className:e.breadcrumb,children:o}),r(`div`,{className:e.row,children:[n(`h1`,{className:e.title,children:i}),s&&n(`div`,{className:e.actions,children:s})]}),a&&n(`p`,{className:e.description,children:a})]})}export{i as PageHeader};
1
+ import e from"./page-header.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";function PageHeader({title:i,description:a,breadcrumb:o,actions:s,className:c}){return r(`header`,{className:t(e.header,c),children:[o&&n(`div`,{className:e.breadcrumb,children:o}),r(`div`,{className:e.row,children:[n(`h1`,{className:e.title,children:i}),s&&n(`div`,{className:e.actions,children:s})]}),a&&n(`p`,{className:e.description,children:a})]})}export{PageHeader};
@@ -1 +1 @@
1
- import e from"./spacer.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function r({size:r=4,className:i,style:a,...o}){return n(`div`,{role:`none`,className:t(e.spacer,i),style:{"--_spacer-size":`var(--cascivo-space-${r})`,...a},...o})}export{r as Spacer};
1
+ import e from"./spacer.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function Spacer({size:r=4,className:i,style:a,...o}){return n(`div`,{role:`none`,className:t(e.spacer,i),style:{"--_spacer-size":`var(--cascivo-space-${r})`,...a},...o})}export{Spacer};
package/dist/list/list.js CHANGED
@@ -1 +1 @@
1
- import e from"./list.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function r({as:r=`ul`,marker:i,className:a,children:o,...s}){return n(r,{"data-marker":i??(r===`ol`?`decimal`:`disc`),className:t(e.list,a),...s,children:o})}function i({className:r,children:i,...a}){return n(`li`,{className:t(e.item,r),...a,children:i})}export{r as List,i as ListItem};
1
+ import e from"./list.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function List({as:r=`ul`,marker:i,className:a,children:o,...s}){return n(r,{"data-marker":i??(r===`ol`?`decimal`:`disc`),className:t(e.list,a),...s,children:o})}function ListItem({className:r,children:i,...a}){return n(`li`,{className:t(e.item,r),...a,children:i})}export{List,ListItem};
@@ -1 +1 @@
1
- @layer cascivo.component{._root_18p0l_2{border:1px solid var(--cascivo-color-border);border-radius:var(--cascivo-radius-surface);background-color:var(--cascivo-color-surface);flex-direction:column;display:flex;overflow:clip}._toolbar_18p0l_11{align-items:center;gap:var(--cascivo-space-2);padding-block:var(--cascivo-space-2);padding-inline:var(--cascivo-space-3);border-block-end:1px solid var(--cascivo-color-border);display:flex}._search_18p0l_20{min-inline-size:0;font:inherit;font-size:var(--cascivo-text-sm);color:var(--cascivo-color-text);background-color:var(--cascivo-color-surface-raised);border:1px solid var(--cascivo-color-border);border-radius:var(--cascivo-radius-field);padding-block:var(--cascivo-space-1);padding-inline:var(--cascivo-space-2);flex:0 16rem}._count_18p0l_33{font-size:var(--cascivo-text-sm);color:var(--cascivo-color-text-muted)}._spacer_18p0l_38{flex:auto}._toggle_18p0l_42,._copy_18p0l_43{font:inherit;font-size:var(--cascivo-text-sm);color:var(--cascivo-color-text);background-color:var(--cascivo-color-surface-raised);border:1px solid var(--cascivo-color-border);border-radius:var(--cascivo-radius-button);padding-block:var(--cascivo-space-1);padding-inline:var(--cascivo-space-3);cursor:pointer}:is(._toggle_18p0l_42,._copy_18p0l_43):hover{background-color:var(--cascivo-color-surface)}:is(._toggle_18p0l_42,._copy_18p0l_43):focus-visible{outline:2px solid var(--cascivo-color-accent);outline-offset:2px}._toggle_18p0l_42[aria-pressed=true]{color:var(--cascivo-color-accent-content,var(--cascivo-color-text-on-accent));background-color:var(--cascivo-color-accent);border-color:var(--cascivo-color-accent)}@media (pointer:coarse){._toggle_18p0l_42,._copy_18p0l_43,._search_18p0l_20{min-block-size:var(--cascivo-target-min-coarse,2.75rem)}}._scroll_18p0l_81{font-family:var(--cascivo-font-mono);font-size:var(--cascivo-text-sm);color:var(--cascivo-color-text);background-color:var(--cascivo-color-surface);line-height:1.45;position:relative;overflow:auto}._scroll_18p0l_81:focus-visible{outline:2px solid var(--cascivo-color-accent);outline-offset:-2px}._sizer_18p0l_96{inline-size:100%;position:relative}._line_18p0l_101{padding-inline:var(--cascivo-space-3);white-space:pre;align-items:center;display:flex;position:absolute;inset-inline:0}._line_18p0l_101[data-level=warn]{color:var(--cascivo-color-warning-foreground)}._line_18p0l_101[data-level=error]{color:var(--cascivo-color-destructive-foreground)}._line_18p0l_101[data-level=debug]{color:var(--cascivo-color-text-subtle)}._line_18p0l_101 mark{color:inherit;background-color:var(--cascivo-color-warning-subtle);border-radius:var(--cascivo-radius-indicator)}._ansi_18p0l_128[data-ansi=red]{color:var(--cascivo-color-error)}._ansi_18p0l_128[data-ansi=green]{color:var(--cascivo-color-success)}._ansi_18p0l_128[data-ansi=yellow]{color:var(--cascivo-color-warning)}._ansi_18p0l_128[data-ansi=blue],._ansi_18p0l_128[data-ansi=cyan]{color:var(--cascivo-color-info)}._ansi_18p0l_128[data-ansi=magenta]{color:var(--cascivo-color-accent-text)}._ansi_18p0l_128[data-ansi=black],._ansi_18p0l_128[data-ansi=bright-black]{color:var(--cascivo-color-text-muted)}._empty_18p0l_149{padding-block:var(--cascivo-space-6);padding-inline:var(--cascivo-space-3);text-align:center;color:var(--cascivo-color-text-muted)}}
1
+ @layer cascivo.component{._root_p7fwz_2{border:1px solid var(--cascivo-color-border);border-radius:var(--cascivo-radius-surface);background-color:var(--cascivo-color-surface);flex-direction:column;display:flex;overflow:clip}._toolbar_p7fwz_11{align-items:center;gap:var(--cascivo-space-2);padding-block:var(--cascivo-space-2);padding-inline:var(--cascivo-space-3);border-block-end:1px solid var(--cascivo-color-border);display:flex}._search_p7fwz_20{min-inline-size:0;font:inherit;font-size:var(--cascivo-text-sm);color:var(--cascivo-color-text);background-color:var(--cascivo-color-surface-raised);border:1px solid var(--cascivo-color-border);border-radius:var(--cascivo-radius-field);padding-block:var(--cascivo-space-1);padding-inline:var(--cascivo-space-2);flex:0 16rem}._count_p7fwz_33{font-size:var(--cascivo-text-sm);color:var(--cascivo-color-text-muted)}._spacer_p7fwz_38{flex:auto}._toggle_p7fwz_42,._copy_p7fwz_43{font:inherit;font-size:var(--cascivo-text-sm);color:var(--cascivo-color-text);background-color:var(--cascivo-color-surface-raised);border:1px solid var(--cascivo-color-border);border-radius:var(--cascivo-radius-button);padding-block:var(--cascivo-space-1);padding-inline:var(--cascivo-space-3);cursor:pointer}:is(._toggle_p7fwz_42,._copy_p7fwz_43):hover{background-color:var(--cascivo-color-surface)}:is(._toggle_p7fwz_42,._copy_p7fwz_43):focus-visible{outline:2px solid var(--cascivo-color-accent);outline-offset:2px}._toggle_p7fwz_42[aria-pressed=true]{color:var(--cascivo-color-accent-content,var(--cascivo-color-text-on-accent));background-color:var(--cascivo-color-accent);border-color:var(--cascivo-color-accent)}@media (pointer:coarse){._toggle_p7fwz_42,._copy_p7fwz_43,._search_p7fwz_20{min-block-size:var(--cascivo-target-min-coarse,2.75rem)}}._scroll_p7fwz_81{font-family:var(--cascivo-font-mono);font-size:var(--cascivo-text-sm);color:var(--cascivo-color-text);background-color:var(--cascivo-color-surface);line-height:1.45;position:relative;overflow:auto}._scroll_p7fwz_81:focus-visible{outline:2px solid var(--cascivo-color-accent);outline-offset:-2px}._sizer_p7fwz_96{inline-size:100%;position:relative}._line_p7fwz_101{padding-inline:var(--cascivo-space-3);white-space:pre;align-items:center;display:flex;position:absolute;inset-inline:0}._line_p7fwz_101 ._timestamp_p7fwz_112{flex:0 0 var(--_timestamp-width,6.5rem);color:var(--cascivo-color-text-subtle);-webkit-user-select:none;user-select:none}._line_p7fwz_101[data-level=warn]{color:var(--cascivo-color-warning-foreground)}._line_p7fwz_101[data-level=error]{color:var(--cascivo-color-destructive-foreground)}._line_p7fwz_101[data-level=debug]{color:var(--cascivo-color-text-subtle)}._line_p7fwz_101 mark{color:inherit;background-color:var(--cascivo-color-warning-subtle);border-radius:var(--cascivo-radius-indicator)}._ansi_p7fwz_137[data-ansi=red]{color:var(--cascivo-color-error)}._ansi_p7fwz_137[data-ansi=green]{color:var(--cascivo-color-success)}._ansi_p7fwz_137[data-ansi=yellow]{color:var(--cascivo-color-warning)}._ansi_p7fwz_137[data-ansi=blue],._ansi_p7fwz_137[data-ansi=cyan]{color:var(--cascivo-color-info)}._ansi_p7fwz_137[data-ansi=magenta]{color:var(--cascivo-color-accent-text)}._ansi_p7fwz_137[data-ansi=black],._ansi_p7fwz_137[data-ansi=bright-black]{color:var(--cascivo-color-text-muted)}._empty_p7fwz_158{padding-block:var(--cascivo-space-6);padding-inline:var(--cascivo-space-3);text-align:center;color:var(--cascivo-color-text-muted)}}
@@ -1,2 +1,2 @@
1
- "use client";import e from"./log-viewer.module.js";import{Fragment as t}from"react";import{VisuallyHidden as n,cn as r,useClipboard as i,useComputed as a,useControllableSignal as o,useResizeObserver as s,useSignal as c,useSignalEffect as l,useSignals as u}from"@cascivo/core";import{builtin as d,t as f}from"@cascivo/i18n";import{jsx as p,jsxs as m}from"react/jsx-runtime";var h={30:`black`,31:`red`,32:`green`,33:`yellow`,34:`blue`,35:`magenta`,36:`cyan`,37:`white`,90:`bright-black`,91:`red`,92:`green`,93:`yellow`,94:`blue`,95:`magenta`,96:`cyan`,97:`white`};function g(e){if(!e.includes(`\x1B[`))return[{text:e}];try{let t=[],n=/\[([0-9;]*)m/g,r=0,i,a=!1,o;for(;(o=n.exec(e))!==null;){o.index>r&&t.push({text:e.slice(r,o.index),color:i,bold:a});for(let e of o[1].split(`;`)){let t=Number(e||`0`);t===0?(i=void 0,a=!1):t===1?a=!0:t===22?a=!1:h[t]&&(i=h[t])}r=n.lastIndex}return r<e.length&&t.push({text:e.slice(r),color:i,bold:a}),t.length>0?t:[{text:e}]}catch{return[{text:e}]}}function _(e,t,n){if(!t)return e;let r=e.toLowerCase(),i=t.toLowerCase(),a=[],o=0,s=r.indexOf(i,o),c=0;for(;s!==-1;)s>o&&a.push(e.slice(o,s)),a.push(p(`mark`,{children:e.slice(s,s+i.length)},`${n}-${c++}`)),o=s+i.length,s=r.indexOf(i,o);return o<e.length&&a.push(e.slice(o)),a}function v(t,n,r){return(n?g(t.text):[{text:t.text}]).map((n,i)=>p(`span`,{"data-ansi":n.color,style:n.bold?{fontWeight:700}:void 0,className:n.color?e.ansi:void 0,children:_(n.text,r,`${String(t.id)}-${i}`)},i))}function y({lines:h,rowHeight:g=20,overscan:_=8,follow:y,onFollowChange:b,ansi:x=!1,search:S,maxHeight:C=`24rem`,labels:w,className:T,...E}){u();let D={searchPlaceholder:w?.searchPlaceholder??f(d.logViewer.search),follow:w?.follow??f(d.logViewer.follow),paused:w?.paused??f(d.logViewer.paused),copy:w?.copy??f(d.logViewer.copy),copied:w?.copied??f(d.logViewer.copied),empty:w?.empty??f(d.logViewer.empty),label:f(d.logViewer.label)},O=c(Array.isArray(h)?h:[]);Array.isArray(h)&&(O.value=h);let k=Array.isArray(h)?O:h,{ref:A,size:j}=s(),M=c(0),[N,P]=o({value:y,defaultValue:!0,onChange:b}),F=c(S??``),{copied:I,copy:L}=i(),R=a(()=>{let e=k.value,t=e.length,n=j.value?.height??320,r=Math.max(0,t*g-n),i=N.value?r:M.value,a=Math.floor(i/g),o=Math.ceil(n/g)+_*2,s=Math.max(0,a-_),c=Math.min(t,s+o);return{total:t,start:s,end:c,rows:e.slice(s,c)}}),z=a(()=>{let e=F.value.trim().toLowerCase();if(!e)return 0;let t=0;for(let n of k.value)n.text.toLowerCase().includes(e)&&t++;return t});l(()=>{if(k.value,!N.value)return;let e=A.current;e&&(e.scrollTop=e.scrollHeight)});let B=e=>{let t=e.currentTarget;M.value=t.scrollTop,P(t.scrollHeight-t.clientHeight-t.scrollTop<=g)},V=R.value,H=F.value.trim();return m(`div`,{className:r(e.root,T),...E,children:[m(`div`,{className:e.toolbar,children:[p(`input`,{type:`search`,className:e.search,placeholder:D.searchPlaceholder,"aria-label":D.searchPlaceholder,value:F.value,onInput:e=>{F.value=e.currentTarget.value}}),H?p(`span`,{className:e.count,"aria-live":`polite`,children:f(d.logViewer.matches,{count:z.value})}):null,p(`span`,{className:e.spacer}),p(`button`,{type:`button`,className:e.toggle,"aria-pressed":N.value,onClick:()=>{let e=!N.value;if(P(e),e){let e=A.current;e&&(e.scrollTop=e.scrollHeight)}},children:N.value?D.follow:D.paused}),p(`button`,{type:`button`,className:e.copy,onClick:()=>void L(k.value.map(e=>e.text).join(`
2
- `)),children:I.value?D.copied:D.copy})]}),p(`div`,{ref:A,className:e.scroll,role:`log`,"aria-live":`polite`,"aria-label":D.label,tabIndex:0,style:{maxBlockSize:C},onScroll:B,children:V.total===0?p(`div`,{className:e.empty,children:D.empty}):p(`div`,{className:e.sizer,style:{blockSize:V.total*g},children:V.rows.map((n,r)=>p(t,{children:p(`div`,{className:e.line,"data-level":n.level,style:{insetBlockStart:(V.start+r)*g,blockSize:g},children:v(n,x,H)})},n.id))})}),p(n,{"aria-live":`polite`,children:f(d.logViewer.lines,{count:V.total})})]})}export{y as LogViewer};
1
+ "use client";import e from"./log-viewer.module.js";import{Fragment as t}from"react";import{VisuallyHidden as n,cn as r,useClipboard as i,useComputed as a,useControllableSignal as o,useResizeObserver as s,useSignal as c,useSignalEffect as l,useSignals as u}from"@cascivo/core";import{builtin as d,t as f}from"@cascivo/i18n";import{Fragment as p,jsx as m,jsxs as h}from"react/jsx-runtime";var g={30:`black`,31:`red`,32:`green`,33:`yellow`,34:`blue`,35:`magenta`,36:`cyan`,37:`white`,90:`bright-black`,91:`red`,92:`green`,93:`yellow`,94:`blue`,95:`magenta`,96:`cyan`,97:`white`};function parseAnsi(e){if(!e.includes(`\x1B[`))return[{text:e}];try{let t=[],n=/\[([0-9;]*)m/g,r=0,i,a=!1,o;for(;(o=n.exec(e))!==null;){o.index>r&&t.push({text:e.slice(r,o.index),color:i,bold:a});for(let e of o[1].split(`;`)){let t=Number(e||`0`);t===0?(i=void 0,a=!1):t===1?a=!0:t===22?a=!1:g[t]&&(i=g[t])}r=n.lastIndex}return r<e.length&&t.push({text:e.slice(r),color:i,bold:a}),t.length>0?t:[{text:e}]}catch{return[{text:e}]}}function highlight(e,t,n){if(!t)return e;let r=e.toLowerCase(),i=t.toLowerCase(),a=[],o=0,s=r.indexOf(i,o),c=0;for(;s!==-1;)s>o&&a.push(e.slice(o,s)),a.push(m(`mark`,{children:e.slice(s,s+i.length)},`${n}-${c++}`)),o=s+i.length,s=r.indexOf(i,o);return o<e.length&&a.push(e.slice(o)),a}function renderLine(t,n,r){let i=n?parseAnsi(t.text):[{text:t.text}];return h(p,{children:[t.timestamp!==void 0&&m(`span`,{className:e.timestamp,children:t.timestamp}),i.map((n,i)=>m(`span`,{"data-ansi":n.color,style:n.bold?{fontWeight:700}:void 0,className:n.color?e.ansi:void 0,children:highlight(n.text,r,`${String(t.id)}-${i}`)},i))]})}function LogViewer({lines:p,rowHeight:g=20,overscan:_=8,follow:v,onFollowChange:y,ansi:b=!1,search:x,maxHeight:S=`24rem`,timestampWidth:C=`6.5rem`,labels:w,className:T,...E}){u();let D={searchPlaceholder:w?.searchPlaceholder??f(d.logViewer.search),follow:w?.follow??f(d.logViewer.follow),paused:w?.paused??f(d.logViewer.paused),copy:w?.copy??f(d.logViewer.copy),copied:w?.copied??f(d.logViewer.copied),empty:w?.empty??f(d.logViewer.empty),label:f(d.logViewer.label)},O=c(Array.isArray(p)?p:[]);Array.isArray(p)&&(O.value=p);let k=Array.isArray(p)?O:p,{ref:A,size:j}=s(),M=c(0),[N,P]=o({value:v,defaultValue:!0,onChange:y}),F=c(x??``),{copied:I,copy:L}=i(),R=a(()=>{let e=k.value,t=e.length,n=j.value?.height??320,r=Math.max(0,t*g-n),i=N.value?r:M.value,a=Math.floor(i/g),o=Math.ceil(n/g)+_*2,s=Math.max(0,a-_),c=Math.min(t,s+o);return{total:t,start:s,end:c,rows:e.slice(s,c)}}),z=a(()=>{let e=F.value.trim().toLowerCase();if(!e)return 0;let t=0;for(let n of k.value)n.text.toLowerCase().includes(e)&&t++;return t});l(()=>{if(k.value,!N.value)return;let e=A.current;e&&(e.scrollTop=e.scrollHeight)});let onScroll=e=>{let t=e.currentTarget;M.value=t.scrollTop,P(t.scrollHeight-t.clientHeight-t.scrollTop<=g)},B=R.value,V=F.value.trim();return h(`div`,{className:r(e.root,T),style:{"--_timestamp-width":C},...E,children:[h(`div`,{className:e.toolbar,children:[m(`input`,{type:`search`,className:e.search,placeholder:D.searchPlaceholder,"aria-label":D.searchPlaceholder,value:F.value,onInput:e=>{F.value=e.currentTarget.value}}),V?m(`span`,{className:e.count,"aria-live":`polite`,children:f(d.logViewer.matches,{count:z.value})}):null,m(`span`,{className:e.spacer}),m(`button`,{type:`button`,className:e.toggle,"aria-pressed":N.value,onClick:()=>{let e=!N.value;if(P(e),e){let e=A.current;e&&(e.scrollTop=e.scrollHeight)}},children:N.value?D.follow:D.paused}),m(`button`,{type:`button`,className:e.copy,onClick:()=>void L(k.value.map(e=>e.text).join(`
2
+ `)),children:I.value?D.copied:D.copy})]}),m(`div`,{ref:A,className:e.scroll,role:`log`,"aria-live":`polite`,"aria-label":D.label,tabIndex:0,style:{maxBlockSize:S},onScroll,children:B.total===0?m(`div`,{className:e.empty,children:D.empty}):m(`div`,{className:e.sizer,style:{blockSize:B.total*g},children:B.rows.map((n,r)=>m(t,{children:m(`div`,{className:e.line,"data-level":n.level,style:{insetBlockStart:(B.start+r)*g,blockSize:g},children:renderLine(n,b,V)})},n.id))})}),m(n,{"aria-live":`polite`,children:f(d.logViewer.lines,{count:B.total})})]})}export{LogViewer};
@@ -1,2 +1,2 @@
1
1
  import './log-viewer.css';
2
- var e={root:`_root_18p0l_2`,toolbar:`_toolbar_18p0l_11`,search:`_search_18p0l_20`,count:`_count_18p0l_33`,spacer:`_spacer_18p0l_38`,toggle:`_toggle_18p0l_42`,copy:`_copy_18p0l_43`,scroll:`_scroll_18p0l_81`,sizer:`_sizer_18p0l_96`,line:`_line_18p0l_101`,ansi:`_ansi_18p0l_128`,empty:`_empty_18p0l_149`};export{e as default};
2
+ var e={root:`_root_p7fwz_2`,toolbar:`_toolbar_p7fwz_11`,search:`_search_p7fwz_20`,count:`_count_p7fwz_33`,spacer:`_spacer_p7fwz_38`,toggle:`_toggle_p7fwz_42`,copy:`_copy_p7fwz_43`,scroll:`_scroll_p7fwz_81`,sizer:`_sizer_p7fwz_96`,line:`_line_p7fwz_101`,timestamp:`_timestamp_p7fwz_112`,ansi:`_ansi_p7fwz_137`,empty:`_empty_p7fwz_158`};export{e as default};
package/dist/menu/menu.js CHANGED
@@ -1 +1 @@
1
- "use client";import{usePopover as e}from"../popover/use-popover.js";import t from"./menu.module.js";import{Children as n,createContext as r,isValidElement as i}from"react";import{useSignalEffect as a,useSignals as o,useTypeahead as s}from"@cascivo/core";import{jsx as c,jsxs as l}from"react/jsx-runtime";var u=r(null);function d({ctx:e,children:n}){o();let{popoverRef:r,anchorName:i,isOpen:l}=e,u=()=>{let e=r.current;return e?Array.from(e.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`)):[]},d=e=>{let t=u();t.length!==0&&t[e(t,t.indexOf(document.activeElement))]?.focus()},f=s({onMatch:e=>{u().find(t=>(t.textContent??``).trim().toLowerCase().startsWith(e))?.focus()}});return a(()=>{if(!l.value)return;let e=r.current;e&&e.querySelector(`[role="menuitem"]:not([aria-disabled="true"])`)?.focus()}),c(`div`,{ref:r,popover:`auto`,role:`menu`,"data-state":l.value?`open`:`closed`,style:{positionAnchor:i},className:t.panel,onKeyDown:e=>{switch(e.key){case`ArrowDown`:e.preventDefault(),d((e,t)=>t<0?0:(t+1)%e.length);break;case`ArrowUp`:e.preventDefault(),d((e,t)=>t<0?e.length-1:(t-1+e.length)%e.length);break;case`Home`:e.preventDefault(),d(()=>0);break;case`End`:e.preventDefault(),d(e=>e.length-1);break;default:f.onKeyDown(e)}},children:n})}function f({children:e}){return c(u.Consumer,{children:t=>{if(!t)throw Error(`MenuPanel must be inside <Menu>`);return c(d,{ctx:t,children:e})}})}function p(){return globalThis.process?.env?.NODE_ENV!==`production`}function m({children:t}){let r=e(),a=n.toArray(t),o=a.find(e=>i(e)&&e.type===g),s=a.filter(e=>e!==o);if(o===void 0&&p())throw Error(`<Menu> requires a <MenuTrigger> child. It is matched by component identity, so it may appear in any order — but it must be a direct child, not wrapped in a fragment or another component.`);return l(u.Provider,{value:r,children:[o,c(f,{children:s})]})}function h({ctx:e,children:n,ariaLabel:r,"aria-label":i}){o();let{triggerRef:a,toggle:s,anchorName:l,isOpen:u}=e;return c(`button`,{ref:a,type:`button`,"aria-haspopup":`menu`,"aria-expanded":u.value,"aria-label":r??i,style:{anchorName:l},onClick:s,className:t.trigger,children:n})}function g({children:e,ariaLabel:t,"aria-label":n}){let r=t??n;return c(u.Consumer,{children:t=>{if(!t)throw Error(`MenuTrigger must be inside <Menu>`);return c(h,{ctx:t,...r!==void 0&&{ariaLabel:r},children:e})}})}function _({children:e,onSelect:n,disabled:r}){return c(u.Consumer,{children:i=>{if(!i)throw Error(`MenuItem must be inside <Menu>`);let{close:a}=i;function o(){r||(n(),a())}function s(e){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),e.stopPropagation(),o())}return c(`div`,{role:`menuitem`,tabIndex:r?-1:0,"aria-disabled":r,onClick:o,onKeyDown:s,className:t.item,children:e})}})}function v(){return c(`div`,{role:`separator`,className:t.separator})}export{m as Menu,_ as MenuItem,v as MenuSeparator,g as MenuTrigger};
1
+ "use client";import{usePopover as e}from"../popover/use-popover.js";import t from"./menu.module.js";import{Children as n,createContext as r,isValidElement as i}from"react";import{useSignalEffect as a,useSignals as o,useTypeahead as s}from"@cascivo/core";import{jsx as c,jsxs as l}from"react/jsx-runtime";var u=r(null);function MenuPanelInner({ctx:e,children:n}){o();let{popoverRef:r,anchorName:i,isOpen:l}=e,enabledItems=()=>{let e=r.current;return e?Array.from(e.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`)):[]},focusItem=e=>{let t=enabledItems();t.length!==0&&t[e(t,t.indexOf(document.activeElement))]?.focus()},u=s({onMatch:e=>{enabledItems().find(t=>(t.textContent??``).trim().toLowerCase().startsWith(e))?.focus()}});return a(()=>{if(!l.value)return;let e=r.current;e&&e.querySelector(`[role="menuitem"]:not([aria-disabled="true"])`)?.focus()}),c(`div`,{ref:r,popover:`auto`,role:`menu`,"data-state":l.value?`open`:`closed`,style:{positionAnchor:i},className:t.panel,onKeyDown:e=>{switch(e.key){case`ArrowDown`:e.preventDefault(),focusItem((e,t)=>t<0?0:(t+1)%e.length);break;case`ArrowUp`:e.preventDefault(),focusItem((e,t)=>t<0?e.length-1:(t-1+e.length)%e.length);break;case`Home`:e.preventDefault(),focusItem(()=>0);break;case`End`:e.preventDefault(),focusItem(e=>e.length-1);break;default:u.onKeyDown(e)}},children:n})}function MenuPanel({children:e}){return c(u.Consumer,{children:t=>{if(!t)throw Error(`MenuPanel must be inside <Menu>`);return c(MenuPanelInner,{ctx:t,children:e})}})}function isDev(){return globalThis.process?.env?.NODE_ENV!==`production`}function Menu({children:t}){let r=e(),a=n.toArray(t),o=a.find(e=>i(e)&&e.type===MenuTrigger),s=a.filter(e=>e!==o);if(o===void 0&&isDev())throw Error(`<Menu> requires a <MenuTrigger> child. It is matched by component identity, so it may appear in any order — but it must be a direct child, not wrapped in a fragment or another component.`);return l(u.Provider,{value:r,children:[o,c(MenuPanel,{children:s})]})}function MenuTriggerInner({ctx:e,children:n,ariaLabel:r,"aria-label":i}){o();let{triggerRef:a,toggle:s,anchorName:l,isOpen:u}=e;return c(`button`,{ref:a,type:`button`,"aria-haspopup":`menu`,"aria-expanded":u.value,"aria-label":r??i,style:{anchorName:l},onClick:s,className:t.trigger,children:n})}function MenuTrigger({children:e,ariaLabel:t,"aria-label":n}){let r=t??n;return c(u.Consumer,{children:t=>{if(!t)throw Error(`MenuTrigger must be inside <Menu>`);return c(MenuTriggerInner,{ctx:t,...r!==void 0&&{ariaLabel:r},children:e})}})}function MenuItem({children:e,onSelect:n,disabled:r}){return c(u.Consumer,{children:i=>{if(!i)throw Error(`MenuItem must be inside <Menu>`);let{close:a}=i;function handleClick(){r||(n(),a())}function handleKeyDown(e){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),e.stopPropagation(),handleClick())}return c(`div`,{role:`menuitem`,tabIndex:r?-1:0,"aria-disabled":r,onClick:handleClick,onKeyDown:handleKeyDown,className:t.item,children:e})}})}function MenuSeparator(){return c(`div`,{role:`separator`,className:t.separator})}export{Menu,MenuItem,MenuSeparator,MenuTrigger};
@@ -1 +1 @@
1
- "use client";import e from"./menu-button.module.js";import{useId as t,useRef as n}from"react";import{DismissableLayer as r,cn as i,focusElement as a,useAnchorPosition as o,useSignal as s,useSignalEffect as c,useSignals as l}from"@cascivo/core";import{jsx as u,jsxs as d}from"react/jsx-runtime";function f(e,t){if(!e)return;let n=e.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`);n[t<0?n.length-1:t%n.length]?.focus()}function p({label:p,items:m,variant:h=`secondary`,size:g=`md`,disabled:_=!1,align:v=`start`,labels:y,className:b}){l();let x=s(!1),S=n(null),C=n(null),w=t(),{anchorStyle:T,floatingStyle:E}=o({anchorRef:S,floatingRef:C,placement:v===`end`?`bottom-end`:`bottom-start`,enabled:x});c(()=>{x.value&&f(C.current,0)});function D(e){_||(x.value=!0,queueMicrotask(()=>f(C.current,e)))}function O(e){x.value=!1,e&&a(S.current)}function k(e){e.key===`ArrowDown`||e.key===`Enter`||e.key===` `?(e.preventDefault(),D(0)):e.key===`ArrowUp`&&(e.preventDefault(),D(-1))}function A(e){if(e.key===`ArrowDown`){e.preventDefault();let t=e.currentTarget.nextElementSibling;t?t.focus():f(C.current,0)}else if(e.key===`ArrowUp`){e.preventDefault();let t=e.currentTarget.previousElementSibling;t?t.focus():f(C.current,-1)}else e.key===`Escape`?(e.preventDefault(),O(!0)):e.key===`Tab`&&O(!1)}function j(e){e.disabled||(e.onSelect?.(),O(!0))}return d(`div`,{className:i(e.root,b),children:[u(`button`,{ref:S,type:`button`,className:e.trigger,"data-variant":h,"data-size":g,disabled:_,"aria-haspopup":`menu`,"aria-expanded":x.value,"aria-controls":w,...y?.open!==void 0&&{"aria-label":y.open},style:T,onClick:()=>{x.value?O(!1):D(0)},onKeyDown:k,children:p}),x.value?u(r,{onDismiss:()=>O(!0),children:u(`div`,{ref:C,id:w,role:`menu`,"data-state":`open`,"data-align":v,className:e.menu,style:E,children:m.map(t=>u(`div`,{role:`menuitem`,tabIndex:-1,"aria-disabled":t.disabled,className:e.item,onClick:()=>j(t),onKeyDown:e=>{e.key===`Enter`||e.key===` `?(e.preventDefault(),j(t)):A(e)},children:t.label},t.id))})}):null]})}export{p as MenuButton};
1
+ "use client";import e from"./menu-button.module.js";import{useId as t,useRef as n}from"react";import{DismissableLayer as r,cn as i,focusElement as a,useAnchorPosition as o,useSignal as s,useSignalEffect as c,useSignals as l}from"@cascivo/core";import{jsx as u,jsxs as d}from"react/jsx-runtime";function focusItem(e,t){if(!e)return;let n=e.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`);n[t<0?n.length-1:t%n.length]?.focus()}function MenuButton({label:f,items:p,variant:m=`secondary`,size:h=`md`,disabled:g=!1,align:_=`start`,labels:v,className:y}){l();let b=s(!1),x=n(null),S=n(null),C=t(),{anchorStyle:w,floatingStyle:T}=o({anchorRef:x,floatingRef:S,placement:_===`end`?`bottom-end`:`bottom-start`,enabled:b});c(()=>{b.value&&focusItem(S.current,0)});function openMenu(e){g||(b.value=!0,queueMicrotask(()=>focusItem(S.current,e)))}function close(e){b.value=!1,e&&a(x.current)}function handleTriggerKeyDown(e){e.key===`ArrowDown`||e.key===`Enter`||e.key===` `?(e.preventDefault(),openMenu(0)):e.key===`ArrowUp`&&(e.preventDefault(),openMenu(-1))}function handleItemKeyDown(e){if(e.key===`ArrowDown`){e.preventDefault();let t=e.currentTarget.nextElementSibling;t?t.focus():focusItem(S.current,0)}else if(e.key===`ArrowUp`){e.preventDefault();let t=e.currentTarget.previousElementSibling;t?t.focus():focusItem(S.current,-1)}else e.key===`Escape`?(e.preventDefault(),close(!0)):e.key===`Tab`&&close(!1)}function select(e){e.disabled||(e.onSelect?.(),close(!0))}return d(`div`,{className:i(e.root,y),children:[u(`button`,{ref:x,type:`button`,className:e.trigger,"data-variant":m,"data-size":h,disabled:g,"aria-haspopup":`menu`,"aria-expanded":b.value,"aria-controls":C,...v?.open!==void 0&&{"aria-label":v.open},style:w,onClick:()=>{b.value?close(!1):openMenu(0)},onKeyDown:handleTriggerKeyDown,children:f}),b.value?u(r,{onDismiss:()=>close(!0),children:u(`div`,{ref:S,id:C,role:`menu`,"data-state":`open`,"data-align":_,className:e.menu,style:T,children:p.map(t=>u(`div`,{role:`menuitem`,tabIndex:-1,"aria-disabled":t.disabled,className:e.item,onClick:()=>select(t),onKeyDown:e=>{e.key===`Enter`||e.key===` `?(e.preventDefault(),select(t)):handleItemKeyDown(e)},children:t.label},t.id))})}):null]})}export{MenuButton};
@@ -1 +1 @@
1
- "use client";import e from"./menubar.module.js";import{useId as t,useRef as n}from"react";import{DismissableLayer as r,Presence as i,cn as a,focusElement as o,useAnchorPosition as s,useRovingFocus as c,useSignal as l,useSignals as u}from"@cascivo/core";import{Fragment as d,jsx as f,jsxs as p}from"react/jsx-runtime";function m({menus:n,ariaLabel:r,"aria-label":i,className:o}){u();let s=t(),d=l(null),p=c({orientation:`horizontal`,loop:!0});return f(`div`,{role:`menubar`,"aria-label":r??i,className:a(e.menubar,o),children:n.map((e,t)=>f(h,{menu:e,index:t,baseId:s,openId:d,itemProps:p.getItemProps(t)},e.id))})}function h({menu:t,baseId:r,openId:a,itemProps:c}){u();let l=n(null),m=n(null),h=a.value===t.id,_=`${r}-menu-${t.id}`,{anchorStyle:v,floatingStyle:y}=s({anchorRef:l,floatingRef:m,placement:`bottom-start`,enabled:h}),b=()=>{(m.current?.querySelector(`[role="menuitem"]:not([aria-disabled="true"])`))?.focus()},x=e=>{c.onKeyDown(e),!e.defaultPrevented&&(e.key===`ArrowDown`||e.key===`Enter`||e.key===` `?(e.preventDefault(),a.value=t.id,requestAnimationFrame(b)):e.key===`Escape`&&(a.value=null))},{ref:S,onKeyDown:C,...w}=c;return p(d,{children:[f(`button`,{ref:e=>{l.current=e,S(e)},type:`button`,role:`menuitem`,"aria-haspopup":`menu`,"aria-expanded":h,"aria-controls":_,"data-state":h?`open`:`closed`,className:e.trigger,style:v,onClick:()=>{a.value=h?null:t.id},onKeyDown:x,...w,children:t.label}),f(i,{present:h,children:f(g,{menu:t,menuId:_,floatingRef:m,floatingStyle:y,onClose:()=>{a.value=null,o(l.current)}})})]})}function g({menu:t,menuId:n,floatingRef:i,floatingStyle:a,onClose:o}){let s=e=>{let t=Array.from(i.current?.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`)??[]);if(t.length===0)return;let n=t.indexOf(e.currentTarget);e.key===`ArrowDown`?(e.preventDefault(),t[(n+1)%t.length]?.focus()):e.key===`ArrowUp`?(e.preventDefault(),t[(n-1+t.length)%t.length]?.focus()):e.key===`Home`?(e.preventDefault(),t[0]?.focus()):e.key===`End`&&(e.preventDefault(),t[t.length-1]?.focus())};return f(r,{onDismiss:o,children:f(`div`,{ref:i,id:n,role:`menu`,"aria-label":typeof t.label==`string`?t.label:void 0,className:e.panel,style:a,children:t.items.map(t=>f(`div`,{role:`menuitem`,tabIndex:-1,"aria-disabled":t.disabled,className:e.item,onClick:()=>{t.disabled||(t.onSelect?.(),o())},onKeyDown:e=>{t.disabled||(e.key===`Enter`||e.key===` `?(e.preventDefault(),t.onSelect?.(),o()):s(e))},children:t.label},t.id))})})}export{m as Menubar};
1
+ "use client";import e from"./menubar.module.js";import{useId as t,useRef as n}from"react";import{DismissableLayer as r,Presence as i,cn as a,focusElement as o,useAnchorPosition as s,useRovingFocus as c,useSignal as l,useSignals as u}from"@cascivo/core";import{Fragment as d,jsx as f,jsxs as p}from"react/jsx-runtime";function Menubar({menus:n,ariaLabel:r,"aria-label":i,className:o}){u();let s=t(),d=l(null),p=c({orientation:`horizontal`,loop:!0});return f(`div`,{role:`menubar`,"aria-label":r??i,className:a(e.menubar,o),children:n.map((e,t)=>f(MenubarTrigger,{menu:e,index:t,baseId:s,openId:d,itemProps:p.getItemProps(t)},e.id))})}function MenubarTrigger({menu:t,baseId:r,openId:a,itemProps:c}){u();let l=n(null),m=n(null),h=a.value===t.id,g=`${r}-menu-${t.id}`,{anchorStyle:_,floatingStyle:v}=s({anchorRef:l,floatingRef:m,placement:`bottom-start`,enabled:h}),focusFirstItem=()=>{(m.current?.querySelector(`[role="menuitem"]:not([aria-disabled="true"])`))?.focus()},handleKeyDown=e=>{c.onKeyDown(e),!e.defaultPrevented&&(e.key===`ArrowDown`||e.key===`Enter`||e.key===` `?(e.preventDefault(),a.value=t.id,requestAnimationFrame(focusFirstItem)):e.key===`Escape`&&(a.value=null))},{ref:y,onKeyDown:b,...x}=c;return p(d,{children:[f(`button`,{ref:e=>{l.current=e,y(e)},type:`button`,role:`menuitem`,"aria-haspopup":`menu`,"aria-expanded":h,"aria-controls":g,"data-state":h?`open`:`closed`,className:e.trigger,style:_,onClick:()=>{a.value=h?null:t.id},onKeyDown:handleKeyDown,...x,children:t.label}),f(i,{present:h,children:f(MenubarPanel,{menu:t,menuId:g,floatingRef:m,floatingStyle:v,onClose:()=>{a.value=null,o(l.current)}})})]})}function MenubarPanel({menu:t,menuId:n,floatingRef:i,floatingStyle:a,onClose:o}){let handleItemKeyDown=e=>{let t=Array.from(i.current?.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`)??[]);if(t.length===0)return;let n=t.indexOf(e.currentTarget);e.key===`ArrowDown`?(e.preventDefault(),t[(n+1)%t.length]?.focus()):e.key===`ArrowUp`?(e.preventDefault(),t[(n-1+t.length)%t.length]?.focus()):e.key===`Home`?(e.preventDefault(),t[0]?.focus()):e.key===`End`&&(e.preventDefault(),t[t.length-1]?.focus())};return f(r,{onDismiss:o,children:f(`div`,{ref:i,id:n,role:`menu`,"aria-label":typeof t.label==`string`?t.label:void 0,className:e.panel,style:a,children:t.items.map(t=>f(`div`,{role:`menuitem`,tabIndex:-1,"aria-disabled":t.disabled,className:e.item,onClick:()=>{t.disabled||(t.onSelect?.(),o())},onKeyDown:e=>{t.disabled||(e.key===`Enter`||e.key===` `?(e.preventDefault(),t.onSelect?.(),o()):handleItemKeyDown(e))},children:t.label},t.id))})})}export{Menubar};
@@ -1 +1 @@
1
- "use client";import e from"./modal.module.js";import{useRef as t}from"react";import{cn as n,useDraggable as r,useEffectPropSignal as i,useId as a,useSignalEffect as o,useSignals as s}from"@cascivo/core";import{builtin as c,t as l}from"@cascivo/i18n";import{jsx as u,jsxs as d}from"react/jsx-runtime";function f({open:f=!1,onClose:p,title:m,description:h,children:g,footer:_,className:v,size:y=`md`,draggable:b=!1}){s();let x=t(null),S=t(p);S.current=p;let C=a(`cascivo-modal-title`),w=a(`cascivo-modal-desc`),{handleRef:T,offset:E}=r({isDisabled:!b}),D=b?{"--modal-x":`${E.value.x}px`,"--modal-y":`${E.value.y}px`}:void 0,O=i(f);return o(()=>{let e=x.current;e&&(O.value?e.open||e.showModal():e.open&&e.close())}),o(()=>{let e=x.current;if(!e)return;let t=()=>S.current?.();return e.addEventListener(`close`,t),()=>e.removeEventListener(`close`,t)}),u(`dialog`,{ref:x,"data-size":y,"data-draggable":b||void 0,className:n(e.dialog,v),style:D,onClick:e=>{e.target===x.current&&x.current?.close()},"aria-labelledby":m?C:void 0,"aria-describedby":h?w:void 0,children:d(`div`,{className:e.panel,children:[(m||p)&&d(`div`,{className:e.header,ref:b?e=>{T.current=e}:void 0,children:[m&&u(`h2`,{id:C,className:e.title,children:m}),p&&u(`button`,{type:`button`,className:e.close,onClick:()=>x.current?.close(),"aria-label":l(c.modal.close),children:`✕`})]}),h&&u(`p`,{id:w,className:e.description,children:h}),u(`div`,{className:e.body,"data-cascivo-modal-body":``,children:g}),_&&u(`div`,{className:e.footer,"data-cascivo-modal-footer":``,children:_})]})})}export{f as Modal};
1
+ "use client";import e from"./modal.module.js";import{useRef as t}from"react";import{cn as n,useDraggable as r,useEffectPropSignal as i,useId as a,useSignalEffect as o,useSignals as s}from"@cascivo/core";import{builtin as c,t as l}from"@cascivo/i18n";import{jsx as u,jsxs as d}from"react/jsx-runtime";function Modal({open:f=!1,onClose:p,title:m,description:h,children:g,footer:_,className:v,size:y=`md`,draggable:b=!1}){s();let x=t(null),S=t(p);S.current=p;let C=a(`cascivo-modal-title`),w=a(`cascivo-modal-desc`),{handleRef:T,offset:E}=r({isDisabled:!b}),D=b?{"--modal-x":`${E.value.x}px`,"--modal-y":`${E.value.y}px`}:void 0,O=i(f);return o(()=>{let e=x.current;e&&(O.value?e.open||e.showModal():e.open&&e.close())}),o(()=>{let e=x.current;if(!e)return;let handler=()=>S.current?.();return e.addEventListener(`close`,handler),()=>e.removeEventListener(`close`,handler)}),u(`dialog`,{ref:x,"data-size":y,"data-draggable":b||void 0,className:n(e.dialog,v),style:D,onClick:e=>{e.target===x.current&&x.current?.close()},"aria-labelledby":m?C:void 0,"aria-describedby":h?w:void 0,children:d(`div`,{className:e.panel,children:[(m||p)&&d(`div`,{className:e.header,ref:b?e=>{T.current=e}:void 0,children:[m&&u(`h2`,{id:C,className:e.title,children:m}),p&&u(`button`,{type:`button`,className:e.close,onClick:()=>x.current?.close(),"aria-label":l(c.modal.close),children:`✕`})]}),h&&u(`p`,{id:w,className:e.description,children:h}),u(`div`,{className:e.body,"data-cascivo-modal-body":``,children:g}),_&&u(`div`,{className:e.footer,"data-cascivo-modal-footer":``,children:_})]})})}export{Modal};
@@ -1 +1 @@
1
- function e(e){let t=[];return e.forEach((e,n)=>{e.disabled||t.push(n)}),t}function t(t,n,r){let i=e(r);if(i.length===0)return-1;let a=i.indexOf(t);return a===-1?n>0?i[0]:i[i.length-1]:i[(a+n+i.length)%i.length]}function n(t){return e(t)[0]??-1}function r(t){let n=e(t);return n[n.length-1]??-1}function i(t,n,r){let i=e(r);if(i.length===0)return-1;let a=i.indexOf(t),o=a===-1?n>0?-1:i.length:a;return i[Math.min(Math.max(o+n*10,0),i.length-1)]}function a(e,t){return e>=0&&e<t.length&&!t[e]?.disabled?e:n(t)}export{a as clampActive,n as firstActive,r as lastActive,t as moveActive,i as pageActive};
1
+ function enabledIndexes(e){let t=[];return e.forEach((e,n)=>{e.disabled||t.push(n)}),t}function moveActive(e,t,n){let r=enabledIndexes(n);if(r.length===0)return-1;let i=r.indexOf(e);return i===-1?t>0?r[0]:r[r.length-1]:r[(i+t+r.length)%r.length]}function firstActive(e){return enabledIndexes(e)[0]??-1}function lastActive(e){let t=enabledIndexes(e);return t[t.length-1]??-1}function pageActive(e,t,n){let r=enabledIndexes(n);if(r.length===0)return-1;let i=r.indexOf(e),a=i===-1?t>0?-1:r.length:i;return r[Math.min(Math.max(a+t*10,0),r.length-1)]}function clampActive(e,t){return e>=0&&e<t.length&&!t[e]?.disabled?e:firstActive(t)}export{clampActive,firstActive,lastActive,moveActive,pageActive};
@@ -1 +1 @@
1
- "use client";import{usePopover as e}from"../popover/use-popover.js";import{clampActive as t,firstActive as n,lastActive as r,moveActive as i,pageActive as a}from"./list-nav.js";import{filterOptions as o,groupOptions as ee,highlightSegments as te,isNewLabel as ne,orderByGroup as re}from"./option-list.js";import s from"./multi-select.module.js";import{useId as ie,useRef as c}from"react";import{cn as ae,focusElement as oe,useControllableSignal as se,useSignal as ce,useSignalEffect as l,useSignals as le}from"@cascivo/core";import{builtin as u,t as d}from"@cascivo/i18n";import{jsx as f,jsxs as p}from"react/jsx-runtime";function ue(...e){return e.filter(Boolean).join(` `)||void 0}function m({options:m,value:de,defaultValue:fe,onValueChange:pe,placeholder:me,label:h,ariaLabel:g,hint:_,error:v,display:y=`count`,disabled:b=!1,clearable:he=!1,selectAll:ge=!1,max:x,creatable:_e=!1,onCreate:ve,loading:S=!1,onSearchChange:C,filter:w,searchable:T=!0,size:ye=`md`,name:E,labels:D,className:be,id:xe,"aria-labelledby":Se,"aria-describedby":Ce,"aria-invalid":we,...Te}){le();let O=e({placement:`bottom`}),k=ie(),A=xe??`${k}-trigger`,j=`${k}-listbox`,M=`${k}-panel`,Ee=`${k}-search`,N=e=>`${k}-option-${e}`,P=ce(``),F=ce(-1),I=c(null),L=c(null),R=c(null),[z,De]=se({value:de,defaultValue:fe??[],onChange:pe}),B=O.isOpen.value,V=z.value,H=x!==void 0&&V.length>=x,U=P.value,W=re(o(m,T?U:``,w)),G=_e&&U.trim()!==``&&ne(m,U.trim()),K=G?W.length:-1,Oe=ee(W),ke=me??D?.placeholder??d(u.multiSelect.placeholder),q=D?.search??d(u.multiSelect.search),Ae=D?.noResults??d(u.multiSelect.noResults),je=D?.loading??d(u.multiSelect.loading),Me=D?.label??h??g??d(u.multiSelect.label),Ne=D?.clear??d(u.multiSelect.clear),Pe=D?.selectAll??d(u.multiSelect.selectAll),Fe=D?.clearAll??d(u.multiSelect.clearAll),Ie=e=>D?.remove?D.remove.replaceAll(`{label}`,e):d(u.multiSelect.remove,{label:e}),Le=e=>D?.create?D.create.replaceAll(`{label}`,e):d(u.multiSelect.create,{label:e}),Re=V.flatMap(e=>{let t=m.find(t=>t.value===e);return t?[t]:[{value:e,label:e}]}),ze=V.length===0?ke:D?.selected?D.selected(V.length):d(u.multiSelect.selected,{count:String(V.length)}),J=c(!1);l(()=>{if(O.isOpen.value){F.value=-1;let e=setTimeout(()=>oe(T?L.current:I.current),0);return J.current=!0,()=>clearTimeout(e)}P.value=``,J.current&&(J.current=!1,oe(R.current))}),l(()=>{let e=F.value;if(!O.isOpen.value||e<0)return;let t=I.current?.querySelector(`#${CSS.escape(N(e))}`);t&&typeof t.scrollIntoView==`function`&&t.scrollIntoView({block:`nearest`})});function Y(e){De(e)}function Be(e){let t=z.value;if(t.includes(e)){Y(t.filter(t=>t!==e));return}x!==void 0&&t.length>=x||Y([...t,e])}function X(e){if(e===K&&G){ve?.(U.trim()),P.value=``,C?.(``);return}let t=W[e];t&&!t.disabled&&Be(t.value)}function Z(e){F.value=e}function Ve(e){let t=[...W.map(e=>({...e,disabled:e.disabled||H&&!V.includes(e.value)})),...G?[{value:``,label:U}]:[]];switch(e.key){case`ArrowDown`:e.preventDefault(),Z(i(F.value,1,t));break;case`ArrowUp`:e.preventDefault(),Z(i(F.value,-1,t));break;case`Home`:e.preventDefault(),Z(n(t));break;case`End`:e.preventDefault(),Z(r(t));break;case`PageDown`:e.preventDefault(),Z(a(F.value,1,t));break;case`PageUp`:e.preventDefault(),Z(a(F.value,-1,t));break;case`Enter`:F.value>=0&&(e.preventDefault(),X(F.value));break;case` `:!T&&F.value>=0&&(e.preventDefault(),X(F.value));break;case`Escape`:e.preventDefault(),e.stopPropagation(),O.close();break;case`Backspace`:y===`chips`&&U===``&&z.value.length>0&&(e.preventDefault(),Y(z.value.slice(0,-1)));break}}function He(e){b||(e.key===`ArrowDown`||e.key===`ArrowUp`||e.key===`Enter`||e.key===` `)&&(e.preventDefault(),O.open())}let Q=m.filter(e=>!e.disabled).map(e=>e.value),Ue=Q.length>0&&Q.every(e=>V.includes(e)),We=ue(v?`${k}-error`:_?`${k}-hint`:void 0,Ce);function $(e,t){let n=V.includes(e.value),r=e.disabled||H&&!n;return p(`div`,{id:N(t),role:`option`,"aria-selected":n,"aria-disabled":r||void 0,"data-active":t===F.value?``:void 0,"data-selected":n?``:void 0,"data-disabled":r?``:void 0,className:s.option,onMouseDown:e=>e.preventDefault(),onClick:()=>{r||Be(e.value)},onMouseEnter:()=>{r||Z(t)},children:[f(`span`,{className:s.checkbox,"aria-hidden":`true`}),f(`span`,{className:s[`option-label`],children:te(e.label,T?U:``).map((e,t)=>e.match?f(`mark`,{className:s.match,children:e.text},t):f(`span`,{children:e.text},t))})]},e.value)}return p(`div`,{className:ae(s.wrapper,be),"data-state":v?`error`:B?`open`:`closed`,"data-size":ye,...Te,children:[h&&f(`label`,{className:s.label,htmlFor:A,children:h}),p(`div`,{className:s.field,"data-display":y,children:[y===`chips`&&Re.map(e=>p(`span`,{className:s.chip,children:[f(`span`,{className:s[`chip-label`],children:e.label}),f(`button`,{type:`button`,className:s[`chip-remove`],"aria-label":Ie(e.label),disabled:b,onClick:()=>Y(z.value.filter(t=>t!==e.value))})]},e.value)),p(`button`,{ref:e=>{R.current=e,O.triggerRef.current=e},id:A,type:`button`,className:s.trigger,"aria-haspopup":`listbox`,"aria-expanded":B,"aria-controls":M,"aria-labelledby":Se,"aria-label":g,"aria-invalid":v?!0:we,"aria-describedby":We,disabled:b,style:{anchorName:O.anchorName},onClick:()=>{b||O.toggle()},onKeyDown:He,children:[f(`span`,{className:s[`trigger-label`],"data-empty":V.length===0?``:void 0,children:y===`chips`&&V.length>0?f(`span`,{className:s[`sr-only`],children:ze}):ze}),f(`span`,{className:s.chevron,"aria-hidden":`true`})]}),he&&V.length>0&&!b&&f(`button`,{type:`button`,className:s.clear,"aria-label":Ne,onClick:()=>Y([]),children:f(`span`,{className:s[`clear-glyph`],"aria-hidden":`true`})})]}),E!==void 0&&V.map(e=>f(`input`,{type:`hidden`,name:E,value:e},e)),p(`div`,{ref:O.popoverRef,id:M,popover:`auto`,className:s.panel,style:{positionAnchor:O.anchorName},tabIndex:-1,children:[T&&f(`div`,{className:s[`search-row`],children:f(`input`,{ref:L,id:Ee,type:`text`,role:`combobox`,className:s.search,placeholder:q,"aria-label":q,"aria-expanded":B,"aria-controls":j,"aria-autocomplete":`list`,"aria-activedescendant":B&&F.value>=0?N(F.value):void 0,autoComplete:`off`,value:U,onChange:e=>{P.value=e.currentTarget.value,C?.(e.currentTarget.value),F.value=t(-1,o(m,e.currentTarget.value,w))},onKeyDown:Ve})}),ge&&Q.length>0&&f(`button`,{type:`button`,className:s[`select-all`],onMouseDown:e=>e.preventDefault(),onClick:()=>Y(Ue?[]:x===void 0?Q:Q.slice(0,x)),children:Ue?Fe:Pe}),p(`div`,{ref:I,role:`listbox`,id:j,"aria-multiselectable":`true`,"aria-label":Me,"aria-busy":S||void 0,"aria-activedescendant":!T&&B&&F.value>=0?N(F.value):void 0,tabIndex:T?-1:0,className:s.options,onKeyDown:T?void 0:Ve,children:[Oe.map(e=>e.label===void 0?e.entries.map(({option:e,index:t})=>$(e,t)):p(`div`,{role:`group`,"aria-label":e.label,className:s.group,children:[f(`span`,{className:s[`group-label`],"aria-hidden":`true`,children:e.label}),e.entries.map(({option:e,index:t})=>$(e,t))]},e.label)),G&&f(`div`,{id:N(K),role:`option`,"aria-selected":!1,"data-active":K===F.value?``:void 0,className:ae(s.option,s.create),onMouseDown:e=>e.preventDefault(),onClick:()=>X(K),onMouseEnter:()=>Z(K),children:Le(U.trim())})]}),S?f(`div`,{className:s.status,role:`status`,children:je}):W.length===0&&!G?f(`div`,{className:s.status,role:`status`,children:Ae}):null]}),f(`span`,{className:s[`sr-only`],role:`status`,"aria-live":`polite`,children:B?d(u.multiSelect.selectionChanged,{count:String(V.length),total:String(m.length)}):``}),v&&f(`span`,{id:`${k}-error`,className:s.error,role:`alert`,children:v}),!v&&_&&f(`span`,{id:`${k}-hint`,className:s.hint,children:_})]})}export{m as MultiSelect};
1
+ "use client";import{usePopover as e}from"../popover/use-popover.js";import{clampActive as t,firstActive as n,lastActive as r,moveActive as i,pageActive as a}from"./list-nav.js";import{filterOptions as o,groupOptions as ee,highlightSegments as te,isNewLabel as ne,orderByGroup as re}from"./option-list.js";import s from"./multi-select.module.js";import{useId as ie,useRef as c}from"react";import{cn as l,focusElement as u,useControllableSignal as ae,useSignal as d,useSignalEffect as f,useSignals as oe}from"@cascivo/core";import{builtin as p,t as m}from"@cascivo/i18n";import{jsx as h,jsxs as g}from"react/jsx-runtime";function mergeDescribedBy(...e){return e.filter(Boolean).join(` `)||void 0}function MultiSelect({options:_,value:se,defaultValue:ce,onValueChange:le,placeholder:ue,label:v,ariaLabel:y,hint:b,error:x,display:S=`count`,disabled:C=!1,clearable:de=!1,selectAll:fe=!1,max:w,creatable:pe=!1,onCreate:me,loading:T=!1,onSearchChange:E,filter:D,searchable:O=!0,size:he=`md`,name:k,labels:A,className:ge,id:_e,"aria-labelledby":ve,"aria-describedby":ye,"aria-invalid":be,...xe}){oe();let j=e({placement:`bottom`}),M=ie(),N=_e??`${M}-trigger`,P=`${M}-listbox`,F=`${M}-panel`,Se=`${M}-search`,optionId=e=>`${M}-option-${e}`,I=d(``),L=d(-1),R=c(null),z=c(null),B=c(null),[V,Ce]=ae({value:se,defaultValue:ce??[],onChange:le}),H=j.isOpen.value,U=V.value,W=w!==void 0&&U.length>=w,G=I.value,K=re(o(_,O?G:``,D)),q=pe&&G.trim()!==``&&ne(_,G.trim()),J=q?K.length:-1,we=ee(K),Te=ue??A?.placeholder??m(p.multiSelect.placeholder),Y=A?.search??m(p.multiSelect.search),Ee=A?.noResults??m(p.multiSelect.noResults),De=A?.loading??m(p.multiSelect.loading),Oe=A?.label??v??y??m(p.multiSelect.label),ke=A?.clear??m(p.multiSelect.clear),Ae=A?.selectAll??m(p.multiSelect.selectAll),je=A?.clearAll??m(p.multiSelect.clearAll),removeLabel=e=>A?.remove?A.remove.replaceAll(`{label}`,e):m(p.multiSelect.remove,{label:e}),createLabel=e=>A?.create?A.create.replaceAll(`{label}`,e):m(p.multiSelect.create,{label:e}),Me=U.flatMap(e=>{let t=_.find(t=>t.value===e);return t?[t]:[{value:e,label:e}]}),X=U.length===0?Te:A?.selected?A.selected(U.length):m(p.multiSelect.selected,{count:String(U.length)}),Z=c(!1);f(()=>{if(j.isOpen.value){L.value=-1;let e=setTimeout(()=>u(O?z.current:R.current),0);return Z.current=!0,()=>clearTimeout(e)}I.value=``,Z.current&&(Z.current=!1,u(B.current))}),f(()=>{let e=L.value;if(!j.isOpen.value||e<0)return;let t=R.current?.querySelector(`#${CSS.escape(optionId(e))}`);t&&typeof t.scrollIntoView==`function`&&t.scrollIntoView({block:`nearest`})});function commit(e){Ce(e)}function toggleOption(e){let t=V.value;if(t.includes(e)){commit(t.filter(t=>t!==e));return}w!==void 0&&t.length>=w||commit([...t,e])}function activate(e){if(e===J&&q){me?.(G.trim()),I.value=``,E?.(``);return}let t=K[e];t&&!t.disabled&&toggleOption(t.value)}function setActive(e){L.value=e}function handleKeyDown(e){let t=[...K.map(e=>({...e,disabled:e.disabled||W&&!U.includes(e.value)})),...q?[{value:``,label:G}]:[]];switch(e.key){case`ArrowDown`:e.preventDefault(),setActive(i(L.value,1,t));break;case`ArrowUp`:e.preventDefault(),setActive(i(L.value,-1,t));break;case`Home`:e.preventDefault(),setActive(n(t));break;case`End`:e.preventDefault(),setActive(r(t));break;case`PageDown`:e.preventDefault(),setActive(a(L.value,1,t));break;case`PageUp`:e.preventDefault(),setActive(a(L.value,-1,t));break;case`Enter`:L.value>=0&&(e.preventDefault(),activate(L.value));break;case` `:!O&&L.value>=0&&(e.preventDefault(),activate(L.value));break;case`Escape`:e.preventDefault(),e.stopPropagation(),j.close();break;case`Backspace`:S===`chips`&&G===``&&V.value.length>0&&(e.preventDefault(),commit(V.value.slice(0,-1)));break}}function handleTriggerKeyDown(e){C||(e.key===`ArrowDown`||e.key===`ArrowUp`||e.key===`Enter`||e.key===` `)&&(e.preventDefault(),j.open())}let Q=_.filter(e=>!e.disabled).map(e=>e.value),$=Q.length>0&&Q.every(e=>U.includes(e)),Ne=mergeDescribedBy(x?`${M}-error`:b?`${M}-hint`:void 0,ye);function renderOption(e,t){let n=U.includes(e.value),r=e.disabled||W&&!n;return g(`div`,{id:optionId(t),role:`option`,"aria-selected":n,"aria-disabled":r||void 0,"data-active":t===L.value?``:void 0,"data-selected":n?``:void 0,"data-disabled":r?``:void 0,className:s.option,onMouseDown:e=>e.preventDefault(),onClick:()=>{r||toggleOption(e.value)},onMouseEnter:()=>{r||setActive(t)},children:[h(`span`,{className:s.checkbox,"aria-hidden":`true`}),h(`span`,{className:s[`option-label`],children:te(e.label,O?G:``).map((e,t)=>e.match?h(`mark`,{className:s.match,children:e.text},t):h(`span`,{children:e.text},t))})]},e.value)}return g(`div`,{className:l(s.wrapper,ge),"data-state":x?`error`:H?`open`:`closed`,"data-size":he,...xe,children:[v&&h(`label`,{className:s.label,htmlFor:N,children:v}),g(`div`,{className:s.field,"data-display":S,children:[S===`chips`&&Me.map(e=>g(`span`,{className:s.chip,children:[h(`span`,{className:s[`chip-label`],children:e.label}),h(`button`,{type:`button`,className:s[`chip-remove`],"aria-label":removeLabel(e.label),disabled:C,onClick:()=>commit(V.value.filter(t=>t!==e.value))})]},e.value)),g(`button`,{ref:e=>{B.current=e,j.triggerRef.current=e},id:N,type:`button`,className:s.trigger,"aria-haspopup":`listbox`,"aria-expanded":H,"aria-controls":F,"aria-labelledby":ve,"aria-label":y,"aria-invalid":x?!0:be,"aria-describedby":Ne,disabled:C,style:{anchorName:j.anchorName},onClick:()=>{C||j.toggle()},onKeyDown:handleTriggerKeyDown,children:[h(`span`,{className:s[`trigger-label`],"data-empty":U.length===0?``:void 0,children:S===`chips`&&U.length>0?h(`span`,{className:s[`sr-only`],children:X}):X}),h(`span`,{className:s.chevron,"aria-hidden":`true`})]}),de&&U.length>0&&!C&&h(`button`,{type:`button`,className:s.clear,"aria-label":ke,onClick:()=>commit([]),children:h(`span`,{className:s[`clear-glyph`],"aria-hidden":`true`})})]}),k!==void 0&&U.map(e=>h(`input`,{type:`hidden`,name:k,value:e},e)),g(`div`,{ref:j.popoverRef,id:F,popover:`auto`,className:s.panel,style:{positionAnchor:j.anchorName},tabIndex:-1,children:[O&&h(`div`,{className:s[`search-row`],children:h(`input`,{ref:z,id:Se,type:`text`,role:`combobox`,className:s.search,placeholder:Y,"aria-label":Y,"aria-expanded":H,"aria-controls":P,"aria-autocomplete":`list`,"aria-activedescendant":H&&L.value>=0?optionId(L.value):void 0,autoComplete:`off`,value:G,onChange:e=>{I.value=e.currentTarget.value,E?.(e.currentTarget.value),L.value=t(-1,o(_,e.currentTarget.value,D))},onKeyDown:handleKeyDown})}),fe&&Q.length>0&&h(`button`,{type:`button`,className:s[`select-all`],onMouseDown:e=>e.preventDefault(),onClick:()=>commit($?[]:w===void 0?Q:Q.slice(0,w)),children:$?je:Ae}),g(`div`,{ref:R,role:`listbox`,id:P,"aria-multiselectable":`true`,"aria-label":Oe,"aria-busy":T||void 0,"aria-activedescendant":!O&&H&&L.value>=0?optionId(L.value):void 0,tabIndex:O?-1:0,className:s.options,onKeyDown:O?void 0:handleKeyDown,children:[we.map(e=>e.label===void 0?e.entries.map(({option:e,index:t})=>renderOption(e,t)):g(`div`,{role:`group`,"aria-label":e.label,className:s.group,children:[h(`span`,{className:s[`group-label`],"aria-hidden":`true`,children:e.label}),e.entries.map(({option:e,index:t})=>renderOption(e,t))]},e.label)),q&&h(`div`,{id:optionId(J),role:`option`,"aria-selected":!1,"data-active":J===L.value?``:void 0,className:l(s.option,s.create),onMouseDown:e=>e.preventDefault(),onClick:()=>activate(J),onMouseEnter:()=>setActive(J),children:createLabel(G.trim())})]}),T?h(`div`,{className:s.status,role:`status`,children:De}):K.length===0&&!q?h(`div`,{className:s.status,role:`status`,children:Ee}):null]}),h(`span`,{className:s[`sr-only`],role:`status`,"aria-live":`polite`,children:H?m(p.multiSelect.selectionChanged,{count:String(U.length),total:String(_.length)}):``}),x&&h(`span`,{id:`${M}-error`,className:s.error,role:`alert`,children:x}),!x&&b&&h(`span`,{id:`${M}-hint`,className:s.hint,children:b})]})}export{MultiSelect};
@@ -1 +1 @@
1
- function e(e){return(e.normalize(`NFD`)[0]??e).toLowerCase()}function t(t){return Array.from(t,e)}function n(e,n){let r=t(n).join(``);return r===``?!0:t(e.label).join(``).includes(r)||t(e.value).join(``).includes(r)}function r(e,t,r){let i=r??n;return t===``&&!r?e:e.filter(e=>i(e,t))}function i(e,n){let r=t(n).join(``);if(r===``)return[{text:e,match:!1}];let i=Array.from(e),a=t(e).join(``).indexOf(r);if(a===-1)return[{text:e,match:!1}];let o=Array.from(n).length,s=[],c=i.slice(0,a).join(``),l=i.slice(a,a+o).join(``),u=i.slice(a+o).join(``);return c!==``&&s.push({text:c,match:!1}),s.push({text:l,match:!0}),u!==``&&s.push({text:u,match:!1}),s}function a(e){let t=[],n=new Map;return e.forEach((e,r)=>{let i=e.group,a=n.get(i);a||(a={label:i,entries:[]},n.set(i,a),t.push(a)),a.entries.push({option:e,index:r})}),t.sort((e,t)=>Number(e.label!==void 0)-Number(t.label!==void 0))}function o(e){return a(e).flatMap(e=>e.entries.map(e=>e.option))}function s(e,n){let r=t(n).join(``);return r===``?!1:!e.some(e=>t(e.label).join(``)===r)}export{r as filterOptions,a as groupOptions,i as highlightSegments,s as isNewLabel,o as orderByGroup};
1
+ function foldChar(e){return(e.normalize(`NFD`)[0]??e).toLowerCase()}function fold(e){return Array.from(e,foldChar)}function defaultMatch(e,t){let n=fold(t).join(``);return n===``?!0:fold(e.label).join(``).includes(n)||fold(e.value).join(``).includes(n)}function filterOptions(e,t,n){let r=n??defaultMatch;return t===``&&!n?e:e.filter(e=>r(e,t))}function highlightSegments(e,t){let n=fold(t).join(``);if(n===``)return[{text:e,match:!1}];let r=Array.from(e),i=fold(e).join(``).indexOf(n);if(i===-1)return[{text:e,match:!1}];let a=Array.from(t).length,o=[],s=r.slice(0,i).join(``),c=r.slice(i,i+a).join(``),l=r.slice(i+a).join(``);return s!==``&&o.push({text:s,match:!1}),o.push({text:c,match:!0}),l!==``&&o.push({text:l,match:!1}),o}function groupOptions(e){let t=[],n=new Map;return e.forEach((e,r)=>{let i=e.group,a=n.get(i);a||(a={label:i,entries:[]},n.set(i,a),t.push(a)),a.entries.push({option:e,index:r})}),t.sort((e,t)=>Number(e.label!==void 0)-Number(t.label!==void 0))}function orderByGroup(e){return groupOptions(e).flatMap(e=>e.entries.map(e=>e.option))}function isNewLabel(e,t){let n=fold(t).join(``);return n===``?!1:!e.some(e=>fold(e.label).join(``)===n)}export{filterOptions,groupOptions,highlightSegments,isNewLabel,orderByGroup};
@@ -1 +1 @@
1
- "use client";import e from"./navigation-menu.module.js";import{useId as t,useRef as n}from"react";import{DismissableLayer as r,Presence as i,cn as a,focusElement as o,getLinkComponent as s,useAnchorPosition as c,useRovingFocus as l,useSignal as u,useSignals as d}from"@cascivo/core";import{jsx as f,jsxs as p}from"react/jsx-runtime";function m({items:n,"aria-label":r,ariaLabel:i,label:o,orientation:s=`horizontal`,className:c}){d();let p=t(),m=u(null),g=l({orientation:s,loop:!0});return f(`nav`,{"aria-label":i??r??o,className:a(e.nav,c),"data-orientation":s,children:f(`ul`,{role:`list`,className:e.list,children:n.map((e,t)=>f(h,{item:e,baseId:p,openId:m,itemProps:g.getItemProps(t)},e.id))})})}function h({item:t,baseId:r,openId:a,itemProps:l}){d();let u=n(null),m=n(null),h=t.content!=null,_=a.value===t.id,v=`${r}-panel-${t.id}`,{anchorStyle:y,floatingStyle:b}=c({anchorRef:u,floatingRef:m,placement:`bottom-start`,enabled:_}),{ref:x,onKeyDown:S,...C}=l;if(!h){let n=s();return f(`li`,{className:e.item,children:f(n,{ref:e=>x(e),href:t.href,className:e.link,onKeyDown:S,...C,children:t.label})})}return p(`li`,{className:e.item,children:[f(`button`,{ref:e=>{u.current=e,x(e)},type:`button`,"aria-expanded":_,"aria-controls":v,"data-state":_?`open`:`closed`,className:e.trigger,style:y,onClick:()=>{a.value=_?null:t.id},onKeyDown:e=>{S(e),!e.defaultPrevented&&e.key===`Escape`&&(a.value=null)},...C,children:t.label}),f(i,{present:_,children:f(g,{panelId:v,floatingRef:m,floatingStyle:b,onClose:()=>{a.value=null,o(u.current)},children:t.content})})]})}function g({panelId:t,floatingRef:n,floatingStyle:i,onClose:a,children:o}){return f(r,{onDismiss:a,children:f(`div`,{ref:n,id:t,className:e.panel,style:i,children:o})})}export{m as NavigationMenu};
1
+ "use client";import e from"./navigation-menu.module.js";import{useId as t,useRef as n}from"react";import{DismissableLayer as r,Presence as i,cn as a,focusElement as o,getLinkComponent as s,useAnchorPosition as c,useRovingFocus as l,useSignal as u,useSignals as d}from"@cascivo/core";import{jsx as f,jsxs as p}from"react/jsx-runtime";function NavigationMenu({items:n,"aria-label":r,ariaLabel:i,label:o,orientation:s=`horizontal`,className:c}){d();let p=t(),m=u(null),h=l({orientation:s,loop:!0});return f(`nav`,{"aria-label":i??r??o,className:a(e.nav,c),"data-orientation":s,children:f(`ul`,{role:`list`,className:e.list,children:n.map((e,t)=>f(NavigationMenuEntry,{item:e,baseId:p,openId:m,itemProps:h.getItemProps(t)},e.id))})})}function NavigationMenuEntry({item:t,baseId:r,openId:a,itemProps:l}){d();let u=n(null),m=n(null),h=t.content!=null,g=a.value===t.id,_=`${r}-panel-${t.id}`,{anchorStyle:v,floatingStyle:y}=c({anchorRef:u,floatingRef:m,placement:`bottom-start`,enabled:g}),{ref:b,onKeyDown:x,...S}=l;if(!h){let n=s();return f(`li`,{className:e.item,children:f(n,{ref:e=>b(e),href:t.href,className:e.link,onKeyDown:x,...S,children:t.label})})}return p(`li`,{className:e.item,children:[f(`button`,{ref:e=>{u.current=e,b(e)},type:`button`,"aria-expanded":g,"aria-controls":_,"data-state":g?`open`:`closed`,className:e.trigger,style:v,onClick:()=>{a.value=g?null:t.id},onKeyDown:e=>{x(e),!e.defaultPrevented&&e.key===`Escape`&&(a.value=null)},...S,children:t.label}),f(i,{present:g,children:f(NavigationMenuPanel,{panelId:_,floatingRef:m,floatingStyle:y,onClose:()=>{a.value=null,o(u.current)},children:t.content})})]})}function NavigationMenuPanel({panelId:t,floatingRef:n,floatingStyle:i,onClose:a,children:o}){return f(r,{onDismiss:a,children:f(`div`,{ref:n,id:t,className:e.panel,style:i,children:o})})}export{NavigationMenu};
@@ -1 +1 @@
1
- "use client";import e from"./accordion.module.js";import{createContext as t,forwardRef as n,useId as r,useRef as i}from"react";import{cn as a,useControllableSignal as o,useSignalEffect as s,useSignals as c}from"@cascivo/core";import{jsx as l,jsxs as u}from"react/jsx-runtime";var d=t(null),f=t(null);function p(e){return e===void 0?[]:Array.isArray(e)?e:[e]}function m({type:t=`single`,defaultValue:n,value:i,onValueChange:s,className:c,children:u}){let f=r(),[m]=o({value:i===void 0?void 0:p(i),defaultValue:p(n)}),h={open:m,baseId:f,type:t,toggle:(e,n)=>{let r=m.value,a;a=t===`multiple`?n?[...new Set([...r,e])]:r.filter(t=>t!==e):n?[e]:[],i===void 0&&(m.value=a),s?.(t===`multiple`?a:a[0]??``)}};return l(d.Provider,{value:h,children:l(`div`,{"data-type":t,className:a(e.accordion,c),children:u})})}function h({value:e,className:t,children:n,...r}){return l(f.Provider,{value:{value:e},children:l(d.Consumer,{children:i=>i?l(g,{store:i,value:e,className:t,...r,children:n}):null})})}function g({store:t,value:n,className:r,children:o,...u}){c();let d=i(null),f=t.open.value.includes(n);return s(()=>{let e=d.current,r=t.open.value.includes(n);e&&e.open!==r&&(e.open=r)}),l(`details`,{ref:d,open:f,...t.type===`single`?{name:t.baseId}:{},"data-value":n,"data-state":f?`open`:`closed`,className:a(e.item,r),onToggle:e=>{let r=e.currentTarget;r.open!==t.open.value.includes(n)&&t.toggle(n,r.open);let i=t.open.value.includes(n);r.open!==i&&(r.open=i)},...u,children:o})}var _=n(function(e,t){return l(d.Consumer,{children:n=>l(f.Consumer,{children:r=>n&&r?l(v,{store:n,item:r,summaryRef:t,...e}):null})})});function v({store:t,item:n,className:r,children:i,summaryRef:o,...s}){c();let d=t.open.value.includes(n.value);return u(`summary`,{id:`${t.baseId}-trigger-${n.value}`,"aria-controls":`${t.baseId}-content-${n.value}`,"data-state":d?`open`:`closed`,className:a(e.trigger,r),ref:o,...s,children:[l(`h3`,{className:e.heading,children:i}),l(`span`,{className:e.indicator,"aria-hidden":`true`})]})}function y(e){return l(d.Consumer,{children:t=>l(f.Consumer,{children:n=>t&&n?l(b,{store:t,item:n,...e}):null})})}function b({store:t,item:n,className:r,children:i,...o}){return l(`div`,{role:`region`,id:`${t.baseId}-content-${n.value}`,"aria-labelledby":`${t.baseId}-trigger-${n.value}`,className:a(e.content,r),...o,children:i})}export{m as Accordion,y as AccordionContent,h as AccordionItem,_ as AccordionTrigger};
1
+ "use client";import e from"./accordion.module.js";import{createContext as t,forwardRef as n,useId as r,useRef as i}from"react";import{cn as a,useControllableSignal as o,useSignalEffect as s,useSignals as c}from"@cascivo/core";import{jsx as l,jsxs as u}from"react/jsx-runtime";var d=t(null),f=t(null);function toArray(e){return e===void 0?[]:Array.isArray(e)?e:[e]}function Accordion({type:t=`single`,defaultValue:n,value:i,onValueChange:s,className:c,children:u}){let f=r(),[p]=o({value:i===void 0?void 0:toArray(i),defaultValue:toArray(n)}),m={open:p,baseId:f,type:t,toggle:(e,n)=>{let r=p.value,a;a=t===`multiple`?n?[...new Set([...r,e])]:r.filter(t=>t!==e):n?[e]:[],i===void 0&&(p.value=a),s?.(t===`multiple`?a:a[0]??``)}};return l(d.Provider,{value:m,children:l(`div`,{"data-type":t,className:a(e.accordion,c),children:u})})}function AccordionItem({value:e,className:t,children:n,...r}){return l(f.Provider,{value:{value:e},children:l(d.Consumer,{children:i=>i?l(AccordionItemDetails,{store:i,value:e,className:t,...r,children:n}):null})})}function AccordionItemDetails({store:t,value:n,className:r,children:o,...u}){c();let d=i(null),f=t.open.value.includes(n);return s(()=>{let e=d.current,r=t.open.value.includes(n);e&&e.open!==r&&(e.open=r)}),l(`details`,{ref:d,open:f,...t.type===`single`?{name:t.baseId}:{},"data-value":n,"data-state":f?`open`:`closed`,className:a(e.item,r),onToggle:e=>{let r=e.currentTarget;r.open!==t.open.value.includes(n)&&t.toggle(n,r.open);let i=t.open.value.includes(n);r.open!==i&&(r.open=i)},...u,children:o})}var p=n(function(e,t){return l(d.Consumer,{children:n=>l(f.Consumer,{children:r=>n&&r?l(AccordionTriggerInner,{store:n,item:r,summaryRef:t,...e}):null})})});function AccordionTriggerInner({store:t,item:n,className:r,children:i,summaryRef:o,...s}){c();let d=t.open.value.includes(n.value);return u(`summary`,{id:`${t.baseId}-trigger-${n.value}`,"aria-controls":`${t.baseId}-content-${n.value}`,"data-state":d?`open`:`closed`,className:a(e.trigger,r),ref:o,...s,children:[l(`h3`,{className:e.heading,children:i}),l(`span`,{className:e.indicator,"aria-hidden":`true`})]})}function AccordionContent(e){return l(d.Consumer,{children:t=>l(f.Consumer,{children:n=>t&&n?l(AccordionContentInner,{store:t,item:n,...e}):null})})}function AccordionContentInner({store:t,item:n,className:r,children:i,...o}){return l(`div`,{role:`region`,id:`${t.baseId}-content-${n.value}`,"aria-labelledby":`${t.baseId}-trigger-${n.value}`,className:a(e.content,r),...o,children:i})}export{Accordion,AccordionContent,AccordionItem,p as AccordionTrigger};
@@ -1 +1 @@
1
- "use client";import e from"./action-sheet.module.js";import{useId as t}from"react";import{DismissableLayer as n,FocusScope as r,Portal as i,Presence as a,cn as o,useControllableSignal as s,useRovingFocus as c,useSignals as l}from"@cascivo/core";import{builtin as u,t as d}from"@cascivo/i18n";import{jsx as f,jsxs as p}from"react/jsx-runtime";function m({open:m,defaultOpen:h,onOpenChange:g,actions:_,title:v,description:y,showCancel:b=!0,labels:x,className:S}){l();let[C,w]=s({value:m,defaultValue:h??!1,onChange:g}),T=c({orientation:`vertical`,loop:!0}),E=t(),D=t(),O=x?.cancel??d(u.actionSheet.cancel),k=x?.label??d(u.actionSheet.label),A=e=>{e.disabled||(e.onSelect(),w(!1))},j=_.length;return f(i,{children:f(a,{present:C,children:f(`div`,{className:e.overlay,children:f(n,{onDismiss:()=>w(!1),children:f(r,{trapped:!0,restoreFocus:!0,autoFocus:!0,children:p(`div`,{role:`menu`,"aria-label":v?void 0:k,"aria-labelledby":v?E:void 0,"aria-describedby":y?D:void 0,className:o(e.sheet,S),children:[p(`div`,{className:e.group,children:[(v||y)&&p(`div`,{className:e.heading,role:`presentation`,children:[v&&f(`p`,{id:E,className:e.title,children:v}),y&&f(`p`,{id:D,className:e.description,children:y})]}),_.map((t,n)=>{let r=T.getItemProps(n);return f(`button`,{ref:r.ref,type:`button`,role:`menuitem`,tabIndex:r.tabIndex,"aria-disabled":t.disabled||void 0,"data-destructive":t.destructive?``:void 0,className:e.item,onKeyDown:r.onKeyDown,onFocus:r.onFocus,onClick:()=>A(t),children:t.label},t.id??n)})]}),b&&f(`div`,{className:e.group,children:(()=>{let t=T.getItemProps(j);return f(`button`,{ref:t.ref,type:`button`,role:`menuitem`,tabIndex:t.tabIndex,className:o(e.item,e.cancel),onKeyDown:t.onKeyDown,onFocus:t.onFocus,onClick:()=>w(!1),children:O})})()})]})})})})})})}export{m as ActionSheet};
1
+ "use client";import e from"./action-sheet.module.js";import{useId as t}from"react";import{DismissableLayer as n,FocusScope as r,Portal as i,Presence as a,cn as o,useControllableSignal as s,useRovingFocus as c,useSignals as l}from"@cascivo/core";import{builtin as u,t as d}from"@cascivo/i18n";import{jsx as f,jsxs as p}from"react/jsx-runtime";function ActionSheet({open:m,defaultOpen:h,onOpenChange:g,actions:_,title:v,description:y,showCancel:b=!0,labels:x,className:S}){l();let[C,w]=s({value:m,defaultValue:h??!1,onChange:g}),T=c({orientation:`vertical`,loop:!0}),E=t(),D=t(),O=x?.cancel??d(u.actionSheet.cancel),k=x?.label??d(u.actionSheet.label),select=e=>{e.disabled||(e.onSelect(),w(!1))},A=_.length;return f(i,{children:f(a,{present:C,children:f(`div`,{className:e.overlay,children:f(n,{onDismiss:()=>w(!1),children:f(r,{trapped:!0,restoreFocus:!0,autoFocus:!0,children:p(`div`,{role:`menu`,"aria-label":v?void 0:k,"aria-labelledby":v?E:void 0,"aria-describedby":y?D:void 0,className:o(e.sheet,S),children:[p(`div`,{className:e.group,children:[(v||y)&&p(`div`,{className:e.heading,role:`presentation`,children:[v&&f(`p`,{id:E,className:e.title,children:v}),y&&f(`p`,{id:D,className:e.description,children:y})]}),_.map((t,n)=>{let r=T.getItemProps(n);return f(`button`,{ref:r.ref,type:`button`,role:`menuitem`,tabIndex:r.tabIndex,"aria-disabled":t.disabled||void 0,"data-destructive":t.destructive?``:void 0,className:e.item,onKeyDown:r.onKeyDown,onFocus:r.onFocus,onClick:()=>select(t),children:t.label},t.id??n)})]}),b&&f(`div`,{className:e.group,children:(()=>{let t=T.getItemProps(A);return f(`button`,{ref:t.ref,type:`button`,role:`menuitem`,tabIndex:t.tabIndex,className:o(e.item,e.cancel),onKeyDown:t.onKeyDown,onFocus:t.onFocus,onClick:()=>w(!1),children:O})})()})]})})})})})})}export{ActionSheet};
@@ -1 +1 @@
1
- "use client";import e from"./alert.module.js";import{cn as t,useSignal as n,useSignals as r}from"@cascivo/core";import{builtin as i,t as a}from"@cascivo/i18n";import{jsx as o,jsxs as s}from"react/jsx-runtime";var c=new Set([`warning`,`destructive`]);function l({variant:l=`default`,title:u,icon:d,dismissible:f=!1,onDismiss:p,action:m,className:h,children:g,..._}){r();let v=n(!1);return v.value?null:s(`div`,{role:c.has(l)?`alert`:`status`,"data-variant":l,className:t(e.alert,h),..._,children:[d&&o(`span`,{className:e.icon,"aria-hidden":`true`,children:d}),s(`div`,{className:e.body,children:[u&&o(`div`,{className:e.title,children:u}),g&&o(`div`,{className:e.content,children:g}),m&&o(`button`,{type:`button`,className:e.action,onClick:m.onClick,children:m.label})]}),f&&o(`button`,{type:`button`,className:e.dismiss,"aria-label":a(i.alert.dismiss),onClick:()=>{v.value=!0,p?.()},children:`✕`})]})}export{l as Alert};
1
+ "use client";import e from"./alert.module.js";import{cn as t,useSignal as n,useSignals as r}from"@cascivo/core";import{builtin as i,t as a}from"@cascivo/i18n";import{jsx as o,jsxs as s}from"react/jsx-runtime";var c=new Set([`warning`,`destructive`]);function Alert({variant:l=`default`,title:u,icon:d,dismissible:f=!1,onDismiss:p,action:m,className:h,children:g,..._}){r();let v=n(!1);return v.value?null:s(`div`,{role:c.has(l)?`alert`:`status`,"data-variant":l,className:t(e.alert,h),..._,children:[d&&o(`span`,{className:e.icon,"aria-hidden":`true`,children:d}),s(`div`,{className:e.body,children:[u&&o(`div`,{className:e.title,children:u}),g&&o(`div`,{className:e.content,children:g}),m&&o(`button`,{type:`button`,className:e.action,onClick:m.onClick,children:m.label})]}),f&&o(`button`,{type:`button`,className:e.dismiss,"aria-label":a(i.alert.dismiss),onClick:()=>{v.value=!0,p?.()},children:`✕`})]})}export{Alert};
@@ -1 +1 @@
1
- "use client";import e from"./alert-dialog.module.js";import{useRef as t}from"react";import{focusElement as n,useEffectPropSignal as r,useId as i,useSignalEffect as a}from"@cascivo/core";import{builtin as o,t as s}from"@cascivo/i18n";import{jsx as c,jsxs as l}from"react/jsx-runtime";function u({open:u,title:d,description:f,onConfirm:p,onCancel:m,labels:h,variant:g=`default`}){let _=t(null),v=i(`cascivo-alert-dialog-title`),y=i(`cascivo-alert-dialog-desc`),b=r(u),x=t(null),S=t(m);S.current=m;let C=t(p);return C.current=p,a(()=>{let e=_.current;if(e)if(b.value){try{e.showPopover()}catch{}requestAnimationFrame(()=>n(x.current))}else try{e.hidePopover()}catch{}}),c(`div`,{ref:_,popover:`manual`,role:`alertdialog`,"aria-modal":`true`,"aria-labelledby":v,"aria-describedby":y,"data-state":u?`open`:`closed`,"data-variant":g,className:e.dialog,children:l(`div`,{className:e.content,children:[c(`p`,{id:v,className:e.title,children:d}),c(`p`,{id:y,className:e.description,children:f}),l(`div`,{className:e.actions,children:[c(`button`,{ref:x,type:`button`,className:e.cancel,onClick:()=>S.current(),children:h?.cancel??s(o.alertDialog.cancel)}),c(`button`,{type:`button`,className:e.confirm,onClick:()=>C.current(),children:h?.confirm??s(o.alertDialog.confirm)})]})]})})}export{u as AlertDialog};
1
+ "use client";import e from"./alert-dialog.module.js";import{useRef as t}from"react";import{focusElement as n,useEffectPropSignal as r,useId as i,useSignalEffect as a}from"@cascivo/core";import{builtin as o,t as s}from"@cascivo/i18n";import{jsx as c,jsxs as l}from"react/jsx-runtime";function AlertDialog({open:u,title:d,description:f,onConfirm:p,onCancel:m,labels:h,variant:g=`default`}){let _=t(null),v=i(`cascivo-alert-dialog-title`),y=i(`cascivo-alert-dialog-desc`),b=r(u),x=t(null),S=t(m);S.current=m;let C=t(p);return C.current=p,a(()=>{let e=_.current;if(e)if(b.value){try{e.showPopover()}catch{}requestAnimationFrame(()=>n(x.current))}else try{e.hidePopover()}catch{}}),c(`div`,{ref:_,popover:`manual`,role:`alertdialog`,"aria-modal":`true`,"aria-labelledby":v,"aria-describedby":y,"data-state":u?`open`:`closed`,"data-variant":g,className:e.dialog,children:l(`div`,{className:e.content,children:[c(`p`,{id:v,className:e.title,children:d}),c(`p`,{id:y,className:e.description,children:f}),l(`div`,{className:e.actions,children:[c(`button`,{ref:x,type:`button`,className:e.cancel,onClick:()=>S.current(),children:h?.cancel??s(o.alertDialog.cancel)}),c(`button`,{type:`button`,className:e.confirm,onClick:()=>C.current(),children:h?.confirm??s(o.alertDialog.confirm)})]})]})})}export{AlertDialog};
@@ -1 +1 @@
1
- "use client";import e from"./app-shell.module.js";import{cloneElement as t,isValidElement as n,useRef as r}from"react";import{cn as i,useControllableSignal as a,useSignalEffect as o,useSignals as s}from"@cascivo/core";import{Fragment as c,jsx as l,jsxs as u}from"react/jsx-runtime";function d({header:d,nav:f,children:p,footer:m,open:h,defaultOpen:g,onOpenChange:_,padding:v=6,className:y,...b}){s();let x=h!==void 0,[S]=a({value:h,defaultValue:g??!0}),C=r(null),w=r(null);function T(e){x||(S.value=e),_?.(e)}function E(){typeof document<`u`&&(w.current=document.activeElement),T(!S.value)}o(()=>{x||g!==void 0||typeof window>`u`||typeof window.matchMedia!=`function`||window.matchMedia(`(max-width: 63.999rem)`).matches&&(S.value=!1)}),o(()=>{if(!S.value||typeof document>`u`)return;let e=e=>{e.key===`Escape`&&T(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)}),o(()=>{let e=C.current;if(e)if(S.value)e.removeAttribute(`inert`);else{e.setAttribute(`inert`,``);let t=w.current;t&&e.contains(document.activeElement)&&t.focus()}});let D=n(d)&&f?t(d,{onMenuClick:E,menuExpanded:S.value}):d;return u(`div`,{className:i(e.shell,y),"data-open":S.value,...b,children:[l(`div`,{className:e.header,children:D}),u(`div`,{className:e.body,children:[f&&u(c,{children:[l(`div`,{ref:C,className:e.navWrapper,"data-open":S.value,"data-testid":`app-shell-nav`,"data-cascivo-appshell-nav":``,children:l(`div`,{className:e.navInner,children:f})}),l(`div`,{className:e.scrim,"data-open":S.value,"data-testid":`app-shell-scrim`,"aria-hidden":`true`,onClick:()=>T(!1)})]}),l(`main`,{id:`cascade-main`,tabIndex:-1,className:e.main,"data-cascivo-appshell-main":``,"data-padding":v===`none`?`none`:String(v),children:p})]}),m&&l(`div`,{className:e.footer,children:m})]})}export{d as AppShell};
1
+ "use client";import e from"./app-shell.module.js";import{cloneElement as t,isValidElement as n,useRef as r}from"react";import{cn as i,useControllableSignal as a,useSignalEffect as o,useSignals as s}from"@cascivo/core";import{Fragment as c,jsx as l,jsxs as u}from"react/jsx-runtime";function AppShell({header:d,nav:f,children:p,footer:m,open:h,defaultOpen:g,onOpenChange:_,padding:v=6,className:y,...b}){s();let x=h!==void 0,[S]=a({value:h,defaultValue:g??!0}),C=r(null),w=r(null);function setOpen(e){x||(S.value=e),_?.(e)}function toggle(){typeof document<`u`&&(w.current=document.activeElement),setOpen(!S.value)}o(()=>{x||g!==void 0||typeof window>`u`||typeof window.matchMedia!=`function`||window.matchMedia(`(max-width: 63.999rem)`).matches&&(S.value=!1)}),o(()=>{if(!S.value||typeof document>`u`)return;let onKey=e=>{e.key===`Escape`&&setOpen(!1)};return document.addEventListener(`keydown`,onKey),()=>document.removeEventListener(`keydown`,onKey)}),o(()=>{let e=C.current;if(e)if(S.value)e.removeAttribute(`inert`);else{e.setAttribute(`inert`,``);let t=w.current;t&&e.contains(document.activeElement)&&t.focus()}});let T=n(d)&&f?t(d,{onMenuClick:toggle,menuExpanded:S.value}):d;return u(`div`,{className:i(e.shell,y),"data-open":S.value,...b,children:[l(`div`,{className:e.header,children:T}),u(`div`,{className:e.body,children:[f&&u(c,{children:[l(`div`,{ref:C,className:e.navWrapper,"data-open":S.value,"data-testid":`app-shell-nav`,"data-cascivo-appshell-nav":``,children:l(`div`,{className:e.navInner,children:f})}),l(`div`,{className:e.scrim,"data-open":S.value,"data-testid":`app-shell-scrim`,"aria-hidden":`true`,onClick:()=>setOpen(!1)})]}),l(`main`,{id:`cascade-main`,tabIndex:-1,className:e.main,"data-cascivo-appshell-main":``,"data-padding":v===`none`?`none`:String(v),children:p})]}),m&&l(`div`,{className:e.footer,children:m})]})}export{AppShell};
@@ -1 +1 @@
1
- var e={shell:`_shell_3dxhz_4`,header:`_header_3dxhz_16`,body:`_body_3dxhz_21`,navWrapper:`_navWrapper_3dxhz_32`,navInner:`_navInner_3dxhz_58`,scrim:`_scrim_3dxhz_70`,main:`_main_3dxhz_87`,footer:`_footer_3dxhz_128`};export{e as default};
1
+ var e={shell:`_shell_tpp3j_4`,header:`_header_tpp3j_16`,body:`_body_tpp3j_21`,navWrapper:`_navWrapper_tpp3j_32`,navInner:`_navInner_tpp3j_58`,scrim:`_scrim_tpp3j_84`,main:`_main_tpp3j_101`,footer:`_footer_tpp3j_142`};export{e as default};
@@ -1 +1 @@
1
- import e from"./aspect-ratio.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function r({ratio:r=16/9,className:i,style:a,children:o,...s}){return n(`div`,{className:t(e.root,i),style:{"--cascivo-aspect-ratio":r,...a},...s,children:n(`div`,{className:e.inner,children:o})})}export{r as AspectRatio};
1
+ import e from"./aspect-ratio.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function AspectRatio({ratio:r=16/9,className:i,style:a,children:o,...s}){return n(`div`,{className:t(e.root,i),style:{"--cascivo-aspect-ratio":r,...a},...s,children:n(`div`,{className:e.inner,children:o})})}export{AspectRatio};
@@ -1 +1 @@
1
- "use client";import e from"./avatar.module.js";import{cn as t,createMachine as n,useMachine as r,useSignals as i}from"@cascivo/core";import{jsx as a,jsxs as o}from"react/jsx-runtime";var s=n({initial:`loading`,states:{loading:{on:{LOADED:`loaded`,ERROR:`error`}},loaded:{},error:{}}});function c({src:n,alt:c=``,name:u,fallback:d,size:f=`md`,status:p,className:m,...h}){i();let[g,_]=r(s),v=!!n&&g.value!==`error`,y=d??l(u),b=c||u||d;return o(`span`,{"data-size":f,"data-status":p,className:t(e.avatar,m),role:v||!b?void 0:`img`,"aria-label":v?void 0:b||void 0,...h,children:[v?a(`img`,{className:e.image,src:n,alt:c||u||``,onLoad:()=>_(`LOADED`),onError:()=>_(`ERROR`)}):a(`span`,{className:e.fallback,"aria-hidden":`true`,children:y}),p&&a(`span`,{className:e.status,"aria-hidden":`true`})]})}function l(e){if(!e)return;let t=e.trim().split(/\s+/).filter(Boolean);if(t.length!==0)return(u(t[0])+(t.length>1?u(t[t.length-1]):``)).toLocaleUpperCase()||void 0}function u(e){if(typeof Intl<`u`&&`Segmenter`in Intl){let t=new Intl.Segmenter(void 0,{granularity:`grapheme`});for(let n of t.segment(e))return n.segment}return[...e][0]??``}export{c as Avatar};
1
+ "use client";import e from"./avatar.module.js";import{cn as t,createMachine as n,useMachine as r,useSignals as i}from"@cascivo/core";import{jsx as a,jsxs as o}from"react/jsx-runtime";var s=n({initial:`loading`,states:{loading:{on:{LOADED:`loaded`,ERROR:`error`}},loaded:{},error:{}}});function Avatar({src:n,alt:c=``,name:l,fallback:u,size:d=`md`,status:f,className:p,...m}){i();let[h,g]=r(s),_=!!n&&h.value!==`error`,v=u??initialsFrom(l),y=c||l||u;return o(`span`,{"data-size":d,"data-status":f,className:t(e.avatar,p),role:_||!y?void 0:`img`,"aria-label":_?void 0:y||void 0,...m,children:[_?a(`img`,{className:e.image,src:n,alt:c||l||``,onLoad:()=>g(`LOADED`),onError:()=>g(`ERROR`)}):a(`span`,{className:e.fallback,"aria-hidden":`true`,children:v}),f&&a(`span`,{className:e.status,"aria-hidden":`true`})]})}function initialsFrom(e){if(!e)return;let t=e.trim().split(/\s+/).filter(Boolean);if(t.length!==0)return(firstGrapheme(t[0])+(t.length>1?firstGrapheme(t[t.length-1]):``)).toLocaleUpperCase()||void 0}function firstGrapheme(e){if(typeof Intl<`u`&&`Segmenter`in Intl){let t=new Intl.Segmenter(void 0,{granularity:`grapheme`});for(let n of t.segment(e))return n.segment}return[...e][0]??``}export{Avatar};
@@ -1 +1 @@
1
- import{Avatar as e}from"../avatar/avatar.js";import t from"./avatar-group.module.js";import{cn as n}from"@cascivo/core/pure";import{Children as r}from"react";import{builtin as i,t as a}from"@cascivo/i18n";import{jsx as o,jsxs as s}from"react/jsx-runtime";function c({max:c,total:l,spacing:u=`md`,isGrid:d=!1,labels:f,className:p,children:m,...h}){let g=r.toArray(m),_=c==null?g:g.slice(0,c),v=(l??g.length)-_.length,y=f?.more?.(v)??a(i.avatarGroup.more,{count:v});return s(`div`,{role:`group`,"data-spacing":u,"data-grid":d||void 0,className:n(t.group,p),...h,children:[_,v>0&&o(e,{className:t.overflow,fallback:`+${v}`,"aria-label":y})]})}export{c as AvatarGroup};
1
+ import{Avatar as e}from"../avatar/avatar.js";import t from"./avatar-group.module.js";import{cn as n}from"@cascivo/core/pure";import{Children as r}from"react";import{builtin as i,t as a}from"@cascivo/i18n";import{jsx as o,jsxs as s}from"react/jsx-runtime";function AvatarGroup({max:c,total:l,spacing:u=`md`,isGrid:d=!1,labels:f,className:p,children:m,...h}){let g=r.toArray(m),_=c==null?g:g.slice(0,c),v=(l??g.length)-_.length,y=f?.more?.(v)??a(i.avatarGroup.more,{count:v});return s(`div`,{role:`group`,"data-spacing":u,"data-grid":d||void 0,className:n(t.group,p),...h,children:[_,v>0&&o(e,{className:t.overflow,fallback:`+${v}`,"aria-label":y})]})}export{AvatarGroup};
@@ -1 +1 @@
1
- import e from"./badge.module.js";import{cn as t,normalizeTone as n}from"@cascivo/core/pure";import{jsx as r}from"react/jsx-runtime";var i={neutral:`secondary`,info:`info`,success:`success`,warning:`warning`,danger:`destructive`};function a({variant:a=`default`,size:o=`md`,className:s,children:c,...l}){return r(`span`,{"data-variant":i[n(a)]??a,"data-size":o,className:t(e.badge,s),...l,children:c})}export{a as Badge};
1
+ import e from"./badge.module.js";import{cn as t,normalizeTone as n}from"@cascivo/core/pure";import{jsx as r}from"react/jsx-runtime";var i={neutral:`secondary`,info:`info`,success:`success`,warning:`warning`,danger:`destructive`};function Badge({variant:a=`default`,size:o=`md`,className:s,children:c,...l}){return r(`span`,{"data-variant":i[n(a)]??a,"data-size":o,className:t(e.badge,s),...l,children:c})}export{Badge};
@@ -1 +1 @@
1
- import e from"./blockquote.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";function i({cite:i,className:a,children:o,...s}){return r(`blockquote`,{className:t(e.blockquote,a),...s,children:[o,i?n(`footer`,{className:e.footer,children:n(`cite`,{children:i})}):null]})}export{i as Blockquote};
1
+ import e from"./blockquote.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";function Blockquote({cite:i,className:a,children:o,...s}){return r(`blockquote`,{className:t(e.blockquote,a),...s,children:[o,i?n(`footer`,{className:e.footer,children:n(`cite`,{children:i})}):null]})}export{Blockquote};
@@ -1 +1 @@
1
- "use client";import e from"./bottom-sheet.module.js";import{useId as t}from"react";import{DismissableLayer as n,FocusScope as r,Portal as i,Presence as a,cn as o,useControllableSignal as s,useDraggable as c,useScrollLock as l,useSignals as u}from"@cascivo/core";import{builtin as d,t as f}from"@cascivo/i18n";import{jsx as p,jsxs as m}from"react/jsx-runtime";var h=120,g=.6,_=.1,v=[.5,.92];function y({open:y,defaultOpen:b,onOpenChange:x,snapPoints:S=v,activeSnap:C,defaultSnap:w=0,onSnapChange:T,title:E,description:D,children:O,labels:k,className:A}){u();let[j,M]=s({value:y,defaultValue:b??!1,onChange:x}),[N,P]=s({value:C,defaultValue:w,onChange:T});l(j);let F=S,I=F[F.length-1]??1,L=F[0]??0,R=F[Math.min(N.value,F.length-1)]??I,{handleRef:z,offset:B,velocity:V,isDragging:H,reset:U}=c({axis:`y`,onDragEnd:e=>{let t=typeof window>`u`?0:window.innerHeight,n=V.value.y;if(U(),t===0)return;let r=R-e.y/t-n*h/t;if(n>g||r<L-_){M(!1);return}let i=0;for(let e=1;e<F.length;e++)Math.abs((F[e]??0)-r)<Math.abs((F[i]??0)-r)&&(i=e);P(i)}}),W=t(),G=t(),K=k?.close??f(d.bottomSheet.close),q=k?.handle??f(d.bottomSheet.handle),J=`${(1-R/I)*100}%`,Y={"--_sheet-height":`${I*100}dvh`,"--_sheet-y":J,"--_sheet-drag":`${B.value.y}px`};return p(i,{children:p(a,{present:j,children:p(`div`,{className:e.overlay,children:p(n,{onDismiss:()=>M(!1),children:p(r,{trapped:!0,restoreFocus:!0,autoFocus:!0,children:m(`div`,{role:`dialog`,"aria-modal":`true`,"aria-labelledby":E?W:void 0,"aria-describedby":D?G:void 0,"data-dragging":H.value?``:void 0,className:o(e.panel,A),style:Y,children:[m(`div`,{className:e.header,ref:z,children:[p(`div`,{className:e.handle,role:`separator`,"aria-label":q,"aria-orientation":`horizontal`}),(E||D)&&m(`div`,{className:e.heading,children:[E&&p(`h2`,{id:W,className:e.title,children:E}),D&&p(`p`,{id:G,className:e.description,children:D})]}),p(`button`,{type:`button`,"aria-label":K,onClick:()=>M(!1),className:e.close,children:p(`svg`,{"aria-hidden":`true`,viewBox:`0 0 16 16`,className:e.closeIcon,children:p(`path`,{d:`M4 4l8 8M12 4l-8 8`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`})})})]}),p(`div`,{className:e.body,children:O})]})})})})})})}export{y as BottomSheet};
1
+ "use client";import e from"./bottom-sheet.module.js";import{useId as t}from"react";import{DismissableLayer as n,FocusScope as r,Portal as i,Presence as a,cn as o,useControllableSignal as s,useDraggable as c,useScrollLock as l,useSignals as u}from"@cascivo/core";import{builtin as d,t as f}from"@cascivo/i18n";import{jsx as p,jsxs as m}from"react/jsx-runtime";var h=120,g=.6,_=.1,v=[.5,.92];function BottomSheet({open:y,defaultOpen:b,onOpenChange:x,snapPoints:S=v,activeSnap:C,defaultSnap:w=0,onSnapChange:T,title:E,description:D,children:O,labels:k,className:A}){u();let[j,M]=s({value:y,defaultValue:b??!1,onChange:x}),[N,P]=s({value:C,defaultValue:w,onChange:T});l(j);let F=S,I=F[F.length-1]??1,L=F[0]??0,R=F[Math.min(N.value,F.length-1)]??I,{handleRef:z,offset:B,velocity:V,isDragging:H,reset:U}=c({axis:`y`,onDragEnd:e=>{let t=typeof window>`u`?0:window.innerHeight,n=V.value.y;if(U(),t===0)return;let r=R-e.y/t-n*h/t;if(n>g||r<L-_){M(!1);return}let i=0;for(let e=1;e<F.length;e++)Math.abs((F[e]??0)-r)<Math.abs((F[i]??0)-r)&&(i=e);P(i)}}),W=t(),G=t(),K=k?.close??f(d.bottomSheet.close),q=k?.handle??f(d.bottomSheet.handle),J=`${(1-R/I)*100}%`,Y={"--_sheet-height":`${I*100}dvh`,"--_sheet-y":J,"--_sheet-drag":`${B.value.y}px`};return p(i,{children:p(a,{present:j,children:p(`div`,{className:e.overlay,children:p(n,{onDismiss:()=>M(!1),children:p(r,{trapped:!0,restoreFocus:!0,autoFocus:!0,children:m(`div`,{role:`dialog`,"aria-modal":`true`,"aria-labelledby":E?W:void 0,"aria-describedby":D?G:void 0,"data-dragging":H.value?``:void 0,className:o(e.panel,A),style:Y,children:[m(`div`,{className:e.header,ref:z,children:[p(`div`,{className:e.handle,role:`separator`,"aria-label":q,"aria-orientation":`horizontal`}),(E||D)&&m(`div`,{className:e.heading,children:[E&&p(`h2`,{id:W,className:e.title,children:E}),D&&p(`p`,{id:G,className:e.description,children:D})]}),p(`button`,{type:`button`,"aria-label":K,onClick:()=>M(!1),className:e.close,children:p(`svg`,{"aria-hidden":`true`,viewBox:`0 0 16 16`,className:e.closeIcon,children:p(`path`,{d:`M4 4l8 8M12 4l-8 8`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`})})})]}),p(`div`,{className:e.body,children:O})]})})})})})})}export{BottomSheet};
@@ -1 +1 @@
1
- import e from"./logo.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";var i=`M0 0H32V11H11V21H32V32H0Z`,a=16;function o({accent:t,size:a,labelled:o}){return r(`svg`,{viewBox:`0 0 32 32`,width:a,height:a,className:e.mark,...o?{role:`img`}:{"aria-hidden":!0},children:[o&&n(`title`,{children:`cascivo`}),n(`path`,{d:i,fill:`currentColor`}),t&&n(`rect`,{x:`11`,y:`11`,width:`21`,height:`10`,className:e.notch})]})}function s({variant:i=`mark`,size:s,className:c,style:l,...u}){let d=Math.max(s??(i===`nav`?18:32),a),f=i===`horizontal`||i===`stacked`||i===`nav`;return r(`span`,{"data-cascivo-logo":i,className:t(e.logo,c),style:{"--cascivo-logo-size":`${d}px`,...l},...u,children:[n(o,{accent:i!==`mark`&&i!==`nav`,size:d,labelled:!f}),f&&n(`span`,{className:e.wordmark,children:`cascivo`})]})}export{s as Logo};
1
+ import e from"./logo.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";var i=`M0 0H32V11H11V21H32V32H0Z`,a=16;function Mark({accent:t,size:a,labelled:o}){return r(`svg`,{viewBox:`0 0 32 32`,width:a,height:a,className:e.mark,...o?{role:`img`}:{"aria-hidden":!0},children:[o&&n(`title`,{children:`cascivo`}),n(`path`,{d:i,fill:`currentColor`}),t&&n(`rect`,{x:`11`,y:`11`,width:`21`,height:`10`,className:e.notch})]})}function Logo({variant:i=`mark`,size:o,className:s,style:c,...l}){let u=Math.max(o??(i===`nav`?18:32),a),d=i===`horizontal`||i===`stacked`||i===`nav`;return r(`span`,{"data-cascivo-logo":i,className:t(e.logo,s),style:{"--cascivo-logo-size":`${u}px`,...c},...l,children:[n(Mark,{accent:i!==`mark`&&i!==`nav`,size:u,labelled:!d}),d&&n(`span`,{className:e.wordmark,children:`cascivo`})]})}export{Logo};
@@ -1 +1 @@
1
- "use client";import e from"./breadcrumb.module.js";import{cn as t,getLinkComponent as n,useSignals as r}from"@cascivo/core";import{builtin as i,t as a}from"@cascivo/i18n";import{jsx as o}from"react/jsx-runtime";function s({items:s,maxVisible:c,className:l,ariaLabel:u,label:d}){r();let f=n(),p=u??d??a(i.breadcrumb.nav),m=s,h=s[0];return h!==void 0&&c!==void 0&&s.length>c&&(m=[h,{label:`…`},...s.slice(s.length-(c-2))]),o(`nav`,{"aria-label":p,className:t(e.breadcrumb,l),children:o(`ol`,{children:m.map((e,t)=>o(`li`,{children:t===m.length-1?o(`span`,{"aria-current":`page`,children:e.label}):e.href===void 0?o(`span`,{children:e.label}):o(f,{href:e.href,children:e.label})},e.id??`${t}-${e.label}`))})})}export{s as Breadcrumb};
1
+ "use client";import e from"./breadcrumb.module.js";import{cn as t,getLinkComponent as n,useSignals as r}from"@cascivo/core";import{builtin as i,t as a}from"@cascivo/i18n";import{jsx as o}from"react/jsx-runtime";function Breadcrumb({items:s,maxVisible:c,className:l,ariaLabel:u,label:d}){r();let f=n(),p=u??d??a(i.breadcrumb.nav),m=s,h=s[0];return h!==void 0&&c!==void 0&&s.length>c&&(m=[h,{label:`…`},...s.slice(s.length-(c-2))]),o(`nav`,{"aria-label":p,className:t(e.breadcrumb,l),children:o(`ol`,{children:m.map((e,t)=>o(`li`,{children:t===m.length-1?o(`span`,{"aria-current":`page`,children:e.label}):e.href===void 0?o(`span`,{children:e.label}):o(f,{href:e.href,children:e.label})},e.id??`${t}-${e.label}`))})})}export{Breadcrumb};
@@ -1 +1 @@
1
- var e={label:`_label_mvhij_10`,button:`_button_mvhij_8`};export{e as default};
1
+ var e={label:`_label_w88l5_10`,button:`_button_w88l5_8`};export{e as default};
@@ -1 +1 @@
1
- "use client";import e from"./button-group.module.js";import{forwardRef as t}from"react";import{cn as n}from"@cascivo/core";import{jsx as r}from"react/jsx-runtime";function i(e){return Array.from(e.querySelectorAll(`button, a[href], [tabindex]`)).filter(e=>!e.hasAttribute(`disabled`)&&e.getAttribute(`aria-disabled`)!==`true`)}var a=t(function({orientation:t=`horizontal`,size:a=`md`,roving:o=!1,loop:s=!1,className:c,onKeyDown:l,children:u,...d},f){return r(`div`,{role:`group`,"data-orientation":t,"data-size":a,className:n(e.buttonGroup,c),ref:f,onKeyDown:e=>{if(l?.(e),!o)return;let n=t===`horizontal`,r=n?`ArrowRight`:`ArrowDown`,a=n?`ArrowLeft`:`ArrowUp`;if(![r,a,`Home`,`End`].includes(e.key))return;let c=i(e.currentTarget);if(c.length===0)return;let u=c.indexOf(document.activeElement);if(u===-1)return;let d=u;e.key===r?d=u+1:e.key===a?d=u-1:e.key===`Home`?d=0:e.key===`End`&&(d=c.length-1),d<0&&(d=s?c.length-1:0),d>=c.length&&(d=s?0:c.length-1),e.preventDefault(),c[d]?.focus()},...d,children:u})});export{a as ButtonGroup};
1
+ "use client";import e from"./button-group.module.js";import{forwardRef as t}from"react";import{cn as n}from"@cascivo/core";import{jsx as r}from"react/jsx-runtime";function focusableItems(e){return Array.from(e.querySelectorAll(`button, a[href], [tabindex]`)).filter(e=>!e.hasAttribute(`disabled`)&&e.getAttribute(`aria-disabled`)!==`true`)}var i=t(function({orientation:t=`horizontal`,size:i=`md`,roving:a=!1,loop:o=!1,className:s,onKeyDown:c,children:l,...u},d){return r(`div`,{role:`group`,"data-orientation":t,"data-size":i,className:n(e.buttonGroup,s),ref:d,onKeyDown:e=>{if(c?.(e),!a)return;let n=t===`horizontal`,r=n?`ArrowRight`:`ArrowDown`,i=n?`ArrowLeft`:`ArrowUp`;if(![r,i,`Home`,`End`].includes(e.key))return;let s=focusableItems(e.currentTarget);if(s.length===0)return;let l=s.indexOf(document.activeElement);if(l===-1)return;let u=l;e.key===r?u=l+1:e.key===i?u=l-1:e.key===`Home`?u=0:e.key===`End`&&(u=s.length-1),u<0&&(u=o?s.length-1:0),u>=s.length&&(u=o?0:s.length-1),e.preventDefault(),s[u]?.focus()},...u,children:l})});export{i as ButtonGroup};
@@ -1 +1 @@
1
- function e(e){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()))}function t(e=new Date){return new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate()))}function n(e){try{let t=new Intl.Locale(e).weekInfo;if(t)return t.firstDay%7}catch{}return 1}function r(e,t,n){let r=new Date(Date.UTC(e,t,1)),i=new Date(Date.UTC(e,t+1,0)),a=(r.getUTCDay()-n+7)%7,o=[];for(let e=0;e<a;e++)o.push(null);for(let n=1;n<=i.getUTCDate();n++)o.push(new Date(Date.UTC(e,t,n)));for(;o.length%7!=0;)o.push(null);let s=[];for(let e=0;e<o.length;e+=7)s.push(o.slice(e,e+7));return s}function i(e){return`${e.getUTCFullYear()}-${e.getUTCMonth()}-${e.getUTCDate()}`}function a(e,t){return!e||!t?!1:i(e)===i(t)}function o(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function s(e,t){let n=e.getUTCFullYear(),r=e.getUTCMonth()+t,i=new Date(Date.UTC(n,r+1,0)).getUTCDate();return new Date(Date.UTC(n,r,Math.min(e.getUTCDate(),i)))}function c(e,t){return o(e,-((e.getUTCDay()-t+7)%7))}function l(t,n,r){let i=e(t).getTime();return!!(n&&i<e(n).getTime()||r&&i>e(r).getTime())}function u(t){let n=o(e(t),3-(t.getUTCDay()+6)%7),r=new Date(Date.UTC(n.getUTCFullYear(),0,4)),i=n.getTime()-c(r,1).getTime();return 1+Math.floor(i/(10080*60*1e3))}function d(e,t,n){let r=t>0?1:-1,i=o(e,t);for(let e=0;e<366;e++){if(l(i,n.min,n.max))return null;if(!n.isDisabled?.(i))return i;i=o(i,r)}return null}function f(t,n,r){let i=s(t,n);if(l(i,r.min,r.max)){let i=n>0?r.max:r.min;if(!i)return null;let a=e(i),o=e(t).getTime();return(n>0?a.getTime()<=o:a.getTime()>=o)?null:r.isDisabled?.(a)?d(a,n>0?-1:1,r):a}return r.isDisabled?.(i)?d(i,n>0?1:-1,r):i}function p(t,n,r,i,a){let o=new Date(Date.UTC(t,n+r,1));return r<0&&i?new Date(Date.UTC(t,n+r+1,0)).getTime()<e(i).getTime():r>0&&a?o.getTime()>e(a).getTime():!1}export{o as addDays,i as dayKey,r as getMonthGrid,n as getWeekStart,u as isoWeek,t as localToday,d as moveByDays,f as moveByMonths,l as outOfRange,a as sameDay,c as startOfWeek,p as viewStepBlocked};
1
+ function toUtcDay(e){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()))}function localToday(e=new Date){return new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate()))}function getWeekStart(e){try{let t=new Intl.Locale(e).weekInfo;if(t)return t.firstDay%7}catch{}return 1}function getMonthGrid(e,t,n){let r=new Date(Date.UTC(e,t,1)),i=new Date(Date.UTC(e,t+1,0)),a=(r.getUTCDay()-n+7)%7,o=[];for(let e=0;e<a;e++)o.push(null);for(let n=1;n<=i.getUTCDate();n++)o.push(new Date(Date.UTC(e,t,n)));for(;o.length%7!=0;)o.push(null);let s=[];for(let e=0;e<o.length;e+=7)s.push(o.slice(e,e+7));return s}function dayKey(e){return`${e.getUTCFullYear()}-${e.getUTCMonth()}-${e.getUTCDate()}`}function sameDay(e,t){return!e||!t?!1:dayKey(e)===dayKey(t)}function addDays(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function addMonths(e,t){let n=e.getUTCFullYear(),r=e.getUTCMonth()+t,i=new Date(Date.UTC(n,r+1,0)).getUTCDate();return new Date(Date.UTC(n,r,Math.min(e.getUTCDate(),i)))}function startOfWeek(e,t){return addDays(e,-((e.getUTCDay()-t+7)%7))}function outOfRange(e,t,n){let r=toUtcDay(e).getTime();return!!(t&&r<toUtcDay(t).getTime()||n&&r>toUtcDay(n).getTime())}function isoWeek(e){let t=addDays(toUtcDay(e),3-(e.getUTCDay()+6)%7),n=new Date(Date.UTC(t.getUTCFullYear(),0,4)),r=t.getTime()-startOfWeek(n,1).getTime();return 1+Math.floor(r/(10080*60*1e3))}function moveByDays(e,t,n){let r=t>0?1:-1,i=addDays(e,t);for(let e=0;e<366;e++){if(outOfRange(i,n.min,n.max))return null;if(!n.isDisabled?.(i))return i;i=addDays(i,r)}return null}function moveByMonths(e,t,n){let r=addMonths(e,t);if(outOfRange(r,n.min,n.max)){let r=t>0?n.max:n.min;if(!r)return null;let i=toUtcDay(r),a=toUtcDay(e).getTime();return(t>0?i.getTime()<=a:i.getTime()>=a)?null:n.isDisabled?.(i)?moveByDays(i,t>0?-1:1,n):i}return n.isDisabled?.(r)?moveByDays(r,t>0?1:-1,n):r}function viewStepBlocked(e,t,n,r,i){let a=new Date(Date.UTC(e,t+n,1));return n<0&&r?new Date(Date.UTC(e,t+n+1,0)).getTime()<toUtcDay(r).getTime():n>0&&i?a.getTime()>toUtcDay(i).getTime():!1}export{addDays,dayKey,getMonthGrid,getWeekStart,isoWeek,localToday,moveByDays,moveByMonths,outOfRange,sameDay,startOfWeek,viewStepBlocked};
@@ -1 +1 @@
1
- "use client";import{addDays as e,dayKey as t,getMonthGrid as n,getWeekStart as r,isoWeek as i,localToday as a,moveByDays as o,moveByMonths as s,outOfRange as ee,sameDay as c,startOfWeek as l,viewStepBlocked as u}from"./calendar-date.js";import d from"./calendar.module.js";import{useRef as f}from"react";import{batch as p,cn as te,focusElement as ne,useSignal as m,useSignalEffect as re,useSignals as ie}from"@cascivo/core";import{builtin as h,currentLocale as ae,t as g}from"@cascivo/i18n";import{jsx as _,jsxs as v}from"react/jsx-runtime";function y({value:y,defaultValue:b,onValueChange:x,min:S,max:C,disabled:w,locale:oe,size:se=`md`,labels:T,className:ce,ariaLabel:le,label:ue,isInRange:de,isRangeStart:E,isRangeEnd:fe,onDayHover:D,month:O,year:k,onViewChange:A,hideNav:j=!1,showToday:pe=!1,showWeekNumbers:M=!1}){ie();let N=oe??ae(),P=f(null),me=T?.previousMonth??g(h.calendar.previousMonth),he=T?.nextMonth??g(h.calendar.nextMonth),F=T?.today??g(h.calendar.today),I=T?.weekNumber??g(h.calendar.weekNumber),L=y===void 0?b??null:y,R=a(),z=L??b??R,B=m(z.getUTCFullYear()),V=m(z.getUTCMonth()),H=m(z),U=m(null),W=O!==void 0||k!==void 0;k!==void 0&&B.peek()!==k&&(B.value=k),O!==void 0&&V.peek()!==O&&(V.value=O);let G=f(L?t(L):null),K=L?t(L):null;K!==G.current&&(G.current=K,L&&!W&&p(()=>{B.value=L.getUTCFullYear(),V.value=L.getUTCMonth(),H.value=L}));let q=r(N),ge=n(B.value,V.value,q),_e=new Intl.DateTimeFormat(N,{weekday:`short`}),ve=Array.from({length:7},(e,t)=>{let n=new Date(Date.UTC(2024,0,7+q+t));return _e.format(n)}),ye=new Intl.DateTimeFormat(N,{weekday:`long`,year:`numeric`,month:`long`,day:`numeric`}),J=new Intl.DateTimeFormat(N,{month:`long`,year:`numeric`}).format(new Date(Date.UTC(B.value,V.value,1))),Y=e=>ee(e,S,C)||(w?w(e):!1),X={min:S,max:C,isDisabled:w},Z=e=>{let n=e.getUTCMonth()!==V.peek()||e.getUTCFullYear()!==B.peek();W?H.value=e:p(()=>{B.value=e.getUTCFullYear(),V.value=e.getUTCMonth(),H.value=e}),U.value=t(e),n&&A?.({month:e.getUTCMonth(),year:e.getUTCFullYear()})};re(()=>{let e=U.value;if(!e)return;let t=setTimeout(()=>{U.value=null,ne(P.current?.querySelector(`[data-day="${e}"]`)??null)},0);return()=>clearTimeout(t)});let Q=e=>{Y(e)||(H.value=e,x?.(e))},$=e=>{let t=B.peek(),n=V.peek();if(u(t,n,e,S,C))return;let r=((n+e)%12+12)%12,i=t+Math.floor((n+e)/12);W||p(()=>{V.value=r,B.value=i}),A?.({month:r,year:i})},be=()=>{Y(R)||Z(R)},xe=t=>{let n=H.value,r;switch(t.key){case`ArrowRight`:r=o(n,1,X);break;case`ArrowLeft`:r=o(n,-1,X);break;case`ArrowDown`:r=o(n,7,X);break;case`ArrowUp`:r=o(n,-7,X);break;case`Home`:{let e=l(n,q);r=Y(e)?o(e,1,X):e;break}case`End`:{let t=e(l(n,q),6);r=Y(t)?o(t,-1,X):t;break}case`PageUp`:r=s(n,t.shiftKey?-12:-1,X);break;case`PageDown`:r=s(n,t.shiftKey?12:1,X);break;case`Enter`:case` `:t.preventDefault(),Q(n);return;default:return}t.preventDefault(),r&&(Z(r),D?.(r))},Se=u(B.value,V.value,-1,S,C),Ce=u(B.value,V.value,1,S,C);return v(`div`,{className:te(d.calendar,ce),"data-size":se,onMouseLeave:()=>D?.(null),children:[v(`div`,{className:d.header,children:[j?_(`span`,{className:d.navSpacer}):_(`button`,{type:`button`,className:d.navButton,"aria-label":me,disabled:Se,onClick:()=>$(-1),children:_(`span`,{"aria-hidden":`true`,children:`‹`})}),_(`span`,{className:d.monthLabel,children:J}),j?_(`span`,{className:d.navSpacer}):_(`button`,{type:`button`,className:d.navButton,"aria-label":he,disabled:Ce,onClick:()=>$(1),children:_(`span`,{"aria-hidden":`true`,children:`›`})})]}),v(`table`,{ref:P,role:`grid`,"aria-label":le??ue??J,className:d.grid,onKeyDown:xe,children:[_(`thead`,{children:v(`tr`,{role:`row`,children:[M&&_(`th`,{className:d.weekday,scope:`col`,children:_(`span`,{className:d.srOnly,children:I})}),ve.map(e=>_(`th`,{className:d.weekday,abbr:e,scope:`col`,children:e},e))]})}),_(`tbody`,{children:ge.map((e,n)=>{let r=e.find(Boolean);return v(`tr`,{role:`row`,children:[M&&_(`th`,{scope:`row`,className:d.weekNumber,children:r?i(r):``}),e.map((e,n)=>{if(!e)return _(`td`,{role:`gridcell`,className:d.empty},n);let r=c(e,L),i=c(e,R),a=c(e,H.value),o=Y(e);return _(`td`,{role:`gridcell`,className:d.cell,children:_(`button`,{type:`button`,className:d.day,"data-day":t(e),tabIndex:a?0:-1,"aria-label":ye.format(e),"aria-selected":r||void 0,"aria-current":i?`date`:void 0,"aria-disabled":o||void 0,"data-selected":r||void 0,"data-today":i||void 0,"data-in-range":(de?.(e)??!1)||void 0,"data-range-start":(E?.(e)??!1)||void 0,"data-range-end":(fe?.(e)??!1)||void 0,onClick:()=>Q(e),onFocus:()=>{H.value=e},onMouseEnter:()=>D?.(e),children:e.getUTCDate()})},n)})]},n)})})]}),pe&&_(`div`,{className:d.footer,children:_(`button`,{type:`button`,className:d.todayButton,disabled:Y(R),onClick:be,children:F})}),_(`span`,{className:d.srOnly,role:`status`,"aria-live":`polite`,children:J})]})}export{y as Calendar};
1
+ "use client";import{addDays as e,dayKey as t,getMonthGrid as n,getWeekStart as r,isoWeek as i,localToday as a,moveByDays as o,moveByMonths as s,outOfRange as ee,sameDay as c,startOfWeek as l,viewStepBlocked as u}from"./calendar-date.js";import d from"./calendar.module.js";import{useRef as f}from"react";import{batch as p,cn as te,focusElement as ne,useSignal as m,useSignalEffect as re,useSignals as ie}from"@cascivo/core";import{builtin as h,currentLocale as g,t as _}from"@cascivo/i18n";import{jsx as v,jsxs as y}from"react/jsx-runtime";function Calendar({value:b,defaultValue:x,onValueChange:ae,min:S,max:C,disabled:w,locale:oe,size:se=`md`,labels:T,className:ce,ariaLabel:E,label:D,isInRange:O,isRangeStart:le,isRangeEnd:ue,onDayHover:k,month:A,year:j,onViewChange:M,hideNav:N=!1,showToday:de=!1,showWeekNumbers:P=!1}){ie();let F=oe??g(),I=f(null),L=T?.previousMonth??_(h.calendar.previousMonth),R=T?.nextMonth??_(h.calendar.nextMonth),z=T?.today??_(h.calendar.today),B=T?.weekNumber??_(h.calendar.weekNumber),V=b===void 0?x??null:b,H=a(),U=V??x??H,W=m(U.getUTCFullYear()),G=m(U.getUTCMonth()),K=m(U),q=m(null),J=A!==void 0||j!==void 0;j!==void 0&&W.peek()!==j&&(W.value=j),A!==void 0&&G.peek()!==A&&(G.value=A);let Y=f(V?t(V):null),X=V?t(V):null;X!==Y.current&&(Y.current=X,V&&!J&&p(()=>{W.value=V.getUTCFullYear(),G.value=V.getUTCMonth(),K.value=V}));let Z=r(F),fe=n(W.value,G.value,Z),pe=new Intl.DateTimeFormat(F,{weekday:`short`}),me=Array.from({length:7},(e,t)=>{let n=new Date(Date.UTC(2024,0,7+Z+t));return pe.format(n)}),he=new Intl.DateTimeFormat(F,{weekday:`long`,year:`numeric`,month:`long`,day:`numeric`}),Q=new Intl.DateTimeFormat(F,{month:`long`,year:`numeric`}).format(new Date(Date.UTC(W.value,G.value,1))),isDayDisabled=e=>ee(e,S,C)||(w?w(e):!1),$={min:S,max:C,isDisabled:w},moveCursor=e=>{let n=e.getUTCMonth()!==G.peek()||e.getUTCFullYear()!==W.peek();J?K.value=e:p(()=>{W.value=e.getUTCFullYear(),G.value=e.getUTCMonth(),K.value=e}),q.value=t(e),n&&M?.({month:e.getUTCMonth(),year:e.getUTCFullYear()})};re(()=>{let e=q.value;if(!e)return;let t=setTimeout(()=>{q.value=null,ne(I.current?.querySelector(`[data-day="${e}"]`)??null)},0);return()=>clearTimeout(t)});let select=e=>{isDayDisabled(e)||(K.value=e,ae?.(e))},stepView=e=>{let t=W.peek(),n=G.peek();if(u(t,n,e,S,C))return;let r=((n+e)%12+12)%12,i=t+Math.floor((n+e)/12);J||p(()=>{G.value=r,W.value=i}),M?.({month:r,year:i})},goToToday=()=>{isDayDisabled(H)||moveCursor(H)},handleKeyDown=t=>{let n=K.value,r;switch(t.key){case`ArrowRight`:r=o(n,1,$);break;case`ArrowLeft`:r=o(n,-1,$);break;case`ArrowDown`:r=o(n,7,$);break;case`ArrowUp`:r=o(n,-7,$);break;case`Home`:{let e=l(n,Z);r=isDayDisabled(e)?o(e,1,$):e;break}case`End`:{let t=e(l(n,Z),6);r=isDayDisabled(t)?o(t,-1,$):t;break}case`PageUp`:r=s(n,t.shiftKey?-12:-1,$);break;case`PageDown`:r=s(n,t.shiftKey?12:1,$);break;case`Enter`:case` `:t.preventDefault(),select(n);return;default:return}t.preventDefault(),r&&(moveCursor(r),k?.(r))},ge=u(W.value,G.value,-1,S,C),_e=u(W.value,G.value,1,S,C);return y(`div`,{className:te(d.calendar,ce),"data-size":se,onMouseLeave:()=>k?.(null),children:[y(`div`,{className:d.header,children:[N?v(`span`,{className:d.navSpacer}):v(`button`,{type:`button`,className:d.navButton,"aria-label":L,disabled:ge,onClick:()=>stepView(-1),children:v(`span`,{"aria-hidden":`true`,children:`‹`})}),v(`span`,{className:d.monthLabel,children:Q}),N?v(`span`,{className:d.navSpacer}):v(`button`,{type:`button`,className:d.navButton,"aria-label":R,disabled:_e,onClick:()=>stepView(1),children:v(`span`,{"aria-hidden":`true`,children:`›`})})]}),y(`table`,{ref:I,role:`grid`,"aria-label":E??D??Q,className:d.grid,onKeyDown:handleKeyDown,children:[v(`thead`,{children:y(`tr`,{role:`row`,children:[P&&v(`th`,{className:d.weekday,scope:`col`,children:v(`span`,{className:d.srOnly,children:B})}),me.map(e=>v(`th`,{className:d.weekday,abbr:e,scope:`col`,children:e},e))]})}),v(`tbody`,{children:fe.map((e,n)=>{let r=e.find(Boolean);return y(`tr`,{role:`row`,children:[P&&v(`th`,{scope:`row`,className:d.weekNumber,children:r?i(r):``}),e.map((e,n)=>{if(!e)return v(`td`,{role:`gridcell`,className:d.empty},n);let r=c(e,V),i=c(e,H),a=c(e,K.value),o=isDayDisabled(e);return v(`td`,{role:`gridcell`,className:d.cell,children:v(`button`,{type:`button`,className:d.day,"data-day":t(e),tabIndex:a?0:-1,"aria-label":he.format(e),"aria-selected":r||void 0,"aria-current":i?`date`:void 0,"aria-disabled":o||void 0,"data-selected":r||void 0,"data-today":i||void 0,"data-in-range":(O?.(e)??!1)||void 0,"data-range-start":(le?.(e)??!1)||void 0,"data-range-end":(ue?.(e)??!1)||void 0,onClick:()=>select(e),onFocus:()=>{K.value=e},onMouseEnter:()=>k?.(e),children:e.getUTCDate()})},n)})]},n)})})]}),de&&v(`div`,{className:d.footer,children:v(`button`,{type:`button`,className:d.todayButton,disabled:isDayDisabled(H),onClick:goToToday,children:z})}),v(`span`,{className:d.srOnly,role:`status`,"aria-live":`polite`,children:Q})]})}export{Calendar};
@@ -1 +1 @@
1
- import e from"./card.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";function i({variant:r=`default`,padding:i=`md`,className:a,children:o,...s}){return n(`div`,{"data-cascivo-card":``,"data-variant":r,"data-padding":i,className:t(e.card,a),...s,children:o})}function a({actions:i,className:a,children:o,...s}){return i===void 0?n(`div`,{className:t(e.header,a),...s,children:o}):r(`div`,{className:t(e.header,e.headerRow,a),...s,children:[n(`div`,{className:e.headerMain,children:o}),n(`div`,{className:e.headerActions,children:i})]})}function o({className:r,children:i,...a}){return n(`h3`,{className:t(e.title,r),...a,children:i})}function s({className:r,children:i,...a}){return n(`div`,{className:t(e.content,r),...a,children:i})}function c({className:r,children:i,...a}){return n(`div`,{className:t(e.footer,r),...a,children:i})}export{i as Card,s as CardContent,c as CardFooter,a as CardHeader,o as CardTitle};
1
+ import e from"./card.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";function Card({variant:r=`default`,padding:i=`md`,className:a,children:o,...s}){return n(`div`,{"data-cascivo-card":``,"data-variant":r,"data-padding":i,className:t(e.card,a),...s,children:o})}function CardHeader({actions:i,className:a,children:o,...s}){return i===void 0?n(`div`,{className:t(e.header,a),...s,children:o}):r(`div`,{className:t(e.header,e.headerRow,a),...s,children:[n(`div`,{className:e.headerMain,children:o}),n(`div`,{className:e.headerActions,children:i})]})}function CardTitle({className:r,children:i,...a}){return n(`h3`,{className:t(e.title,r),...a,children:i})}function CardContent({className:r,children:i,...a}){return n(`div`,{className:t(e.content,r),...a,children:i})}function CardFooter({className:r,children:i,...a}){return n(`div`,{className:t(e.footer,r),...a,children:i})}export{Card,CardContent,CardFooter,CardHeader,CardTitle};