@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.
- package/dist/accordion/accordion.js +1 -1
- package/dist/action-sheet/action-sheet.js +1 -1
- package/dist/alert/alert.js +1 -1
- package/dist/alert-dialog/alert-dialog.js +1 -1
- package/dist/app-shell/app-shell.css +1 -1
- package/dist/app-shell/app-shell.js +1 -1
- package/dist/app-shell/app-shell.module.js +1 -1
- package/dist/aspect-ratio/aspect-ratio.js +1 -1
- package/dist/avatar/avatar.js +1 -1
- package/dist/avatar-group/avatar-group.js +1 -1
- package/dist/badge/badge.js +1 -1
- package/dist/blockquote/blockquote.js +1 -1
- package/dist/bottom-sheet/bottom-sheet.js +1 -1
- package/dist/brand/logo/logo.js +1 -1
- package/dist/breadcrumb/breadcrumb.js +1 -1
- package/dist/button/button.css +1 -1
- package/dist/button/button.module.js +1 -1
- package/dist/button-group/button-group.js +1 -1
- package/dist/calendar/calendar-date.js +1 -1
- package/dist/calendar/calendar.js +1 -1
- package/dist/card/card.js +1 -1
- package/dist/carousel/carousel.js +1 -1
- package/dist/chat-bubble/chat-bubble.js +1 -1
- package/dist/code/code.js +1 -1
- package/dist/code-snippet/code-snippet.js +2 -2
- package/dist/code-snippet/highlight.js +1 -1
- package/dist/collapsible/collapsible.js +1 -1
- package/dist/color-picker/color-picker.js +1 -1
- package/dist/color-picker/color.js +1 -1
- package/dist/combobox/combobox.js +1 -1
- package/dist/combobox/list-nav.js +1 -1
- package/dist/combobox/option-list.js +1 -1
- package/dist/command-menu/command-menu.js +1 -1
- package/dist/comparison/comparison.js +1 -1
- package/dist/contained-list/contained-list.js +1 -1
- package/dist/context-menu/context-menu.js +1 -1
- package/dist/data-list/data-list.js +1 -1
- package/dist/data-table/column-filter.js +1 -1
- package/dist/data-table/column-layout.js +1 -1
- package/dist/data-table/data-table.js +1 -1
- package/dist/data-table/grid-keys.js +1 -1
- package/dist/data-table/row-group.js +1 -1
- package/dist/data-table/row-search.js +1 -1
- package/dist/data-table/row-sort.js +1 -1
- package/dist/data-table/to-csv.js +2 -2
- package/dist/data-table/virtual-window.js +1 -1
- package/dist/date-picker/date-picker.js +1 -1
- package/dist/date-picker/parse-date.js +1 -1
- package/dist/date-range-picker/date-range-picker.js +1 -1
- package/dist/dock/dock.js +1 -1
- package/dist/drawer/drawer.js +1 -1
- package/dist/dropdown/dropdown.js +1 -1
- package/dist/editable/editable.js +1 -1
- package/dist/empty-state/empty-state.js +1 -1
- package/dist/fab/fab.js +1 -1
- package/dist/field/field.js +1 -1
- package/dist/file-uploader/file-uploader.js +1 -1
- package/dist/filter/filter.js +1 -1
- package/dist/form/form.js +1 -1
- package/dist/header/header.js +1 -1
- package/dist/header-panel/header-panel.js +1 -1
- package/dist/heading/heading.js +1 -1
- package/dist/hover-card/hover-card.js +1 -1
- package/dist/image/image.js +1 -1
- package/dist/index.d.ts +749 -13
- package/dist/indicator/indicator.js +1 -1
- package/dist/infinite-scroll/infinite-scroll.js +1 -1
- package/dist/inline-loading/inline-loading.js +1 -1
- package/dist/input-group/input-group.js +1 -1
- package/dist/item/item.js +1 -1
- package/dist/join/join.js +1 -1
- package/dist/kbd/kbd.js +1 -1
- package/dist/label/label.js +1 -1
- package/dist/large-title-header/large-title-header.js +1 -1
- package/dist/layouts/src/auto-grid/auto-grid.js +1 -1
- package/dist/layouts/src/center/center.js +1 -1
- package/dist/layouts/src/columns/columns.js +1 -1
- package/dist/layouts/src/flex/flex.css +1 -1
- package/dist/layouts/src/flex/flex.js +1 -1
- package/dist/layouts/src/flex/flex.module.js +1 -1
- package/dist/layouts/src/grid/grid.js +1 -1
- package/dist/layouts/src/page-header/page-header.js +1 -1
- package/dist/layouts/src/spacer/spacer.js +1 -1
- package/dist/list/list.js +1 -1
- package/dist/log-viewer/log-viewer.css +1 -1
- package/dist/log-viewer/log-viewer.js +2 -2
- package/dist/log-viewer/log-viewer.module.js +1 -1
- package/dist/menu/menu.js +1 -1
- package/dist/menu-button/menu-button.js +1 -1
- package/dist/menubar/menubar.js +1 -1
- package/dist/modal/modal.js +1 -1
- package/dist/multi-select/list-nav.js +1 -1
- package/dist/multi-select/multi-select.js +1 -1
- package/dist/multi-select/option-list.js +1 -1
- package/dist/navigation-menu/navigation-menu.js +1 -1
- package/dist/node/accordion/accordion.js +1 -1
- package/dist/node/action-sheet/action-sheet.js +1 -1
- package/dist/node/alert/alert.js +1 -1
- package/dist/node/alert-dialog/alert-dialog.js +1 -1
- package/dist/node/app-shell/app-shell.js +1 -1
- package/dist/node/app-shell/app-shell.module.js +1 -1
- package/dist/node/aspect-ratio/aspect-ratio.js +1 -1
- package/dist/node/avatar/avatar.js +1 -1
- package/dist/node/avatar-group/avatar-group.js +1 -1
- package/dist/node/badge/badge.js +1 -1
- package/dist/node/blockquote/blockquote.js +1 -1
- package/dist/node/bottom-sheet/bottom-sheet.js +1 -1
- package/dist/node/brand/logo/logo.js +1 -1
- package/dist/node/breadcrumb/breadcrumb.js +1 -1
- package/dist/node/button/button.module.js +1 -1
- package/dist/node/button-group/button-group.js +1 -1
- package/dist/node/calendar/calendar-date.js +1 -1
- package/dist/node/calendar/calendar.js +1 -1
- package/dist/node/card/card.js +1 -1
- package/dist/node/carousel/carousel.js +1 -1
- package/dist/node/chat-bubble/chat-bubble.js +1 -1
- package/dist/node/code/code.js +1 -1
- package/dist/node/code-snippet/code-snippet.js +2 -2
- package/dist/node/code-snippet/highlight.js +1 -1
- package/dist/node/collapsible/collapsible.js +1 -1
- package/dist/node/color-picker/color-picker.js +1 -1
- package/dist/node/color-picker/color.js +1 -1
- package/dist/node/combobox/combobox.js +1 -1
- package/dist/node/combobox/list-nav.js +1 -1
- package/dist/node/combobox/option-list.js +1 -1
- package/dist/node/command-menu/command-menu.js +1 -1
- package/dist/node/comparison/comparison.js +1 -1
- package/dist/node/contained-list/contained-list.js +1 -1
- package/dist/node/context-menu/context-menu.js +1 -1
- package/dist/node/data-list/data-list.js +1 -1
- package/dist/node/data-table/column-filter.js +1 -1
- package/dist/node/data-table/column-layout.js +1 -1
- package/dist/node/data-table/data-table.js +1 -1
- package/dist/node/data-table/grid-keys.js +1 -1
- package/dist/node/data-table/row-group.js +1 -1
- package/dist/node/data-table/row-search.js +1 -1
- package/dist/node/data-table/row-sort.js +1 -1
- package/dist/node/data-table/to-csv.js +2 -2
- package/dist/node/data-table/virtual-window.js +1 -1
- package/dist/node/date-picker/date-picker.js +1 -1
- package/dist/node/date-picker/parse-date.js +1 -1
- package/dist/node/date-range-picker/date-range-picker.js +1 -1
- package/dist/node/dock/dock.js +1 -1
- package/dist/node/drawer/drawer.js +1 -1
- package/dist/node/dropdown/dropdown.js +1 -1
- package/dist/node/editable/editable.js +1 -1
- package/dist/node/empty-state/empty-state.js +1 -1
- package/dist/node/fab/fab.js +1 -1
- package/dist/node/field/field.js +1 -1
- package/dist/node/file-uploader/file-uploader.js +1 -1
- package/dist/node/filter/filter.js +1 -1
- package/dist/node/form/form.js +1 -1
- package/dist/node/header/header.js +1 -1
- package/dist/node/header-panel/header-panel.js +1 -1
- package/dist/node/heading/heading.js +1 -1
- package/dist/node/hover-card/hover-card.js +1 -1
- package/dist/node/image/image.js +1 -1
- package/dist/node/indicator/indicator.js +1 -1
- package/dist/node/infinite-scroll/infinite-scroll.js +1 -1
- package/dist/node/inline-loading/inline-loading.js +1 -1
- package/dist/node/input-group/input-group.js +1 -1
- package/dist/node/item/item.js +1 -1
- package/dist/node/join/join.js +1 -1
- package/dist/node/kbd/kbd.js +1 -1
- package/dist/node/label/label.js +1 -1
- package/dist/node/large-title-header/large-title-header.js +1 -1
- package/dist/node/layouts/src/auto-grid/auto-grid.js +1 -1
- package/dist/node/layouts/src/center/center.js +1 -1
- package/dist/node/layouts/src/columns/columns.js +1 -1
- package/dist/node/layouts/src/flex/flex.js +1 -1
- package/dist/node/layouts/src/flex/flex.module.js +1 -1
- package/dist/node/layouts/src/grid/grid.js +1 -1
- package/dist/node/layouts/src/page-header/page-header.js +1 -1
- package/dist/node/layouts/src/spacer/spacer.js +1 -1
- package/dist/node/list/list.js +1 -1
- package/dist/node/log-viewer/log-viewer.js +2 -2
- package/dist/node/log-viewer/log-viewer.module.js +1 -1
- package/dist/node/menu/menu.js +1 -1
- package/dist/node/menu-button/menu-button.js +1 -1
- package/dist/node/menubar/menubar.js +1 -1
- package/dist/node/modal/modal.js +1 -1
- package/dist/node/multi-select/list-nav.js +1 -1
- package/dist/node/multi-select/multi-select.js +1 -1
- package/dist/node/multi-select/option-list.js +1 -1
- package/dist/node/navigation-menu/navigation-menu.js +1 -1
- package/dist/node/notification/notification.js +1 -1
- package/dist/node/number-input/number-input.js +1 -1
- package/dist/node/otp-input/otp-input.js +1 -1
- package/dist/node/overflow-menu/overflow-menu.js +1 -1
- package/dist/node/pagination/pagination.js +1 -1
- package/dist/node/password-input/password-input.js +1 -1
- package/dist/node/popover/popover.js +1 -1
- package/dist/node/popover/use-popover.js +1 -1
- package/dist/node/progress/progress.js +1 -1
- package/dist/node/progress-bar/progress-bar.js +1 -1
- package/dist/node/progress-circle/progress-circle.js +1 -1
- package/dist/node/progress-indicator/progress-indicator.js +1 -1
- package/dist/node/prose/prose.js +1 -1
- package/dist/node/pull-to-refresh/pull-to-refresh.js +1 -1
- package/dist/node/qr-code/encode.js +1 -1
- package/dist/node/qr-code/qr-code.js +1 -1
- package/dist/node/radial-progress/radial-progress.js +1 -1
- package/dist/node/radio/radio.js +1 -1
- package/dist/node/radio-card/radio-card.js +1 -1
- package/dist/node/rating-group/rating-group.js +1 -1
- package/dist/node/react/src/index.js +1 -1
- package/dist/node/relative-time/relative-time.js +1 -1
- package/dist/node/reorder-list/reorder-list.js +1 -1
- package/dist/node/resizable/resizable.js +1 -1
- package/dist/node/scroll-area/scroll-area.js +1 -1
- package/dist/node/search/search.js +1 -1
- package/dist/node/segmented-control/segmented-control.js +1 -1
- package/dist/node/separator/separator.js +1 -1
- package/dist/node/sheet/sheet.js +1 -1
- package/dist/node/shell-header/shell-header.js +1 -1
- package/dist/node/side-nav/side-nav.js +1 -1
- package/dist/node/side-nav/side-nav.module.js +1 -1
- package/dist/node/skeleton/skeleton.js +1 -1
- package/dist/node/skip-nav/skip-nav.js +1 -1
- package/dist/node/spinner/spinner.js +1 -1
- package/dist/node/stack/stack.js +1 -1
- package/dist/node/stat/stat.js +1 -1
- package/dist/node/status/status.js +1 -1
- package/dist/node/steps/steps.js +1 -1
- package/dist/node/structured-list/structured-list.js +1 -1
- package/dist/node/swap/swap.js +1 -1
- package/dist/node/swipe-item/swipe-item.js +1 -1
- package/dist/node/switcher/switcher.js +1 -1
- package/dist/node/tabs/tabs.js +1 -1
- package/dist/node/tag/tag.js +1 -1
- package/dist/node/tags-input/tags-input.js +1 -1
- package/dist/node/text/text.js +1 -1
- package/dist/node/tile/tile.js +1 -1
- package/dist/node/timeline/timeline.js +1 -1
- package/dist/node/toast/toast.js +1 -1
- package/dist/node/toc/toc.js +1 -1
- package/dist/node/toc/use-toc-from-region.js +1 -1
- package/dist/node/toggle-group/toggle-group.js +1 -1
- package/dist/node/toggletip/toggletip.js +1 -1
- package/dist/node/tooltip/tooltip.js +1 -1
- package/dist/node/tree-view/tree-view.js +1 -1
- package/dist/node/user/user.js +1 -1
- package/dist/node/virtual-list/virtual-list.js +1 -1
- package/dist/node/wheel-picker/wheel-picker.js +1 -1
- package/dist/notification/notification.js +1 -1
- package/dist/number-input/number-input.js +1 -1
- package/dist/otp-input/otp-input.js +1 -1
- package/dist/overflow-menu/overflow-menu.js +1 -1
- package/dist/pagination/pagination.js +1 -1
- package/dist/password-input/password-input.js +1 -1
- package/dist/popover/popover.js +1 -1
- package/dist/popover/use-popover.js +1 -1
- package/dist/progress/progress.js +1 -1
- package/dist/progress-bar/progress-bar.js +1 -1
- package/dist/progress-circle/progress-circle.js +1 -1
- package/dist/progress-indicator/progress-indicator.js +1 -1
- package/dist/prose/prose.js +1 -1
- package/dist/pull-to-refresh/pull-to-refresh.js +1 -1
- package/dist/qr-code/encode.js +1 -1
- package/dist/qr-code/qr-code.js +1 -1
- package/dist/radial-progress/radial-progress.js +1 -1
- package/dist/radio/radio.js +1 -1
- package/dist/radio-card/radio-card.js +1 -1
- package/dist/rating-group/rating-group.js +1 -1
- package/dist/react/src/index.js +1 -1
- package/dist/relative-time/relative-time.js +1 -1
- package/dist/reorder-list/reorder-list.js +1 -1
- package/dist/resizable/resizable.js +1 -1
- package/dist/scroll-area/scroll-area.js +1 -1
- package/dist/search/search.js +1 -1
- package/dist/segmented-control/segmented-control.js +1 -1
- package/dist/separator/separator.js +1 -1
- package/dist/sheet/sheet.js +1 -1
- package/dist/shell-header/shell-header.js +1 -1
- package/dist/side-nav/side-nav.css +1 -1
- package/dist/side-nav/side-nav.js +1 -1
- package/dist/side-nav/side-nav.module.js +1 -1
- package/dist/skeleton/skeleton.js +1 -1
- package/dist/skip-nav/skip-nav.js +1 -1
- package/dist/spinner/spinner.js +1 -1
- package/dist/stack/stack.js +1 -1
- package/dist/stat/stat.js +1 -1
- package/dist/status/status.js +1 -1
- package/dist/steps/steps.js +1 -1
- package/dist/structured-list/structured-list.js +1 -1
- package/dist/styles.css +10 -6
- package/dist/swap/swap.js +1 -1
- package/dist/swipe-item/swipe-item.js +1 -1
- package/dist/switcher/switcher.js +1 -1
- package/dist/tabs/tabs.js +1 -1
- package/dist/tag/tag.js +1 -1
- package/dist/tags-input/tags-input.js +1 -1
- package/dist/text/text.js +1 -1
- package/dist/tile/tile.js +1 -1
- package/dist/timeline/timeline.js +1 -1
- package/dist/toast/toast.js +1 -1
- package/dist/toc/toc.js +1 -1
- package/dist/toc/use-toc-from-region.js +1 -1
- package/dist/toggle-group/toggle-group.js +1 -1
- package/dist/toggletip/toggletip.js +1 -1
- package/dist/tooltip/tooltip.js +1 -1
- package/dist/tree-view/tree-view.js +1 -1
- package/dist/user/user.js +1 -1
- package/dist/virtual-list/virtual-list.js +1 -1
- package/dist/wheel-picker/wheel-picker.js +1 -1
- package/package.json +4 -4
|
@@ -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
|
|
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
|
|
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};
|
package/dist/alert/alert.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
-
@layer cascivo.component{.
|
|
1
|
+
@layer cascivo.component{._shell_tpp3j_4{box-sizing:border-box;block-size:100dvh;font-family:var(--cascivo-font-sans);color:var(--cascivo-color-foreground);background-color:var(--cascivo-color-background);flex-direction:column;display:flex;overflow:hidden}._header_tpp3j_16{z-index:var(--cascivo-z-raised);flex:none}._body_tpp3j_21{flex:auto;min-block-size:0;display:flex;position:relative}._navWrapper_tpp3j_32{z-index:var(--cascivo-z-overlay);block-size:100%;transition:transform var(--cascivo-motion-emphasis);position:absolute;inset-block:0;inset-inline-start:0;overflow:hidden;transform:translate(-100%)}._navWrapper_tpp3j_32[data-open=true]{transform:translate(0)}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) ._navWrapper_tpp3j_32{transform:translate(100%)}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) ._navWrapper_tpp3j_32[data-open=true]{transform:translate(0)}._navInner_tpp3j_58{block-size:100%;inline-size:var(--cascivo-shell-panel-inline-size,20rem);display:flex}._navInner_tpp3j_58>*{flex:auto;min-block-size:0}._navInner_tpp3j_58:has(>[data-state=collapsed]){inline-size:var(--cascivo-sidenav-rail-inline-size,4rem)}._scrim_tpp3j_84{z-index:var(--cascivo-z-dropdown);opacity:0;visibility:hidden;transition:opacity var(--cascivo-motion-emphasis), visibility var(--cascivo-motion-emphasis);background-color:oklch(0% 0 0/.4);position:absolute;inset:0}._scrim_tpp3j_84[data-open=true]{opacity:1;visibility:visible}._main_tpp3j_101{min-inline-size:0;padding:var(--cascivo-space-6);flex:auto;overflow-y:auto}._main_tpp3j_101[data-padding=none]{padding:0}._main_tpp3j_101[data-padding="1"]{padding:var(--cascivo-space-1)}._main_tpp3j_101[data-padding="2"]{padding:var(--cascivo-space-2)}._main_tpp3j_101[data-padding="3"]{padding:var(--cascivo-space-3)}._main_tpp3j_101[data-padding="4"]{padding:var(--cascivo-space-4)}._main_tpp3j_101[data-padding="5"]{padding:var(--cascivo-space-5)}._main_tpp3j_101[data-padding="6"]{padding:var(--cascivo-space-6)}._main_tpp3j_101[data-padding="8"]{padding:var(--cascivo-space-8)}._main_tpp3j_101[data-padding="10"]{padding:var(--cascivo-space-10)}._main_tpp3j_101[data-padding="12"]{padding:var(--cascivo-space-12)}._footer_tpp3j_142{flex:none}@media (width>=64rem){._navWrapper_tpp3j_32{z-index:auto;inline-size:var(--cascivo-shell-aside-inline-size,18rem);transition:inline-size var(--cascivo-motion-emphasis);flex-shrink:0;position:static;transform:none}._navWrapper_tpp3j_32:has(>._navInner_tpp3j_58>[data-state=collapsed]){inline-size:var(--cascivo-sidenav-rail-inline-size,4rem)}:is(._navWrapper_tpp3j_32[data-open=false],._navWrapper_tpp3j_32[data-open=false]:has(>._navInner_tpp3j_58>[data-state=collapsed])){inline-size:0}._navInner_tpp3j_58{inline-size:var(--cascivo-shell-aside-inline-size,18rem);transition:inline-size var(--cascivo-motion-emphasis)}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) ._navWrapper_tpp3j_32{transform:none}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) ._navWrapper_tpp3j_32[data-open=true]{transform:none}._scrim_tpp3j_84{display:none}}}
|
|
@@ -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
|
|
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,2 +1,2 @@
|
|
|
1
1
|
import './app-shell.css';
|
|
2
|
-
var e={shell:`
|
|
2
|
+
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
|
|
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};
|
package/dist/avatar/avatar.js
CHANGED
|
@@ -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
|
|
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
|
|
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};
|
package/dist/badge/badge.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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};
|
package/dist/brand/logo/logo.js
CHANGED
|
@@ -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
|
|
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
|
|
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};
|
package/dist/button/button.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer cascivo.component{.
|
|
1
|
+
@layer cascivo.component{._label_w88l5_10{align-items:center;gap:inherit;display:inline-flex}._button_w88l5_8{justify-content:center;align-items:center;gap:var(--cascivo-space-2);font-family:var(--cascivo-font-sans);font-weight:var(--cascivo-font-medium);line-height:var(--cascivo-leading-none);white-space:nowrap;cursor:pointer;transition:background-color var(--cascivo-duration-150) var(--cascivo-ease-out), color var(--cascivo-duration-150) var(--cascivo-ease-out), box-shadow var(--cascivo-duration-150) var(--cascivo-ease-out), scale var(--cascivo-duration-75) var(--cascivo-ease-out);border-radius:var(--cascivo-button-radius,var(--cascivo-radius-control));border:1px solid #0000;text-decoration:none;display:inline-flex}._button_w88l5_8:active:not(:disabled):not([aria-disabled=true]){scale:.97}._button_w88l5_8:focus-visible{box-shadow:var(--cascivo-focus-ring);outline:none}._button_w88l5_8:disabled,._button_w88l5_8[aria-disabled=true]{opacity:.5;opacity:var(--cascivo-disabled-opacity,.5);cursor:not-allowed;pointer-events:none}._button_w88l5_8[data-size=sm]{height:var(--cascivo-control-height-sm);padding-inline:var(--cascivo-space-3);font-size:var(--cascivo-text-ui)}._button_w88l5_8[data-size=md]{height:var(--cascivo-control-height-md);padding-inline:var(--cascivo-space-4);padding-block:.5rem;padding-block:--cascivo-step(2);font-size:var(--cascivo-text-ui)}._button_w88l5_8[data-size=lg]{height:var(--cascivo-control-height-lg);padding-inline:var(--cascivo-space-6);font-size:var(--cascivo-text-body)}@media (pointer:coarse){._button_w88l5_8[data-size=sm],._button_w88l5_8[data-size=md]{min-block-size:var(--cascivo-target-min-coarse,2.75rem)}}._button_w88l5_8[data-variant=primary]{background-color:var(--cascivo-button-primary-bg,var(--cascivo-color-primary));color:var(--cascivo-color-primary-fg)}._button_w88l5_8[data-variant=primary]:hover:not(:disabled){background-color:var(--cascivo-button-primary-bg-hover,var(--cascivo-color-primary-hover))}._button_w88l5_8[data-variant=primary]:active:not(:disabled){background-color:var(--cascivo-button-primary-bg-active,var(--cascivo-color-primary-active))}._button_w88l5_8[data-variant=secondary]{background-color:var(--cascivo-button-secondary-bg,var(--cascivo-color-secondary));color:var(--cascivo-color-secondary-content)}._button_w88l5_8[data-variant=secondary]:hover:not(:disabled){background-color:var(--cascivo-button-secondary-bg-hover,var(--cascivo-color-secondary-hover))}._button_w88l5_8[data-variant=ghost]{background-color:var(--cascivo-button-ghost-bg,transparent);color:var(--cascivo-color-text)}._button_w88l5_8[data-variant=ghost]:hover:not(:disabled){background-color:var(--cascivo-button-ghost-bg-hover,var(--cascivo-color-bg-subtle))}._button_w88l5_8[data-variant=destructive]{background-color:var(--cascivo-button-destructive-bg,var(--cascivo-color-destructive));color:var(--cascivo-color-text-on-destructive)}._button_w88l5_8[data-variant=destructive]:hover:not(:disabled){background-color:var(--cascivo-button-destructive-bg-hover,var(--cascivo-color-destructive-hover))}}@media (forced-colors:active){._button_w88l5_8{border:1px solid buttontext}._button_w88l5_8:focus-visible{outline-offset:2px;outline:2px solid highlight}._button_w88l5_8:disabled{color:graytext;border-color:graytext}}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import './button.css';
|
|
2
|
-
var e={label:`
|
|
2
|
+
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
|
|
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
|
|
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
|
|
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};
|
package/dist/card/card.js
CHANGED
|
@@ -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
|
|
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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./carousel.module.js";import{Children as t,useId as n,useRef as r}from"react";import{cn as i,useControllableSignal as a,useMediaQuery as o,useRovingFocus 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";function
|
|
1
|
+
"use client";import e from"./carousel.module.js";import{Children as t,useId as n,useRef as r}from"react";import{cn as i,useControllableSignal as a,useMediaQuery as o,useRovingFocus 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";function toSlides(e,n){return n||t.toArray(e)}function Carousel({children:t,slides:h,index:g,defaultIndex:_,onIndexChange:v,loop:y=!1,autoplay:b,className:x,labels:S}){u();let C=n(),w=toSlides(t,h),T=w.length,[E,D]=a({value:g,defaultValue:_??0,onChange:v}),O=r(null),k=r(!1),A=o(`(prefers-reduced-motion: reduce)`),{getItemProps:j,setActiveIndex:M}=s({orientation:`horizontal`,loop:y});l(()=>{let e=O.current;if(!e)return;let onScroll=()=>{if(k.current||e.clientWidth===0)return;let t=Math.round(e.scrollLeft/e.clientWidth);t!==E.value&&D(t)};return e.addEventListener(`scroll`,onScroll,{passive:!0}),()=>e.removeEventListener(`scroll`,onScroll)});let goTo=e=>{if(T===0)return;let t=e;t<0&&(t=y?T-1:0),t>=T&&(t=y?0:T-1);let n=O.current;n&&typeof n.scrollTo==`function`&&n.clientWidth>0&&(k.current=!0,n.scrollTo({left:t*n.clientWidth,behavior:A.value?`auto`:`smooth`}),window.setTimeout(()=>{k.current=!1},400)),D(t),M(t)};l(()=>{M(E.value)});let N=c(b!==void 0&&b>0),P=c(!1);l(()=>{if(!b||b<=0||!N.value||P.value||A.value)return;let e=window.setInterval(()=>{let e=E.peek()+1;goTo(e>=T?0:e)},b);return()=>window.clearInterval(e)}),l(()=>{if(typeof document>`u`)return;let onVisibility=()=>{P.value=document.hidden};return document.addEventListener(`visibilitychange`,onVisibility),()=>document.removeEventListener(`visibilitychange`,onVisibility)});let F=S?.region??f(d.carousel.region),I=S?.previous??f(d.carousel.previous),L=S?.next??f(d.carousel.next),R=S?.play??f(d.carousel.play),z=S?.pause??f(d.carousel.pause),B=!!(b&&b>0);return m(`section`,{className:i(e.carousel,x),"aria-roledescription":`carousel`,"aria-label":F,onMouseEnter:()=>{B&&(P.value=!0)},onMouseLeave:()=>{B&&(P.value=!1)},onFocusCapture:()=>{B&&(P.value=!0)},onBlurCapture:e=>{B&&!e.currentTarget.contains(e.relatedTarget)&&(P.value=!1)},children:[m(`div`,{className:e.viewport,children:[p(`button`,{type:`button`,className:i(e.nav,e.prev),"aria-label":I,"aria-controls":`${C}-track`,disabled:!y&&E.value<=0,onClick:()=>goTo(E.value-1),children:p(`span`,{className:i(e.chevron,e.chevronPrev),"aria-hidden":`true`})}),p(`div`,{ref:O,id:`${C}-track`,className:e.track,"aria-live":B&&N.value&&!P.value?`off`:`polite`,children:w.map((t,n)=>p(`div`,{className:e.slide,role:`group`,"aria-roledescription":`slide`,"aria-label":f(d.carousel.slide,{n:n+1,total:T}),inert:n===E.value?void 0:!0,children:t},n))}),p(`button`,{type:`button`,className:i(e.nav,e.next),"aria-label":L,"aria-controls":`${C}-track`,disabled:!y&&E.value>=T-1,onClick:()=>goTo(E.value+1),children:p(`span`,{className:i(e.chevron,e.chevronNext),"aria-hidden":`true`})})]}),m(`div`,{className:e.controls,children:[B&&p(`button`,{type:`button`,className:e.playPause,"aria-label":N.value?z:R,onClick:()=>{N.value=!N.value},children:p(`span`,{className:N.value?e.pauseGlyph:e.playGlyph,"aria-hidden":`true`})}),p(`div`,{className:e.dots,role:`group`,"aria-label":f(d.carousel.choose),children:w.map((t,n)=>{let r=j(n);return p(`button`,{ref:r.ref,type:`button`,className:e.dot,"aria-label":f(d.carousel.goTo,{n:n+1}),"aria-current":n===E.value||void 0,"data-active":n===E.value||void 0,tabIndex:r.tabIndex,onKeyDown:r.onKeyDown,onFocus:()=>{r.onFocus?.(),n!==E.value&&goTo(n)},onClick:()=>goTo(n)},n)})})]})]})}export{Carousel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"./chat-bubble.module.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";function
|
|
1
|
+
import e from"./chat-bubble.module.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";function ChatBubble({children:r,side:i=`start`,avatar:a,name:o,time:s,className:c}){return n(`div`,{className:[e.bubble,c].filter(Boolean).join(` `),"data-side":i,children:[a&&t(`div`,{className:e.avatar,"aria-hidden":`true`,children:a}),n(`div`,{className:e.content,children:[(o||s)&&n(`div`,{className:e.meta,children:[o&&t(`span`,{className:e.name,children:o}),s&&t(`time`,{className:e.time,children:s})]}),t(`div`,{className:e.body,children:r})]})]})}export{ChatBubble};
|
package/dist/code/code.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"./code.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function
|
|
1
|
+
import e from"./code.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function Code({size:r=`md`,className:i,children:a,...o}){return n(`code`,{"data-size":r,className:t(e.code,i),...o,children:a})}export{Code};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{tokenize as e}from"./highlight.js";import t from"./code-snippet.module.js";import{cn as n,useClipboard as r,useSignals as i}from"@cascivo/core";import{builtin as a,t as o}from"@cascivo/i18n";import{jsx as s,jsxs as c}from"react/jsx-runtime";function
|
|
2
|
-
`),
|
|
1
|
+
"use client";import{tokenize as e}from"./highlight.js";import t from"./code-snippet.module.js";import{cn as n,useClipboard as r,useSignals as i}from"@cascivo/core";import{builtin as a,t as o}from"@cascivo/i18n";import{jsx as s,jsxs as c}from"react/jsx-runtime";function isDev(){return globalThis.process?.env?.NODE_ENV!==`production`}function Highlighted({code:n,language:r}){return s(`code`,{className:t.code,children:e(n,r).map((e,t)=>e.type===`text`?s(`span`,{children:e.value},t):s(`span`,{"data-tok":e.type,children:e.value},t))})}function CodeSnippet({code:e,children:l,variant:u=`single`,language:d,terminal:f=!1,title:p,showLineNumbers:m,showCopyButton:h,labels:g,className:_}){i();let v=e??l??``;isDev()&&e===void 0&&l===void 0&&console.error("CodeSnippet: pass the code either as the `code` prop or as a plain-string child. Rendering nothing.");let{copied:y,copy:b}=r(),x=g?.copy??o(a.codeSnippet.copy),S=g?.copied??o(a.codeSnippet.copied),C=h??u!==`inline`?s(`button`,{type:`button`,"aria-label":y.value?S:x,"data-state":y.value?`copied`:`idle`,className:t.copy,onClick:()=>void b(v),children:y.value?s(`svg`,{"aria-hidden":`true`,viewBox:`0 0 16 16`,className:t.icon,children:s(`path`,{d:`M13.5 4.5 6 12 2.5 8.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`})}):c(`svg`,{"aria-hidden":`true`,viewBox:`0 0 16 16`,className:t.icon,children:[s(`rect`,{x:`5.5`,y:`5.5`,width:`8`,height:`8`,rx:`1.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`}),s(`path`,{d:`M3.5 10.5h-1a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h7a1 1 0 0 1 1 1v1`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`})]})}):null;if(u===`inline`)return c(`span`,{className:n(t.root,_),"data-variant":`inline`,children:[s(`code`,{className:t.inlineCode,children:v}),C]});let w=v.split(`
|
|
2
|
+
`),T=u===`multi`&&m&&!d;return c(`div`,{className:n(t.root,_),"data-variant":u,"data-terminal":f?``:void 0,children:[f&&c(`div`,{className:t.bar,"aria-hidden":`true`,children:[c(`span`,{className:t.dots,children:[s(`span`,{className:t.dot}),s(`span`,{className:t.dot}),s(`span`,{className:t.dot})]}),p&&s(`span`,{className:t.title,children:p})]}),s(`pre`,{className:t.pre,children:T?s(`code`,{className:t.code,children:w.map((e,n)=>c(`span`,{className:t.line,children:[s(`span`,{"aria-hidden":`true`,className:t.lineNumber,children:n+1}),s(`span`,{className:t.lineText,children:e})]},n))}):d?s(Highlighted,{code:v,language:d}):s(`code`,{className:t.code,children:v})}),C]})}export{CodeSnippet};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function compile(e){return e.map(([e,t])=>({type:e,re:RegExp(`^(?:${t})`)}))}var e=`"(?:[^"\\\\]|\\\\.)*"|'(?:[^'\\\\]|\\\\.)*'`,t="`(?:[^`\\\\]|\\\\.)*`",n=`const|let|var|function|return|if|else|for|while|do|switch|case|break|continue|new|class|extends|super|import|export|from|default|async|await|yield|typeof|instanceof|in|of|void|delete|this|null|true|false|undefined`,r=`${n}|interface|type|as|readonly|enum|implements|public|private|protected|abstract|namespace|declare|satisfies|keyof|infer|is|string|number|boolean|unknown|never|any`,i={bash:compile([[`comment`,`#[^\\n]*`],[`string`,e],[`prompt`,`\\$(?= )`],[`keyword`,`\\b(?:npx|npm|pnpm|yarn|bun|deno|node|git|cd|ls|cat|echo|export|sudo|mkdir|rm|cp|mv|curl|wget|chmod|source)\\b`],[`variable`,`--?[A-Za-z][\\w-]*`],[`number`,`\\b\\d+(?:\\.\\d+)?\\b`]]),css:compile([[`comment`,`/\\*[\\s\\S]*?\\*/`],[`string`,e],[`keyword`,`@[\\w-]+`],[`variable`,`--[\\w-]+`],[`fn`,`[\\w-]+(?=\\()`],[`number`,`#[0-9a-fA-F]{3,8}\\b|-?\\d*\\.?\\d+(?:[a-z%]+)?`],[`punct`,`[{}();:,]`]]),js:compile([[`comment`,`//[^\\n]*|/\\*[\\s\\S]*?\\*/`],[`string`,`${e}|${t}`],[`keyword`,`\\b(?:${n})\\b`],[`fn`,`[A-Za-z_$][\\w$]*(?=\\()`],[`number`,`-?\\d*\\.?\\d+`],[`punct`,`[{}()\\[\\];:,.]|=>`]]),ts:compile([[`comment`,`//[^\\n]*|/\\*[\\s\\S]*?\\*/`],[`string`,`${e}|${t}`],[`keyword`,`\\b(?:${r})\\b`],[`fn`,`[A-Za-z_$][\\w$]*(?=\\()`],[`number`,`-?\\d*\\.?\\d+`],[`punct`,`[{}()\\[\\];:,.]|=>`]])};function tokenize(e,t){let n=i[t],r=[],a=e,o=``,flush=()=>{o&&=(r.push({type:`text`,value:o}),``)};for(;a.length>0;){let e=!1;for(let{type:t,re:i}of n){let n=i.exec(a);if(n&&n[0].length>0){flush(),r.push({type:t,value:n[0]}),a=a.slice(n[0].length),e=!0;break}}e||(o+=a[0],a=a.slice(1))}return flush(),r}export{tokenize};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./collapsible.module.js";import{useId as t,useRef as n}from"react";import{cn as r,useControllableSignal as i,useSignalEffect as a,useSignals as o}from"@cascivo/core";import{jsx as s,jsxs as c}from"react/jsx-runtime";function
|
|
1
|
+
"use client";import e from"./collapsible.module.js";import{useId as t,useRef as n}from"react";import{cn as r,useControllableSignal as i,useSignalEffect as a,useSignals as o}from"@cascivo/core";import{jsx as s,jsxs as c}from"react/jsx-runtime";function Collapsible({open:l,defaultOpen:u=!1,onOpenChange:d,trigger:f,disabled:p=!1,className:m,children:h}){o();let[g,_]=i({...l===void 0?{}:{value:l},defaultValue:u,...d?{onChange:d}:{}}),v=t(),y=`${v}-content`,b=`${v}-trigger`,x=n(null),S=g.value;return a(()=>{let e=x.current;e&&e.open!==g.value&&(e.open=g.value)}),c(`details`,{ref:x,open:S,"data-state":S?`open`:`closed`,className:r(e.root,m),onToggle:e=>{let t=e.currentTarget;t.open!==g.value&&_(t.open),t.open!==g.value&&(t.open=g.value)},children:[s(`summary`,{id:b,"aria-controls":y,...p?{"aria-disabled":!0}:{},"data-state":S?`open`:`closed`,className:e.trigger,onClick:e=>{p&&e.preventDefault()},children:f}),s(`div`,{id:y,role:`region`,"aria-labelledby":b,className:e.content,children:h})]})}export{Collapsible};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{clamp as e,formatColor as t,hsvToRgb as n,parseColor as r,sameColor as i,toHex as a}from"./color.js";import o from"./color-picker.module.js";import{useId as
|
|
1
|
+
"use client";import{clamp as e,formatColor as t,hsvToRgb as n,parseColor as r,sameColor as i,toHex as a}from"./color.js";import o from"./color-picker.module.js";import{useId as s,useRef as c}from"react";import{cn as l,useControllableSignal as u,useRovingFocus as d,useSignal as f,useSignalEffect as p,useSignals as m}from"@cascivo/core";import{builtin as h,t as g}from"@cascivo/i18n";import{jsx as _,jsxs as v}from"react/jsx-runtime";var y=`#3b82f6`;function ColorPicker({id:b,value:x,defaultValue:S,onValueChange:C,presets:w,alpha:T=!0,format:E=`hex`,label:D,ariaLabel:O,disabled:k=!1,name:A,size:j=`md`,className:M,labels:N,"aria-labelledby":P,"aria-describedby":F,"aria-invalid":ee}){m();let I=s(),L=b??`${I}-hex`,R=c(null),z=f(!1),[B,V]=u({value:x,defaultValue:S??y,onChange:C}),H=f(r(B.peek())??{h:217,s:76,v:96,a:1}),U=c(B.peek()),W=B.value;if(W!==U.current&&!i(W,U.current)){let e=r(W);e&&(H.value=e),U.current=W}let G=H.value,K=t(G,E,T),q=a(n({...G,a:1}),!1),J=a(n({h:G.h,s:100,v:100,a:1}),!1),Y={hue:N?.hue??g(h.colorPicker.hue),alpha:N?.alpha??g(h.colorPicker.alpha),colorArea:N?.colorArea??g(h.colorPicker.colorArea),saturation:N?.saturation??g(h.colorPicker.saturation),brightness:N?.brightness??g(h.colorPicker.brightness),eyedropper:N?.eyedropper??g(h.colorPicker.eyedropper),presets:N?.presets??g(h.colorPicker.presets),hex:N?.hex??g(h.colorPicker.hex)};function commit(e){H.value=e;let n=t(e,E,T);U.current=n,V(n)}function setFromPointer(t,n){let r=R.current;if(!r)return;let i=r.getBoundingClientRect();if(i.width===0||i.height===0)return;let a=e((t-i.left)/i.width,0,1),o=e((n-i.top)/i.height,0,1);commit({...H.peek(),s:a*100,v:(1-o)*100})}p(()=>{if(!z.value)return;let onMove=e=>setFromPointer(e.clientX,e.clientY),onUp=()=>{z.value=!1};return window.addEventListener(`pointermove`,onMove),window.addEventListener(`pointerup`,onUp),()=>{window.removeEventListener(`pointermove`,onMove),window.removeEventListener(`pointerup`,onUp)}});let X=f(!1);p(()=>{X.value=typeof window<`u`&&typeof window.EyeDropper==`function`});async function pickFromScreen(){let e=window.EyeDropper;if(e)try{let t=r((await new e().open()).sRGBHex);t&&commit({...t,a:H.peek().a})}catch{}}let Z=f(null),Q=Z.value??(E===`hex`?K:a(n(G),T));function commitDraft(){let e=Z.peek();if(Z.value=null,e===null)return;let t=r(e);t&&commit(T?t:{...t,a:1})}let $=w??[],te=d({orientation:`horizontal`,loop:!0});return v(`div`,{className:l(o.wrapper,M),"data-size":j,"data-disabled":k||void 0,children:[D&&_(`label`,{className:o.label,htmlFor:L,children:D}),v(`div`,{ref:R,role:`group`,"aria-label":Y.colorArea,className:o.area,style:{background:J},onPointerDown:e=>{k||(e.preventDefault(),z.value=!0,setFromPointer(e.clientX,e.clientY))},children:[_(`input`,{type:`range`,className:o.axis,"aria-label":Y.saturation,min:0,max:100,step:1,value:Math.round(G.s),disabled:k,"aria-valuetext":`${Math.round(G.s)}%`,onChange:e=>commit({...H.peek(),s:Number(e.currentTarget.value)})}),_(`input`,{type:`range`,className:o.axis,"aria-label":Y.brightness,min:0,max:100,step:1,value:Math.round(G.v),disabled:k,"aria-valuetext":`${Math.round(G.v)}%`,onChange:e=>commit({...H.peek(),v:Number(e.currentTarget.value)})}),_(`span`,{className:o.thumb,style:{insetInlineStart:`${G.s}%`,insetBlockStart:`${100-G.v}%`,backgroundColor:q},"aria-hidden":`true`})]}),v(`div`,{className:o.sliders,children:[_(`input`,{type:`range`,className:l(o.slider,o.hue),"aria-label":Y.hue,min:0,max:360,step:1,value:Math.round(G.h),disabled:k,onChange:e=>commit({...H.peek(),h:Number(e.currentTarget.value)})}),T&&_(`input`,{type:`range`,className:l(o.slider,o.alpha),"aria-label":Y.alpha,min:0,max:100,step:1,value:Math.round(G.a*100),disabled:k,"aria-valuetext":`${Math.round(G.a*100)}%`,style:{"--cascivo-color-picker-alpha-to":q},onChange:e=>commit({...H.peek(),a:Number(e.currentTarget.value)/100})})]}),v(`div`,{className:o.row,children:[_(`span`,{className:o.preview,style:{backgroundColor:K},"aria-hidden":`true`}),_(`input`,{id:L,type:`text`,className:o.hex,value:Q,disabled:k,autoComplete:`off`,"aria-label":P?void 0:O??Y.hex,"aria-labelledby":P,"aria-describedby":F,"aria-invalid":ee,onChange:e=>{Z.value=e.currentTarget.value},onBlur:commitDraft,onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),commitDraft()):e.key===`Escape`&&(Z.value=null)}}),X.value&&_(`button`,{type:`button`,className:o.eyedropper,"aria-label":Y.eyedropper,disabled:k,onClick:()=>void pickFromScreen(),children:_(`span`,{className:o.eyedropperGlyph,"aria-hidden":`true`})})]}),$.length>0&&_(`div`,{role:`group`,"aria-label":Y.presets,className:o.presets,children:$.map((e,t)=>{let n=te.getItemProps(t),a=i(e,K);return _(`button`,{ref:n.ref,type:`button`,className:o.preset,style:{backgroundColor:e},"aria-label":e,"aria-pressed":a,disabled:k,tabIndex:n.tabIndex,onKeyDown:n.onKeyDown,onFocus:n.onFocus,onClick:()=>{let t=r(e);t&&commit(T?t:{...t,a:1})}},e)})}),A!==void 0&&_(`input`,{type:`hidden`,name:A,value:K}),_(`span`,{className:o.srOnly,role:`status`,"aria-live":`polite`,children:g(h.colorPicker.value,{color:K})})]})}export{ColorPicker};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function clamp(e,t,r){return Math.min(r,Math.max(t,e))}function parseHex(e){let t=e.trim().replace(/^#/,``);if(!/^(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(t))return null;let r=(e=>e.length<=4?e.split(``).map(e=>e+e).join(``):e)(t);return{r:parseInt(r.slice(0,2),16),g:parseInt(r.slice(2,4),16),b:parseInt(r.slice(4,6),16),a:r.length>=8?parseInt(r.slice(6,8),16)/255:1}}function toHex({r:e,g:t,b:r,a:i},a){let part=e=>clamp(Math.round(e),0,255).toString(16).padStart(2,`0`),o=`#${part(e)}${part(t)}${part(r)}`;return a?o+part(i*255):o}function toRgbString({r:e,g:t,b:r,a:i},a){let n=e=>clamp(Math.round(e),0,255),o=`${n(e)} ${n(t)} ${n(r)}`;return a?`rgb(${o} / ${round(i,2)})`:`rgb(${o})`}function toHslString(e,t){let{h:r,s:i,l:a}=hsvToHsl(e),o=`${Math.round(r)} ${Math.round(i)}% ${Math.round(a)}%`;return t?`hsl(${o} / ${round(e.a,2)})`:`hsl(${o})`}function round(e,t){let r=10**t;return Math.round(e*r)/r}function rgbToHsv({r:e,g:t,b:r,a:i}){let a=e/255,o=t/255,s=r/255,c=Math.max(a,o,s),l=c-Math.min(a,o,s),u=0;return l!==0&&(u=c===a?(o-s)/l%6:c===o?(s-a)/l+2:(a-o)/l+4,u*=60,u<0&&(u+=360)),{h:u,s:c===0?0:l/c*100,v:c*100,a:i}}function hsvToRgb({h:e,s:t,v:r,a:i}){let a=clamp(t,0,100)/100,o=clamp(r,0,100)/100,s=(e%360+360)%360,c=o*a,l=c*(1-Math.abs(s/60%2-1)),u=o-c,d=0,f=0,p=0;return s<60?[d,f,p]=[c,l,0]:s<120?[d,f,p]=[l,c,0]:s<180?[d,f,p]=[0,c,l]:s<240?[d,f,p]=[0,l,c]:s<300?[d,f,p]=[l,0,c]:[d,f,p]=[c,0,l],{r:(d+u)*255,g:(f+u)*255,b:(p+u)*255,a:i}}function hsvToHsl({h:e,s:t,v:r,a:i}){let a=clamp(t,0,100)/100,o=clamp(r,0,100)/100,s=o*(1-a/2);return{h:e,s:(s===0||s===1?0:(o-s)/Math.min(s,1-s))*100,l:s*100,a:i}}function formatColor(e,t,r){return t===`rgb`?toRgbString(hsvToRgb(e),r):t===`hsl`?toHslString(e,r):toHex(hsvToRgb(e),r)}function parseColor(e){let t=e.trim(),r=/^rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)(?:\s*[/,]\s*([\d.%]+))?\s*\)$/i.exec(t);if(r)return rgbToHsv({r:Number(r[1]),g:Number(r[2]),b:Number(r[3]),a:parseAlpha(r[4])});let i=/^hsla?\(\s*([\d.]+)(?:deg)?[\s,]+([\d.]+)%[\s,]+([\d.]+)%(?:\s*[/,]\s*([\d.%]+))?\s*\)$/i.exec(t);if(i)return hslToHsv(Number(i[1]),Number(i[2]),Number(i[3]),parseAlpha(i[4]));let a=parseHex(t);return a?rgbToHsv(a):null}function parseAlpha(e){if(e===void 0)return 1;let t=e.endsWith(`%`)?Number(e.slice(0,-1))/100:Number(e);return Number.isNaN(t)?1:clamp(t,0,1)}function hslToHsv(e,t,r,i){let a=clamp(t,0,100)/100,o=clamp(r,0,100)/100,s=o+a*Math.min(o,1-o);return{h:e,s:s===0?0:2*(1-o/s)*100,v:s*100,a:i}}function sameColor(e,t){let r=parseColor(e),i=parseColor(t);if(!r||!i)return!1;let a=hsvToRgb(r),o=hsvToRgb(i);return Math.round(a.r)===Math.round(o.r)&&Math.round(a.g)===Math.round(o.g)&&Math.round(a.b)===Math.round(o.b)&&Math.round(a.a*255)===Math.round(o.a*255)}export{clamp,formatColor,hsvToRgb,parseColor,sameColor,toHex};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{activeForValue as e,firstActive as t,lastActive as n,moveActive as r,pageActive as i}from"./list-nav.js";import{filterOptions as a,groupOptions as ee,highlightSegments as te,isNewLabel as o,orderByGroup as s,typeaheadIndex as ne}from"./option-list.js";import c from"./combobox.module.js";import{useId as re,useRef as l}from"react";import{DismissableLayer as ie,cn as u,focusElement as d,useControllableSignal as f,useSignal as p,useSignalEffect as ae,useSignals as oe,useTypeahead as se}from"@cascivo/core";import{builtin as m,t as h}from"@cascivo/i18n";import{jsx as g,jsxs as _}from"react/jsx-runtime";function
|
|
1
|
+
"use client";import{activeForValue as e,firstActive as t,lastActive as n,moveActive as r,pageActive as i}from"./list-nav.js";import{filterOptions as a,groupOptions as ee,highlightSegments as te,isNewLabel as o,orderByGroup as s,typeaheadIndex as ne}from"./option-list.js";import c from"./combobox.module.js";import{useId as re,useRef as l}from"react";import{DismissableLayer as ie,cn as u,focusElement as d,useControllableSignal as f,useSignal as p,useSignalEffect as ae,useSignals as oe,useTypeahead as se}from"@cascivo/core";import{builtin as m,t as h}from"@cascivo/i18n";import{jsx as g,jsxs as _}from"react/jsx-runtime";function mergeDescribedBy(...e){return e.filter(Boolean).join(` `)||void 0}function Combobox({options:v,value:ce,defaultValue:y,onValueChange:le,clearable:ue=!1,searchable:b=!0,label:x,ariaLabel:S,hint:C,error:w,size:de=`md`,disabled:T=!1,loading:E=!1,onSearchChange:D,filter:O,creatable:k=!1,onCreate:fe,name:A,required:pe,open:me,defaultOpen:he,onOpenChange:ge,labels:j,className:_e,id:ve,"aria-labelledby":M,"aria-describedby":N,"aria-invalid":P}){oe();let F=re(),I=ve??`cascade-combobox-${F}`,L=`${F}-listbox`,ye=`${F}-status`,optionId=e=>`${F}-option-${e}`,R=l(null),z=l(null),[be,B]=f({value:ce,defaultValue:y,onChange:le}),[V,H]=f({value:me,defaultValue:he??!1,onChange:ge}),U=p(``),W=p(-1),G=V.value,K=be.value,q=U.value,J=s(a(v,b?q:``,O)),Y=k&&q.trim()!==``&&o(v,q.trim()),X=Y?J.length:-1,xe=ee(J),Z=v.find(e=>e.value===K),Q=j?.placeholder??h(m.combobox.placeholder),Se=j?.empty??h(m.combobox.empty),Ce=j?.clear??h(m.combobox.clear),we=j?.loading??h(m.combobox.loading),createLabel=e=>j?.create?j.create.replaceAll(`{label}`,e):h(m.combobox.create,{label:e}),Te=mergeDescribedBy(w?`${F}-error`:C?`${F}-hint`:void 0,N);function openList(t=`value`){T||(W.value=t===`value`?e(J,K):-1,H(!0))}function closeList(e=!0){H(!1),U.value=``,W.value=-1,e&&d(R.current)}function select(e){B(e),closeList()}function clear(){B(void 0),U.value=``,D?.(``),d(R.current)}function activate(e){if(e===X&&Y){fe?.(q.trim()),closeList();return}let t=J[e];t&&!t.disabled&&select(t.value)}let Ee=se({onMatch:e=>{let t=G?J:v,n=ne(t,e,G?W.value:-1);if(n!==-1)if(G)W.value=n;else{let e=t[n];e&&B(e.value)}}});ae(()=>{let e=W.value;if(!V.value||e<0)return;let t=z.current?.querySelector(`#${CSS.escape(optionId(e))}`);t&&typeof t.scrollIntoView==`function`&&t.scrollIntoView({block:`nearest`})});function handleKeyDown(e){if(T)return;let a=Y?[...J,{value:``,label:q}]:J;if(e.altKey&&e.key===`ArrowDown`){e.preventDefault(),G||openList(`none`);return}if(e.altKey&&e.key===`ArrowUp`){e.preventDefault(),G&&closeList();return}switch(e.key){case`ArrowDown`:e.preventDefault(),G?W.value=r(W.value,1,a):openList();break;case`ArrowUp`:e.preventDefault(),G?W.value=r(W.value,-1,a):openList();break;case`Home`:if(b||!G)break;e.preventDefault(),W.value=t(a);break;case`End`:if(b||!G)break;e.preventDefault(),W.value=n(a);break;case`PageDown`:if(!G)break;e.preventDefault(),W.value=i(W.value,1,a);break;case`PageUp`:if(!G)break;e.preventDefault(),W.value=i(W.value,-1,a);break;case`Enter`:if(!G)break;e.preventDefault(),W.value>=0&&activate(W.value);break;case` `:if(b)break;e.preventDefault(),G&&W.value>=0?activate(W.value):openList();break;case`Escape`:if(!G)break;e.preventDefault(),e.stopPropagation(),closeList();break;case`Tab`:G&&closeList(!1);break}!b&&e.key!==` `&&Ee.onKeyDown(e)}function renderOption(e,t){let n=e.value===K;return _(`div`,{id:optionId(t),role:`option`,"aria-selected":n,"aria-disabled":e.disabled||void 0,"data-state":t===W.value?`active`:void 0,"data-disabled":e.disabled||void 0,className:c.option,onMouseDown:e=>e.preventDefault(),onClick:()=>{e.disabled||select(e.value)},onMouseEnter:()=>{e.disabled||(W.value=t)},children:[g(`span`,{className:c.optionLabel,children:te(e.label,b?q:``).map((e,t)=>e.match?g(`mark`,{className:c.match,children:e.text},t):g(`span`,{children:e.text},t))}),g(`span`,{className:c.check,"aria-hidden":`true`})]},e.value)}let $={id:I,role:`combobox`,"aria-expanded":G,"aria-controls":L,"aria-haspopup":`listbox`,"aria-activedescendant":G&&W.value>=0?optionId(W.value):void 0,"aria-labelledby":M,"aria-label":S,"aria-invalid":w?!0:P,"aria-describedby":Te,"aria-required":pe||void 0,disabled:T,onKeyDown:handleKeyDown};return g(ie,{onDismiss:()=>G&&closeList(!1),children:_(`div`,{className:u(c.wrapper,_e),"data-state":w?`error`:G?`open`:`closed`,"data-size":de,children:[x&&g(`label`,{className:c.label,htmlFor:I,children:x}),_(`div`,{className:c.field,children:[b?g(`input`,{...$,ref:R,type:`text`,className:c.trigger,autoComplete:`off`,"aria-autocomplete":`list`,placeholder:Q,value:G?q:Z?.label??``,onChange:e=>{let n=e.currentTarget.value;U.value=n,D?.(n),G||H(!0);let r=s(a(v,n,O)),i=t(r);W.value=i===-1&&k&&n.trim()!==``&&o(v,n.trim())?r.length:i},onClick:()=>{G||openList()}}):g(`button`,{...$,ref:R,type:`button`,className:c.trigger,onClick:()=>G?closeList():openList(),children:g(`span`,{className:u(c.value,Z?void 0:c.placeholder),children:Z?.label??Q})}),ue&&K!==void 0&&!T&&g(`button`,{type:`button`,className:c.clear,"aria-label":Ce,onClick:e=>{e.stopPropagation(),clear()},children:g(`span`,{className:c.clearGlyph,"aria-hidden":`true`})}),g(`span`,{className:c.chevron,"aria-hidden":`true`})]}),A!==void 0&&g(`input`,{type:`hidden`,name:A,value:K??``}),_(`div`,{className:c.popup,"data-state":G?`open`:`closed`,children:[_(`div`,{ref:z,role:`listbox`,id:L,className:c.listbox,"aria-label":S??x??Q,"aria-busy":E||void 0,children:[xe.map(e=>e.label===void 0?e.entries.map(({option:e,index:t})=>renderOption(e,t)):_(`div`,{role:`group`,"aria-label":e.label,className:c.group,children:[g(`span`,{className:c.groupLabel,"aria-hidden":`true`,children:e.label}),e.entries.map(({option:e,index:t})=>renderOption(e,t))]},e.label)),Y&&g(`div`,{id:optionId(X),role:`option`,"aria-selected":!1,"data-state":X===W.value?`active`:void 0,className:u(c.option,c.create),onMouseDown:e=>e.preventDefault(),onClick:()=>activate(X),onMouseEnter:()=>{W.value=X},children:createLabel(q.trim())})]}),E?g(`div`,{className:c.empty,role:`status`,children:we}):J.length===0&&!Y?g(`div`,{className:c.empty,role:`status`,children:Se}):null]}),g(`span`,{id:ye,className:c.srOnly,role:`status`,"aria-live":`polite`,children:G&&!E?h(m.combobox.resultCount,{count:String(J.length)}):``}),w&&g(`span`,{id:`${F}-error`,className:c.error,role:`alert`,children:w}),!w&&C&&g(`span`,{id:`${F}-hint`,className:c.hint,children:C})]})})}export{Combobox};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
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 activeForValue(e,t){if(t!==void 0){let n=e.findIndex(e=>e.value===t&&!e.disabled);if(n!==-1)return n}return firstActive(e)}export{activeForValue,firstActive,lastActive,moveActive,pageActive};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
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)}function typeaheadIndex(e,t,n){let r=fold(t).join(``);if(r===``||e.length===0)return-1;let i=e.map((t,r)=>(n+1+r)%e.length),a=i.find(t=>{let n=e[t];return n&&!n.disabled&&fold(n.label).join(``).startsWith(r)});return a===void 0?i.find(t=>{let n=e[t];return n&&!n.disabled&&fold(n.label).join(``).includes(r)})??-1:a}export{filterOptions,groupOptions,highlightSegments,isNewLabel,orderByGroup,typeaheadIndex};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{Spinner as e}from"../spinner/spinner.js";import{Kbd as t}from"../kbd/kbd.js";import n from"./command-menu.module.js";import{useId as r,useRef as i}from"react";import{batch as a,cn as o,focusElement as s,useEffectPropSignal as c,useSignal as l,useSignalEffect as u,useSignals as d}from"@cascivo/core";import{builtin as f,t as p}from"@cascivo/i18n";import{jsx as m,jsxs as h}from"react/jsx-runtime";function
|
|
1
|
+
"use client";import{Spinner as e}from"../spinner/spinner.js";import{Kbd as t}from"../kbd/kbd.js";import n from"./command-menu.module.js";import{useId as r,useRef as i}from"react";import{batch as a,cn as o,focusElement as s,useEffectPropSignal as c,useSignal as l,useSignalEffect as u,useSignals as d}from"@cascivo/core";import{builtin as f,t as p}from"@cascivo/i18n";import{jsx as m,jsxs as h}from"react/jsx-runtime";function fuzzyMatch(e,t){if(e.length===0)return{score:1,indices:[]};let n=e.toLowerCase(),r=t.toLowerCase(),i=0,a=0,o=-2,s=[];for(let e=0;e<r.length&&a<n.length;e++){if(r[e]!==n[a])continue;i+=1,e===o+1&&(i+=4);let t=e===0?` `:r[e-1];(t===` `||t===`-`||t===`_`||t===`/`)&&(i+=8),o=e,s.push(e),a++}return a===n.length?{score:i,indices:s}:null}function fuzzyScore(e,t){return fuzzyMatch(e,t)?.score??0}function itemScore(e,t){let n=fuzzyScore(e,t.label);for(let r of t.keywords??[]){let t=fuzzyScore(e,r);t>n&&(n=t)}return n}function highlightLabel(e,t){if(t.length===0)return e;let r=new Set(t),i=[],a=``,o=r.has(0),flush=e=>{a!==``&&(i.push(o?m(`mark`,{className:n.match,children:a},e):a),a=``)};for(let t=0;t<e.length;t++){let n=r.has(t);n!==o&&(flush(t),o=n),a+=e[t]}return flush(e.length),i}function matchScopePrefix(e,t){for(let n of t){let t=n.prefix;if(t){if(e.startsWith(`${t} `)||e.startsWith(`${t}:`))return{scope:n,rest:e.slice(t.length+1).replace(/^\s+/,``)};if(!/\w/.test(t)&&e.startsWith(t))return{scope:n,rest:e.slice(t.length).replace(/^\s+/,``)}}}return null}function CommandMenu({open:g,onOpenChange:_,groups:v,placeholder:y,emptyLabel:b,hotkey:x=!0,label:S,ariaLabel:C,loading:w=!1,onQueryChange:T,scopes:E=[],className:D}){d();let O=C??S??p(f.commandMenu.label),k=b??p(f.commandMenu.empty),A=r(),j=`${A}-listbox`,M=i(null),N=i(null),P=i([]),F=i(_);F.current=_;let I=i(T);I.current=T;let L=c(g),R=c(x),z=l(``),B=l(0),V=l([]),H=l(null),U=V.value.at(-1)?.groups??v,W=y??V.value.at(-1)?.placeholder??p(f.commandMenu.placeholder),G=E.find(e=>e.id===H.value)??null,K=U.filter(e=>!H.value||!e.scope||e.scope===H.value).map(e=>({heading:e.heading,items:e.items.map(e=>({item:e,score:itemScore(z.value,e)})).filter(({score:e})=>e>0).sort((e,t)=>t.score-e.score).map(({item:e})=>({item:e,indices:fuzzyMatch(z.value,e.label)?.indices??[]}))})).filter(e=>e.items.length>0),q=K.flatMap(e=>e.items.map(e=>e.item)),J=q.flatMap((e,t)=>e.disabled?[]:[t]),Y=J.includes(B.value)?B.value:J[0]??-1,optionId=e=>`${A}-option-${e}`;u(()=>{let e=M.current;e&&(L.value?e.open||(a(()=>{z.value=``,B.value=0,V.value=[],H.value=null}),typeof e.showModal==`function`&&e.showModal(),s(N.current)):e.open&&(V.value=[],e.close()))}),u(()=>{let e=M.current;if(!e)return;let handler=()=>F.current(!1);return e.addEventListener(`close`,handler),()=>e.removeEventListener(`close`,handler)}),u(()=>{if(!R.value)return;let handler=e=>{(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`k`&&(e.preventDefault(),F.current(!L.value))};return window.addEventListener(`keydown`,handler),()=>window.removeEventListener(`keydown`,handler)});let setActive=e=>{B.value=e;let t=P.current[e];t&&typeof t.scrollIntoView==`function`&&t.scrollIntoView({block:`nearest`})},moveActive=e=>{if(J.length===0)return;let t=J[(J.indexOf(Y)+e+J.length)%J.length];t!==void 0&&setActive(t)},runAction=e=>{e.onSelect(),_(!1)},activateItem=(e,t)=>{if(!(!e||e.disabled)){if(e.page){if(t===`secondary`)return;a(()=>{V.value=[...V.value,e.page],z.value=``,B.value=0});return}if(e.actions&&e.actions.length>0){let n=t===`secondary`?e.actions[1]:e.actions[0];n&&runAction(n);return}t!==`secondary`&&(e.onSelect?.(),_(!1))}},cycleScope=e=>{if(E.length===0)return;let t=[null,...E.map(e=>e.id)],n=t[(t.indexOf(H.value)+e+t.length)%t.length];a(()=>{H.value=n??null,B.value=0})},clearScope=()=>{a(()=>{H.value=null,B.value=0}),s(N.current)},popPage=()=>{a(()=>{V.value=V.value.slice(0,-1),z.value=``,B.value=0})},handleInputKeyDown=e=>{switch(e.key){case`ArrowDown`:e.preventDefault(),moveActive(1);break;case`ArrowUp`:e.preventDefault(),moveActive(-1);break;case`Tab`:E.length>0&&(e.preventDefault(),cycleScope(e.shiftKey?-1:1));break;case`Home`:e.preventDefault(),J[0]!==void 0&&setActive(J[0]);break;case`End`:{e.preventDefault();let t=J[J.length-1];t!==void 0&&setActive(t);break}case`Enter`:e.preventDefault(),Y>=0&&activateItem(q[Y],e.metaKey||e.ctrlKey?`secondary`:`primary`);break;case`Backspace`:z.value===``&&(V.value.length>0?(e.preventDefault(),popPage()):H.value&&(e.preventDefault(),clearScope()));break}},handleDialogKeyDown=e=>{e.key===`Escape`&&(e.preventDefault(),V.value.length>0?popPage():M.current?.close())},handleBackdropClick=e=>{e.target===M.current&&M.current?.close()},X=-1;return m(`dialog`,{ref:M,"aria-label":O,className:o(n.dialog,D),onClick:handleBackdropClick,onKeyDown:handleDialogKeyDown,children:h(`div`,{className:n.panel,children:[h(`div`,{className:n.search,children:[h(`svg`,{className:n.searchIcon,"aria-hidden":`true`,viewBox:`0 0 16 16`,width:`16`,height:`16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,children:[m(`circle`,{cx:`7`,cy:`7`,r:`4.5`}),m(`line`,{x1:`10.5`,y1:`10.5`,x2:`14`,y2:`14`})]}),G&&h(`span`,{className:n.scopeChip,children:[G.label,m(`button`,{type:`button`,className:n.scopeClear,"aria-label":p(f.commandMenu.clearScope),onClick:clearScope,children:m(`svg`,{viewBox:`0 0 16 16`,width:`12`,height:`12`,"aria-hidden":`true`,children:m(`path`,{d:`M4 4l8 8M12 4l-8 8`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`})})})]}),m(`input`,{ref:N,type:`text`,role:`combobox`,"aria-expanded":`true`,"aria-controls":j,"aria-activedescendant":Y>=0?optionId(Y):void 0,"aria-autocomplete":`list`,"aria-label":O,autoComplete:`off`,spellCheck:!1,className:n.input,placeholder:W,value:z.value,onChange:e=>{let t=e.target.value;if(!H.value&&E.length>0){let e=matchScopePrefix(t,E);e&&(H.value=e.scope.id,t=e.rest)}z.value=t,B.value=0,I.current?.(t)},onKeyDown:handleInputKeyDown})]}),E.length>0&&h(`div`,{className:n.scopes,children:[m(`span`,{className:n.scopesLabel,children:p(f.commandMenu.scopeLabel)}),E.map(e=>h(`button`,{type:`button`,className:n.scopePill,"data-active":e.id===H.value||void 0,onClick:()=>{a(()=>{H.value=H.value===e.id?null:e.id,B.value=0}),s(N.current)},children:[e.prefix&&m(`span`,{className:n.scopePrefix,children:e.prefix}),e.label]},e.id))]}),h(`div`,{className:n.list,children:[m(`div`,{role:`listbox`,id:j,"aria-label":S,tabIndex:0,children:K.map((e,r)=>h(`div`,{role:`group`,"aria-label":e.heading,className:n.group,children:[e.heading&&h(`div`,{className:n.heading,"aria-hidden":`true`,children:[m(`span`,{children:e.heading}),z.value!==``&&m(`span`,{className:n.count,children:p(f.commandMenu.matches,{count:e.items.length})})]}),e.items.map(e=>{let{item:r,indices:i}=e;X++;let a=X;return h(`div`,{ref:e=>{P.current[a]=e},id:optionId(a),role:`option`,"aria-selected":a===Y,"aria-disabled":r.disabled||void 0,"data-state":a===Y?`active`:void 0,"data-disabled":r.disabled||void 0,className:n.option,onMouseEnter:()=>{r.disabled||(B.value=a)},onClick:()=>activateItem(r,`primary`),children:[r.icon&&m(`span`,{className:n.icon,"aria-hidden":`true`,children:r.icon}),h(`span`,{className:n.text,children:[m(`span`,{className:n.label,children:highlightLabel(r.label,i)}),r.description&&m(`span`,{className:n.description,children:r.description})]}),r.status&&h(`span`,{className:n.status,"data-tone":r.status.tone??`neutral`,children:[m(`span`,{className:n.statusDot,"aria-hidden":`true`}),r.status.label]}),r.actions&&r.actions.length>0&&m(`span`,{className:n.actions,children:r.actions.map(e=>h(`span`,{className:n.action,onClick:t=>{t.stopPropagation(),runAction(e)},children:[e.label,e.shortcut&&m(`span`,{className:n.actionKeys,"aria-hidden":`true`,children:e.shortcut.map((e,n)=>m(t,{size:`sm`,children:e},n))})]},e.id))}),r.shortcut&&m(`span`,{className:n.shortcut,"aria-hidden":`true`,children:r.shortcut.map((e,n)=>m(t,{size:`sm`,children:e},n))})]},r.id)})]},e.heading??`group-${r}`))}),q.length===0&&(w?h(`div`,{role:`status`,className:n.empty,children:[m(e,{size:`sm`}),p(f.commandMenu.loading)]}):m(`div`,{role:`status`,className:n.empty,children:k}))]}),h(`div`,{className:n.footer,"aria-hidden":`true`,children:[h(`span`,{className:n.hint,children:[m(t,{size:`sm`,children:`↑`}),m(t,{size:`sm`,children:`↓`}),` navigate`]}),h(`span`,{className:n.hint,children:[m(t,{size:`sm`,children:`↵`}),` open`]}),E.length>0&&h(`span`,{className:n.hint,children:[m(t,{size:`sm`,children:`Tab`}),` scope`]}),h(`span`,{className:n.hint,children:[m(t,{size:`sm`,children:`esc`}),` close`]})]})]})})}export{CommandMenu,fuzzyMatch,fuzzyScore};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./comparison.module.js";import{useRef as t}from"react";import{cn as n,useControllableSignal as r,useSignal as i,useSignals 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";var
|
|
1
|
+
"use client";import e from"./comparison.module.js";import{useRef as t}from"react";import{cn as n,useControllableSignal as r,useSignal as i,useSignals 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";var clamp=e=>Math.min(100,Math.max(0,e));function Comparison({after:u,before:d,position:f,defaultPosition:p=50,onPositionChange:m,orientation:h=`horizontal`,keyboardStep:g=5,label:_,ariaLabel:v,className:y,...b}){a();let x=t(null),S=i(!1),[C,w]=r({value:f,defaultValue:p,onChange:m}),T=Math.round(clamp(C.value)),updateFromPointer=e=>{let t=x.current;if(!t)return;let n=t.getBoundingClientRect();w(clamp(h===`vertical`?(e.clientY-n.top)/n.height*100:(e.clientX-n.left)/n.width*100))},onKeyDown=e=>{let t=h===`vertical`?`ArrowUp`:`ArrowLeft`,n=h===`vertical`?`ArrowDown`:`ArrowRight`,r=null;e.key===t||e.key===`ArrowLeft`||e.key===`ArrowUp`?r=T-g:e.key===n||e.key===`ArrowRight`||e.key===`ArrowDown`?r=T+g:e.key===`Home`?r=0:e.key===`End`?r=100:e.key===`PageUp`?r=T+g*2:e.key===`PageDown`&&(r=T-g*2),r!==null&&(e.preventDefault(),w(clamp(r)))};return l(`div`,{ref:x,"data-orientation":h,"data-dragging":S.value||void 0,className:n(e.comparison,y),style:{"--position":`${T}%`},onPointerDown:e=>{S.value=!0,e.currentTarget.setPointerCapture?.(e.pointerId),updateFromPointer(e)},onPointerMove:e=>{S.value&&updateFromPointer(e)},onPointerUp:e=>{S.value=!1,e.currentTarget.releasePointerCapture?.(e.pointerId)},...b,children:[c(`div`,{className:e.item,children:u}),c(`div`,{className:e.before,"aria-hidden":`true`,children:d}),c(`div`,{className:e.divider,children:c(`div`,{role:`slider`,tabIndex:0,"aria-label":v??_??s(o.comparison.label),"aria-orientation":h,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":T,className:e.handle,onKeyDown})})]})}export{Comparison};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./contained-list.module.js";import{Slot as t,cn as n}from"@cascivo/core";import{jsx as r,jsxs as i}from"react/jsx-runtime";function
|
|
1
|
+
"use client";import e from"./contained-list.module.js";import{Slot as t,cn as n}from"@cascivo/core";import{jsx as r,jsxs as i}from"react/jsx-runtime";function ContainedList({label:t,kind:a=`on-page`,action:o,className:s,children:c,...l}){return i(`div`,{"data-kind":a,className:n(e.root,s),...l,children:[i(`div`,{className:e.header,children:[r(`h3`,{className:e.label,children:t}),o?r(`div`,{className:e.action,children:o}):null]}),r(`ul`,{className:e.list,children:c})]})}function ContainedListItem({asChild:i=!1,onClick:a,className:o,children:s,...c}){let l=i||typeof a==`function`,u=i?t:`div`;return r(`li`,{className:e.item,"data-interactive":l?``:void 0,children:r(u,{className:n(e.itemContent,o),onClick:a,...c,children:s})})}export{ContainedList,ContainedListItem};
|