@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
|
-
import e from"./indicator.module.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";function
|
|
1
|
+
import e from"./indicator.module.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";function Indicator({children:r,overlay:i,placement:a=`top-end`,className:o}){return n(`div`,{className:[e.indicator,o].filter(Boolean).join(` `),"data-placement":a,children:[r,t(`div`,{className:e.overlay,"aria-hidden":!0,children:i})]})}export{Indicator};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{Spinner as e}from"../spinner/spinner.js";import t from"./infinite-scroll.module.js";import{useRef as n}from"react";import{cn as r,useSignal as i,useSignalEffect as a,useSignals as o}from"@cascivo/core";import{builtin as s,t as c}from"@cascivo/i18n";import{jsx as l,jsxs as u}from"react/jsx-runtime";function
|
|
1
|
+
"use client";import{Spinner as e}from"../spinner/spinner.js";import t from"./infinite-scroll.module.js";import{useRef as n}from"react";import{cn as r,useSignal as i,useSignalEffect as a,useSignals as o}from"@cascivo/core";import{builtin as s,t as c}from"@cascivo/i18n";import{jsx as l,jsxs as u}from"react/jsx-runtime";function InfiniteScroll({onLoadMore:d,disabled:f=!1,rootMargin:p=`200px`,labels:m,className:h}){o();let g=n(null),_=i(!1),v=n(d);v.current=d;let y=n(f);y.current=f;let load=()=>{_.value||y.current||(_.value=!0,Promise.resolve(v.current()).then(()=>{_.value=!1},()=>{_.value=!1}))},b=n(load);return b.current=load,a(()=>{let e=g.current;if(!e||f||typeof IntersectionObserver>`u`)return;let t=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&b.current()},{rootMargin:p});return t.observe(e),()=>t.disconnect()}),f?null:l(`div`,{ref:g,className:r(t.root,h),children:_.value?u(`span`,{className:t.status,role:`status`,children:[l(e,{size:`sm`,"aria-hidden":`true`}),m?.loading??c(s.infiniteScroll.loading)]}):l(`button`,{type:`button`,className:t.button,onClick:load,children:m?.loadMore??c(s.infiniteScroll.loadMore)})})}export{InfiniteScroll};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Spinner as e}from"../spinner/spinner.js";import t from"./inline-loading.module.js";import{cn as n}from"@cascivo/core/pure";import{builtin as r,t as i}from"@cascivo/i18n";import{jsx as a,jsxs as o}from"react/jsx-runtime";function
|
|
1
|
+
import{Spinner as e}from"../spinner/spinner.js";import t from"./inline-loading.module.js";import{cn as n}from"@cascivo/core/pure";import{builtin as r,t as i}from"@cascivo/i18n";import{jsx as a,jsxs as o}from"react/jsx-runtime";function defaultLabel(e,t){switch(e){case`active`:return t?.active??i(r.inlineLoading.active);case`finished`:return t?.finished??i(r.inlineLoading.finished);case`error`:return t?.error??i(r.inlineLoading.error);default:return``}}function StatusIcon({status:n}){return n===`active`?a(e,{size:`sm`,className:t.spinner}):n===`finished`?a(`svg`,{className:t.icon,viewBox:`0 0 16 16`,width:`16`,height:`16`,fill:`none`,"aria-hidden":`true`,children:a(`path`,{d:`M3.5 8.5l3 3 6-7`,stroke:`currentColor`,strokeWidth:`1.75`,strokeLinecap:`round`,strokeLinejoin:`round`})}):n===`error`?o(`svg`,{className:t.icon,viewBox:`0 0 16 16`,width:`16`,height:`16`,fill:`none`,"aria-hidden":`true`,children:[a(`path`,{d:`M8 4.5v4M8 11h.01`,stroke:`currentColor`,strokeWidth:`1.75`,strokeLinecap:`round`,strokeLinejoin:`round`}),a(`circle`,{cx:`8`,cy:`8`,r:`6.25`,stroke:`currentColor`,strokeWidth:`1.5`})]}):null}function InlineLoading({status:e,label:r,labels:i,className:s,...c}){let l=r??defaultLabel(e,i);return o(`div`,{role:`status`,"aria-live":`polite`,"data-status":e,className:n(t[`inline-loading`],s),...c,children:[a(`span`,{className:t.indicator,"aria-hidden":`true`,children:a(StatusIcon,{status:e})}),l&&a(`span`,{className:t.label,children:l})]})}export{InlineLoading};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"./input-group.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";function
|
|
1
|
+
import e from"./input-group.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";function InputGroupAddon({align:r=`inline-start`,children:i,className:a,...o}){return n(`span`,{className:t(e[`inline-addon`],a),"data-align":r,"aria-hidden":`true`,...o,children:i})}function InputGroup({prefix:i,suffix:a,children:o,className:s,...c}){return r(`div`,{className:t(e[`input-group`],s),"data-has-prefix":i?``:void 0,"data-has-suffix":a?``:void 0,...c,children:[i&&n(`span`,{className:e.addon,"data-position":`prefix`,children:i}),n(`span`,{className:e[`input-wrap`],children:o}),a&&n(`span`,{className:e.addon,"data-position":`suffix`,children:a})]})}export{InputGroup,InputGroupAddon};
|
package/dist/item/item.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"./item.module.js";import{Slot as t,cn as n}from"@cascivo/core/pure";import{jsx as r}from"react/jsx-runtime";function
|
|
1
|
+
import e from"./item.module.js";import{Slot as t,cn as n}from"@cascivo/core/pure";import{jsx as r}from"react/jsx-runtime";function Item({asChild:i=!1,variant:a=`default`,size:o=`md`,className:s,children:c,...l}){return r(i?t:`div`,{"data-variant":a,"data-size":o,className:n(e.item,s),...l,children:c})}function ItemMedia({className:t,children:i,...a}){return r(`div`,{className:n(e.media,t),...a,children:i})}function ItemContent({className:t,children:i,...a}){return r(`div`,{className:n(e.content,t),...a,children:i})}function ItemTitle({className:t,children:i,...a}){return r(`div`,{className:n(e.title,t),...a,children:i})}function ItemDescription({className:t,children:i,...a}){return r(`p`,{className:n(e.description,t),...a,children:i})}function ItemActions({className:t,children:i,...a}){return r(`div`,{className:n(e.actions,t),...a,children:i})}export{Item,ItemActions,ItemContent,ItemDescription,ItemMedia,ItemTitle};
|
package/dist/join/join.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"./join.module.js";import{jsx as t}from"react/jsx-runtime";function
|
|
1
|
+
import e from"./join.module.js";import{jsx as t}from"react/jsx-runtime";function Join({children:n,orientation:r=`horizontal`,className:i}){return t(`div`,{className:[e.join,i].filter(Boolean).join(` `),"data-orientation":r,children:n})}export{Join};
|
package/dist/kbd/kbd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"./kbd.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function
|
|
1
|
+
import e from"./kbd.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function Kbd({size:r=`md`,className:i,children:a,...o}){return n(`kbd`,{"data-size":r,className:t(e.kbd,i),...o,children:a})}export{Kbd};
|
package/dist/label/label.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"./label.module.js";import{Slot as t,cn as n}from"@cascivo/core/pure";import{builtin as r,t as i}from"@cascivo/i18n";import{Fragment as a,jsx as o,jsxs as s}from"react/jsx-runtime";function
|
|
1
|
+
import e from"./label.module.js";import{Slot as t,cn as n}from"@cascivo/core/pure";import{builtin as r,t as i}from"@cascivo/i18n";import{Fragment as a,jsx as o,jsxs as s}from"react/jsx-runtime";function Label({asChild:c=!1,required:l=!1,disabled:u=!1,className:d,children:f,labels:p,...m}){let h=c?t:`label`,g=p?.required??i(r.label.required),_=l?s(a,{children:[o(`span`,{className:e.marker,"aria-hidden":`true`,children:`*`}),o(`span`,{className:e.srOnly,children:g})]}):null;return o(h,{"data-disabled":u?``:void 0,className:n(e.label,d),...m,children:_?s(a,{children:[f,_]}):f})}export{Label};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"./large-title-header.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";function
|
|
1
|
+
import e from"./large-title-header.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";function LargeTitleHeader({title:i,children:a,leading:o,actions:s,level:c=1,collapseDistance:l=48,className:u}){let d=`h${c}`,f={"--_collapse":`${l}px`};return r(`div`,{className:t(e.root,u),style:f,children:[r(`div`,{className:e.bar,children:[n(`div`,{className:e.slot,children:o}),n(`span`,{"aria-hidden":`true`,className:e.compactTitle,children:i}),n(`div`,{className:t(e.slot,e.slotEnd),children:s})]}),n(d,{className:e.largeTitle,children:i}),a]})}export{LargeTitleHeader};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"./auto-grid.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function
|
|
1
|
+
import e from"./auto-grid.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function AutoGrid({min:r=`16rem`,gap:i=4,className:a,style:o,...s}){return n(`div`,{className:t(e[`auto-grid`],a),style:{"--_min":r,"--_gap":`var(--cascivo-space-${i})`,...o},...s})}export{AutoGrid};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"./center.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function
|
|
1
|
+
import e from"./center.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function Center({maxWidth:r=`48rem`,className:i,style:a,...o}){return n(`div`,{className:t(e.center,i),style:{"--_center-max":r,...a},...o})}export{Center};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"./columns.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function
|
|
1
|
+
import e from"./columns.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function Columns({count:r=2,gap:i=4,className:a,style:o,children:s,...c}){return n(`div`,{className:t(e[`columns-container`],a),style:{"--_cols":String(r),"--_gap":`var(--cascivo-space-${i})`,...o},...c,children:n(`div`,{className:e.columns,children:s})})}export{Columns};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer cascivo.component{.
|
|
1
|
+
@layer cascivo.component{._flex_39htm_2{gap:var(--_flex-gap,var(--cascivo-space-4));display:flex}._flex_39htm_2[data-direction=vertical]{flex-direction:column}._flex_39htm_2[data-direction=horizontal]{flex-direction:row}._flex_39htm_2[data-wrap]{flex-wrap:wrap}._flex-item_39htm_19[data-size=auto]{flex:auto}._flex-item_39htm_19[data-size=fixed]{flex:none}._flex-item_39htm_19[data-size=grow]{flex:1 0 auto}._flex-item_39htm_19[data-size=shrink]{flex:0 auto}._flex-item_39htm_19[data-truncate]{text-overflow:ellipsis;min-inline-size:0;overflow:hidden}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"./flex.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function
|
|
1
|
+
import e from"./flex.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function Flex({direction:r=`vertical`,gap:i=4,align:a,justify:o,wrap:s=!1,className:c,style:l,...u}){return n(`div`,{className:t(e.flex,c),"data-direction":r,"data-wrap":s?``:void 0,style:{"--_flex-gap":`var(--cascivo-space-${i})`,...a?{alignItems:a===`start`||a===`end`?`flex-${a}`:a}:{},...o?{justifyContent:o===`between`?`space-between`:o===`start`||o===`end`?`flex-${o}`:o}:{},...l},...u})}function FlexItem({size:r=`auto`,basis:i,truncate:a=!1,className:o,style:s,...c}){return n(`div`,{className:t(e[`flex-item`],o),"data-size":r,"data-truncate":a?``:void 0,style:{...i===void 0?{}:{flexBasis:i},...s},...c})}export{Flex,FlexItem};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import './flex.css';
|
|
2
|
-
var e={flex:`
|
|
2
|
+
var e={flex:`_flex_39htm_2`,"flex-item":`_flex-item_39htm_19`};export{e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"./grid.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function
|
|
1
|
+
import e from"./grid.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function isResponsive(e){return typeof e==`object`&&!!e}function responsiveVars(e,t){if(t===void 0)return{};if(!isResponsive(t))return{[e]:String(t)};let n={};t.base!==void 0&&(n[e]=String(t.base));for(let r of[`sm`,`md`,`lg`,`xl`]){let i=t[r];i!==void 0&&(n[`${e}-${r}`]=String(i))}return n}function Grid({cols:r=12,gap:i=4,align:a,justify:o,alignRows:s=!1,className:c,style:l,children:u,...d}){return n(`div`,{className:t(e[`grid-container`],c),style:{...responsiveVars(`--_grid-cols`,r),"--_grid-gap":`var(--cascivo-space-${i})`,...a?{"--_grid-align":a}:{},...o?{"--_grid-justify":o}:{},...l},...d,children:n(`div`,{className:e.grid,"data-responsive":isResponsive(r)?``:void 0,"data-align-rows":s?``:void 0,children:u})})}function GridItem({span:r,className:i,style:a,...o}){let s=r!==void 0&&isResponsive(r);return n(`div`,{className:t(e[`grid-item`],i),"data-responsive":s?``:void 0,style:{...responsiveVars(`--_span`,r),...a},...o})}export{Grid,GridItem};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"./page-header.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";function
|
|
1
|
+
import e from"./page-header.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";function PageHeader({title:i,description:a,breadcrumb:o,actions:s,className:c}){return r(`header`,{className:t(e.header,c),children:[o&&n(`div`,{className:e.breadcrumb,children:o}),r(`div`,{className:e.row,children:[n(`h1`,{className:e.title,children:i}),s&&n(`div`,{className:e.actions,children:s})]}),a&&n(`p`,{className:e.description,children:a})]})}export{PageHeader};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"./spacer.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function
|
|
1
|
+
import e from"./spacer.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function Spacer({size:r=4,className:i,style:a,...o}){return n(`div`,{role:`none`,className:t(e.spacer,i),style:{"--_spacer-size":`var(--cascivo-space-${r})`,...a},...o})}export{Spacer};
|
package/dist/list/list.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"./list.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function
|
|
1
|
+
import e from"./list.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function List({as:r=`ul`,marker:i,className:a,children:o,...s}){return n(r,{"data-marker":i??(r===`ol`?`decimal`:`disc`),className:t(e.list,a),...s,children:o})}function ListItem({className:r,children:i,...a}){return n(`li`,{className:t(e.item,r),...a,children:i})}export{List,ListItem};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer cascivo.component{.
|
|
1
|
+
@layer cascivo.component{._root_p7fwz_2{border:1px solid var(--cascivo-color-border);border-radius:var(--cascivo-radius-surface);background-color:var(--cascivo-color-surface);flex-direction:column;display:flex;overflow:clip}._toolbar_p7fwz_11{align-items:center;gap:var(--cascivo-space-2);padding-block:var(--cascivo-space-2);padding-inline:var(--cascivo-space-3);border-block-end:1px solid var(--cascivo-color-border);display:flex}._search_p7fwz_20{min-inline-size:0;font:inherit;font-size:var(--cascivo-text-sm);color:var(--cascivo-color-text);background-color:var(--cascivo-color-surface-raised);border:1px solid var(--cascivo-color-border);border-radius:var(--cascivo-radius-field);padding-block:var(--cascivo-space-1);padding-inline:var(--cascivo-space-2);flex:0 16rem}._count_p7fwz_33{font-size:var(--cascivo-text-sm);color:var(--cascivo-color-text-muted)}._spacer_p7fwz_38{flex:auto}._toggle_p7fwz_42,._copy_p7fwz_43{font:inherit;font-size:var(--cascivo-text-sm);color:var(--cascivo-color-text);background-color:var(--cascivo-color-surface-raised);border:1px solid var(--cascivo-color-border);border-radius:var(--cascivo-radius-button);padding-block:var(--cascivo-space-1);padding-inline:var(--cascivo-space-3);cursor:pointer}:is(._toggle_p7fwz_42,._copy_p7fwz_43):hover{background-color:var(--cascivo-color-surface)}:is(._toggle_p7fwz_42,._copy_p7fwz_43):focus-visible{outline:2px solid var(--cascivo-color-accent);outline-offset:2px}._toggle_p7fwz_42[aria-pressed=true]{color:var(--cascivo-color-accent-content,var(--cascivo-color-text-on-accent));background-color:var(--cascivo-color-accent);border-color:var(--cascivo-color-accent)}@media (pointer:coarse){._toggle_p7fwz_42,._copy_p7fwz_43,._search_p7fwz_20{min-block-size:var(--cascivo-target-min-coarse,2.75rem)}}._scroll_p7fwz_81{font-family:var(--cascivo-font-mono);font-size:var(--cascivo-text-sm);color:var(--cascivo-color-text);background-color:var(--cascivo-color-surface);line-height:1.45;position:relative;overflow:auto}._scroll_p7fwz_81:focus-visible{outline:2px solid var(--cascivo-color-accent);outline-offset:-2px}._sizer_p7fwz_96{inline-size:100%;position:relative}._line_p7fwz_101{padding-inline:var(--cascivo-space-3);white-space:pre;align-items:center;display:flex;position:absolute;inset-inline:0}._line_p7fwz_101 ._timestamp_p7fwz_112{flex:0 0 var(--_timestamp-width,6.5rem);color:var(--cascivo-color-text-subtle);-webkit-user-select:none;user-select:none}._line_p7fwz_101[data-level=warn]{color:var(--cascivo-color-warning-foreground)}._line_p7fwz_101[data-level=error]{color:var(--cascivo-color-destructive-foreground)}._line_p7fwz_101[data-level=debug]{color:var(--cascivo-color-text-subtle)}._line_p7fwz_101 mark{color:inherit;background-color:var(--cascivo-color-warning-subtle);border-radius:var(--cascivo-radius-indicator)}._ansi_p7fwz_137[data-ansi=red]{color:var(--cascivo-color-error)}._ansi_p7fwz_137[data-ansi=green]{color:var(--cascivo-color-success)}._ansi_p7fwz_137[data-ansi=yellow]{color:var(--cascivo-color-warning)}._ansi_p7fwz_137[data-ansi=blue],._ansi_p7fwz_137[data-ansi=cyan]{color:var(--cascivo-color-info)}._ansi_p7fwz_137[data-ansi=magenta]{color:var(--cascivo-color-accent-text)}._ansi_p7fwz_137[data-ansi=black],._ansi_p7fwz_137[data-ansi=bright-black]{color:var(--cascivo-color-text-muted)}._empty_p7fwz_158{padding-block:var(--cascivo-space-6);padding-inline:var(--cascivo-space-3);text-align:center;color:var(--cascivo-color-text-muted)}}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import e from"./log-viewer.module.js";import{Fragment as t}from"react";import{VisuallyHidden as n,cn as r,useClipboard as i,useComputed as a,useControllableSignal as o,useResizeObserver as s,useSignal as c,useSignalEffect as l,useSignals as u}from"@cascivo/core";import{builtin as d,t as f}from"@cascivo/i18n";import{
|
|
2
|
-
`)),children:I.value?D.copied:D.copy})]}),
|
|
1
|
+
"use client";import e from"./log-viewer.module.js";import{Fragment as t}from"react";import{VisuallyHidden as n,cn as r,useClipboard as i,useComputed as a,useControllableSignal as o,useResizeObserver as s,useSignal as c,useSignalEffect as l,useSignals as u}from"@cascivo/core";import{builtin as d,t as f}from"@cascivo/i18n";import{Fragment as p,jsx as m,jsxs as h}from"react/jsx-runtime";var g={30:`black`,31:`red`,32:`green`,33:`yellow`,34:`blue`,35:`magenta`,36:`cyan`,37:`white`,90:`bright-black`,91:`red`,92:`green`,93:`yellow`,94:`blue`,95:`magenta`,96:`cyan`,97:`white`};function parseAnsi(e){if(!e.includes(`\x1B[`))return[{text:e}];try{let t=[],n=/\[([0-9;]*)m/g,r=0,i,a=!1,o;for(;(o=n.exec(e))!==null;){o.index>r&&t.push({text:e.slice(r,o.index),color:i,bold:a});for(let e of o[1].split(`;`)){let t=Number(e||`0`);t===0?(i=void 0,a=!1):t===1?a=!0:t===22?a=!1:g[t]&&(i=g[t])}r=n.lastIndex}return r<e.length&&t.push({text:e.slice(r),color:i,bold:a}),t.length>0?t:[{text:e}]}catch{return[{text:e}]}}function highlight(e,t,n){if(!t)return e;let r=e.toLowerCase(),i=t.toLowerCase(),a=[],o=0,s=r.indexOf(i,o),c=0;for(;s!==-1;)s>o&&a.push(e.slice(o,s)),a.push(m(`mark`,{children:e.slice(s,s+i.length)},`${n}-${c++}`)),o=s+i.length,s=r.indexOf(i,o);return o<e.length&&a.push(e.slice(o)),a}function renderLine(t,n,r){let i=n?parseAnsi(t.text):[{text:t.text}];return h(p,{children:[t.timestamp!==void 0&&m(`span`,{className:e.timestamp,children:t.timestamp}),i.map((n,i)=>m(`span`,{"data-ansi":n.color,style:n.bold?{fontWeight:700}:void 0,className:n.color?e.ansi:void 0,children:highlight(n.text,r,`${String(t.id)}-${i}`)},i))]})}function LogViewer({lines:p,rowHeight:g=20,overscan:_=8,follow:v,onFollowChange:y,ansi:b=!1,search:x,maxHeight:S=`24rem`,timestampWidth:C=`6.5rem`,labels:w,className:T,...E}){u();let D={searchPlaceholder:w?.searchPlaceholder??f(d.logViewer.search),follow:w?.follow??f(d.logViewer.follow),paused:w?.paused??f(d.logViewer.paused),copy:w?.copy??f(d.logViewer.copy),copied:w?.copied??f(d.logViewer.copied),empty:w?.empty??f(d.logViewer.empty),label:f(d.logViewer.label)},O=c(Array.isArray(p)?p:[]);Array.isArray(p)&&(O.value=p);let k=Array.isArray(p)?O:p,{ref:A,size:j}=s(),M=c(0),[N,P]=o({value:v,defaultValue:!0,onChange:y}),F=c(x??``),{copied:I,copy:L}=i(),R=a(()=>{let e=k.value,t=e.length,n=j.value?.height??320,r=Math.max(0,t*g-n),i=N.value?r:M.value,a=Math.floor(i/g),o=Math.ceil(n/g)+_*2,s=Math.max(0,a-_),c=Math.min(t,s+o);return{total:t,start:s,end:c,rows:e.slice(s,c)}}),z=a(()=>{let e=F.value.trim().toLowerCase();if(!e)return 0;let t=0;for(let n of k.value)n.text.toLowerCase().includes(e)&&t++;return t});l(()=>{if(k.value,!N.value)return;let e=A.current;e&&(e.scrollTop=e.scrollHeight)});let onScroll=e=>{let t=e.currentTarget;M.value=t.scrollTop,P(t.scrollHeight-t.clientHeight-t.scrollTop<=g)},B=R.value,V=F.value.trim();return h(`div`,{className:r(e.root,T),style:{"--_timestamp-width":C},...E,children:[h(`div`,{className:e.toolbar,children:[m(`input`,{type:`search`,className:e.search,placeholder:D.searchPlaceholder,"aria-label":D.searchPlaceholder,value:F.value,onInput:e=>{F.value=e.currentTarget.value}}),V?m(`span`,{className:e.count,"aria-live":`polite`,children:f(d.logViewer.matches,{count:z.value})}):null,m(`span`,{className:e.spacer}),m(`button`,{type:`button`,className:e.toggle,"aria-pressed":N.value,onClick:()=>{let e=!N.value;if(P(e),e){let e=A.current;e&&(e.scrollTop=e.scrollHeight)}},children:N.value?D.follow:D.paused}),m(`button`,{type:`button`,className:e.copy,onClick:()=>void L(k.value.map(e=>e.text).join(`
|
|
2
|
+
`)),children:I.value?D.copied:D.copy})]}),m(`div`,{ref:A,className:e.scroll,role:`log`,"aria-live":`polite`,"aria-label":D.label,tabIndex:0,style:{maxBlockSize:S},onScroll,children:B.total===0?m(`div`,{className:e.empty,children:D.empty}):m(`div`,{className:e.sizer,style:{blockSize:B.total*g},children:B.rows.map((n,r)=>m(t,{children:m(`div`,{className:e.line,"data-level":n.level,style:{insetBlockStart:(B.start+r)*g,blockSize:g},children:renderLine(n,b,V)})},n.id))})}),m(n,{"aria-live":`polite`,children:f(d.logViewer.lines,{count:B.total})})]})}export{LogViewer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import './log-viewer.css';
|
|
2
|
-
var e={root:`
|
|
2
|
+
var e={root:`_root_p7fwz_2`,toolbar:`_toolbar_p7fwz_11`,search:`_search_p7fwz_20`,count:`_count_p7fwz_33`,spacer:`_spacer_p7fwz_38`,toggle:`_toggle_p7fwz_42`,copy:`_copy_p7fwz_43`,scroll:`_scroll_p7fwz_81`,sizer:`_sizer_p7fwz_96`,line:`_line_p7fwz_101`,timestamp:`_timestamp_p7fwz_112`,ansi:`_ansi_p7fwz_137`,empty:`_empty_p7fwz_158`};export{e as default};
|
package/dist/menu/menu.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{usePopover as e}from"../popover/use-popover.js";import t from"./menu.module.js";import{Children as n,createContext as r,isValidElement as i}from"react";import{useSignalEffect as a,useSignals as o,useTypeahead as s}from"@cascivo/core";import{jsx as c,jsxs as l}from"react/jsx-runtime";var u=r(null);function
|
|
1
|
+
"use client";import{usePopover as e}from"../popover/use-popover.js";import t from"./menu.module.js";import{Children as n,createContext as r,isValidElement as i}from"react";import{useSignalEffect as a,useSignals as o,useTypeahead as s}from"@cascivo/core";import{jsx as c,jsxs as l}from"react/jsx-runtime";var u=r(null);function MenuPanelInner({ctx:e,children:n}){o();let{popoverRef:r,anchorName:i,isOpen:l}=e,enabledItems=()=>{let e=r.current;return e?Array.from(e.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`)):[]},focusItem=e=>{let t=enabledItems();t.length!==0&&t[e(t,t.indexOf(document.activeElement))]?.focus()},u=s({onMatch:e=>{enabledItems().find(t=>(t.textContent??``).trim().toLowerCase().startsWith(e))?.focus()}});return a(()=>{if(!l.value)return;let e=r.current;e&&e.querySelector(`[role="menuitem"]:not([aria-disabled="true"])`)?.focus()}),c(`div`,{ref:r,popover:`auto`,role:`menu`,"data-state":l.value?`open`:`closed`,style:{positionAnchor:i},className:t.panel,onKeyDown:e=>{switch(e.key){case`ArrowDown`:e.preventDefault(),focusItem((e,t)=>t<0?0:(t+1)%e.length);break;case`ArrowUp`:e.preventDefault(),focusItem((e,t)=>t<0?e.length-1:(t-1+e.length)%e.length);break;case`Home`:e.preventDefault(),focusItem(()=>0);break;case`End`:e.preventDefault(),focusItem(e=>e.length-1);break;default:u.onKeyDown(e)}},children:n})}function MenuPanel({children:e}){return c(u.Consumer,{children:t=>{if(!t)throw Error(`MenuPanel must be inside <Menu>`);return c(MenuPanelInner,{ctx:t,children:e})}})}function isDev(){return globalThis.process?.env?.NODE_ENV!==`production`}function Menu({children:t}){let r=e(),a=n.toArray(t),o=a.find(e=>i(e)&&e.type===MenuTrigger),s=a.filter(e=>e!==o);if(o===void 0&&isDev())throw Error(`<Menu> requires a <MenuTrigger> child. It is matched by component identity, so it may appear in any order — but it must be a direct child, not wrapped in a fragment or another component.`);return l(u.Provider,{value:r,children:[o,c(MenuPanel,{children:s})]})}function MenuTriggerInner({ctx:e,children:n,ariaLabel:r,"aria-label":i}){o();let{triggerRef:a,toggle:s,anchorName:l,isOpen:u}=e;return c(`button`,{ref:a,type:`button`,"aria-haspopup":`menu`,"aria-expanded":u.value,"aria-label":r??i,style:{anchorName:l},onClick:s,className:t.trigger,children:n})}function MenuTrigger({children:e,ariaLabel:t,"aria-label":n}){let r=t??n;return c(u.Consumer,{children:t=>{if(!t)throw Error(`MenuTrigger must be inside <Menu>`);return c(MenuTriggerInner,{ctx:t,...r!==void 0&&{ariaLabel:r},children:e})}})}function MenuItem({children:e,onSelect:n,disabled:r}){return c(u.Consumer,{children:i=>{if(!i)throw Error(`MenuItem must be inside <Menu>`);let{close:a}=i;function handleClick(){r||(n(),a())}function handleKeyDown(e){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),e.stopPropagation(),handleClick())}return c(`div`,{role:`menuitem`,tabIndex:r?-1:0,"aria-disabled":r,onClick:handleClick,onKeyDown:handleKeyDown,className:t.item,children:e})}})}function MenuSeparator(){return c(`div`,{role:`separator`,className:t.separator})}export{Menu,MenuItem,MenuSeparator,MenuTrigger};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./menu-button.module.js";import{useId as t,useRef as n}from"react";import{DismissableLayer as r,cn as i,focusElement as a,useAnchorPosition as o,useSignal as s,useSignalEffect as c,useSignals as l}from"@cascivo/core";import{jsx as u,jsxs as d}from"react/jsx-runtime";function
|
|
1
|
+
"use client";import e from"./menu-button.module.js";import{useId as t,useRef as n}from"react";import{DismissableLayer as r,cn as i,focusElement as a,useAnchorPosition as o,useSignal as s,useSignalEffect as c,useSignals as l}from"@cascivo/core";import{jsx as u,jsxs as d}from"react/jsx-runtime";function focusItem(e,t){if(!e)return;let n=e.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`);n[t<0?n.length-1:t%n.length]?.focus()}function MenuButton({label:f,items:p,variant:m=`secondary`,size:h=`md`,disabled:g=!1,align:_=`start`,labels:v,className:y}){l();let b=s(!1),x=n(null),S=n(null),C=t(),{anchorStyle:w,floatingStyle:T}=o({anchorRef:x,floatingRef:S,placement:_===`end`?`bottom-end`:`bottom-start`,enabled:b});c(()=>{b.value&&focusItem(S.current,0)});function openMenu(e){g||(b.value=!0,queueMicrotask(()=>focusItem(S.current,e)))}function close(e){b.value=!1,e&&a(x.current)}function handleTriggerKeyDown(e){e.key===`ArrowDown`||e.key===`Enter`||e.key===` `?(e.preventDefault(),openMenu(0)):e.key===`ArrowUp`&&(e.preventDefault(),openMenu(-1))}function handleItemKeyDown(e){if(e.key===`ArrowDown`){e.preventDefault();let t=e.currentTarget.nextElementSibling;t?t.focus():focusItem(S.current,0)}else if(e.key===`ArrowUp`){e.preventDefault();let t=e.currentTarget.previousElementSibling;t?t.focus():focusItem(S.current,-1)}else e.key===`Escape`?(e.preventDefault(),close(!0)):e.key===`Tab`&&close(!1)}function select(e){e.disabled||(e.onSelect?.(),close(!0))}return d(`div`,{className:i(e.root,y),children:[u(`button`,{ref:x,type:`button`,className:e.trigger,"data-variant":m,"data-size":h,disabled:g,"aria-haspopup":`menu`,"aria-expanded":b.value,"aria-controls":C,...v?.open!==void 0&&{"aria-label":v.open},style:w,onClick:()=>{b.value?close(!1):openMenu(0)},onKeyDown:handleTriggerKeyDown,children:f}),b.value?u(r,{onDismiss:()=>close(!0),children:u(`div`,{ref:S,id:C,role:`menu`,"data-state":`open`,"data-align":_,className:e.menu,style:T,children:p.map(t=>u(`div`,{role:`menuitem`,tabIndex:-1,"aria-disabled":t.disabled,className:e.item,onClick:()=>select(t),onKeyDown:e=>{e.key===`Enter`||e.key===` `?(e.preventDefault(),select(t)):handleItemKeyDown(e)},children:t.label},t.id))})}):null]})}export{MenuButton};
|
package/dist/menubar/menubar.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./menubar.module.js";import{useId as t,useRef as n}from"react";import{DismissableLayer as r,Presence as i,cn as a,focusElement as o,useAnchorPosition as s,useRovingFocus as c,useSignal as l,useSignals as u}from"@cascivo/core";import{Fragment as d,jsx as f,jsxs as p}from"react/jsx-runtime";function
|
|
1
|
+
"use client";import e from"./menubar.module.js";import{useId as t,useRef as n}from"react";import{DismissableLayer as r,Presence as i,cn as a,focusElement as o,useAnchorPosition as s,useRovingFocus as c,useSignal as l,useSignals as u}from"@cascivo/core";import{Fragment as d,jsx as f,jsxs as p}from"react/jsx-runtime";function Menubar({menus:n,ariaLabel:r,"aria-label":i,className:o}){u();let s=t(),d=l(null),p=c({orientation:`horizontal`,loop:!0});return f(`div`,{role:`menubar`,"aria-label":r??i,className:a(e.menubar,o),children:n.map((e,t)=>f(MenubarTrigger,{menu:e,index:t,baseId:s,openId:d,itemProps:p.getItemProps(t)},e.id))})}function MenubarTrigger({menu:t,baseId:r,openId:a,itemProps:c}){u();let l=n(null),m=n(null),h=a.value===t.id,g=`${r}-menu-${t.id}`,{anchorStyle:_,floatingStyle:v}=s({anchorRef:l,floatingRef:m,placement:`bottom-start`,enabled:h}),focusFirstItem=()=>{(m.current?.querySelector(`[role="menuitem"]:not([aria-disabled="true"])`))?.focus()},handleKeyDown=e=>{c.onKeyDown(e),!e.defaultPrevented&&(e.key===`ArrowDown`||e.key===`Enter`||e.key===` `?(e.preventDefault(),a.value=t.id,requestAnimationFrame(focusFirstItem)):e.key===`Escape`&&(a.value=null))},{ref:y,onKeyDown:b,...x}=c;return p(d,{children:[f(`button`,{ref:e=>{l.current=e,y(e)},type:`button`,role:`menuitem`,"aria-haspopup":`menu`,"aria-expanded":h,"aria-controls":g,"data-state":h?`open`:`closed`,className:e.trigger,style:_,onClick:()=>{a.value=h?null:t.id},onKeyDown:handleKeyDown,...x,children:t.label}),f(i,{present:h,children:f(MenubarPanel,{menu:t,menuId:g,floatingRef:m,floatingStyle:v,onClose:()=>{a.value=null,o(l.current)}})})]})}function MenubarPanel({menu:t,menuId:n,floatingRef:i,floatingStyle:a,onClose:o}){let handleItemKeyDown=e=>{let t=Array.from(i.current?.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`)??[]);if(t.length===0)return;let n=t.indexOf(e.currentTarget);e.key===`ArrowDown`?(e.preventDefault(),t[(n+1)%t.length]?.focus()):e.key===`ArrowUp`?(e.preventDefault(),t[(n-1+t.length)%t.length]?.focus()):e.key===`Home`?(e.preventDefault(),t[0]?.focus()):e.key===`End`&&(e.preventDefault(),t[t.length-1]?.focus())};return f(r,{onDismiss:o,children:f(`div`,{ref:i,id:n,role:`menu`,"aria-label":typeof t.label==`string`?t.label:void 0,className:e.panel,style:a,children:t.items.map(t=>f(`div`,{role:`menuitem`,tabIndex:-1,"aria-disabled":t.disabled,className:e.item,onClick:()=>{t.disabled||(t.onSelect?.(),o())},onKeyDown:e=>{t.disabled||(e.key===`Enter`||e.key===` `?(e.preventDefault(),t.onSelect?.(),o()):handleItemKeyDown(e))},children:t.label},t.id))})})}export{Menubar};
|
package/dist/modal/modal.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./modal.module.js";import{useRef as t}from"react";import{cn as n,useDraggable as r,useEffectPropSignal as i,useId as a,useSignalEffect as o,useSignals as s}from"@cascivo/core";import{builtin as c,t as l}from"@cascivo/i18n";import{jsx as u,jsxs as d}from"react/jsx-runtime";function
|
|
1
|
+
"use client";import e from"./modal.module.js";import{useRef as t}from"react";import{cn as n,useDraggable as r,useEffectPropSignal as i,useId as a,useSignalEffect as o,useSignals as s}from"@cascivo/core";import{builtin as c,t as l}from"@cascivo/i18n";import{jsx as u,jsxs as d}from"react/jsx-runtime";function Modal({open:f=!1,onClose:p,title:m,description:h,children:g,footer:_,className:v,size:y=`md`,draggable:b=!1}){s();let x=t(null),S=t(p);S.current=p;let C=a(`cascivo-modal-title`),w=a(`cascivo-modal-desc`),{handleRef:T,offset:E}=r({isDisabled:!b}),D=b?{"--modal-x":`${E.value.x}px`,"--modal-y":`${E.value.y}px`}:void 0,O=i(f);return o(()=>{let e=x.current;e&&(O.value?e.open||e.showModal():e.open&&e.close())}),o(()=>{let e=x.current;if(!e)return;let handler=()=>S.current?.();return e.addEventListener(`close`,handler),()=>e.removeEventListener(`close`,handler)}),u(`dialog`,{ref:x,"data-size":y,"data-draggable":b||void 0,className:n(e.dialog,v),style:D,onClick:e=>{e.target===x.current&&x.current?.close()},"aria-labelledby":m?C:void 0,"aria-describedby":h?w:void 0,children:d(`div`,{className:e.panel,children:[(m||p)&&d(`div`,{className:e.header,ref:b?e=>{T.current=e}:void 0,children:[m&&u(`h2`,{id:C,className:e.title,children:m}),p&&u(`button`,{type:`button`,className:e.close,onClick:()=>x.current?.close(),"aria-label":l(c.modal.close),children:`✕`})]}),h&&u(`p`,{id:w,className:e.description,children:h}),u(`div`,{className:e.body,"data-cascivo-modal-body":``,children:g}),_&&u(`div`,{className:e.footer,"data-cascivo-modal-footer":``,children:_})]})})}export{Modal};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function enabledIndexes(e){let t=[];return e.forEach((e,n)=>{e.disabled||t.push(n)}),t}function moveActive(e,t,n){let r=enabledIndexes(n);if(r.length===0)return-1;let i=r.indexOf(e);return i===-1?t>0?r[0]:r[r.length-1]:r[(i+t+r.length)%r.length]}function firstActive(e){return enabledIndexes(e)[0]??-1}function lastActive(e){let t=enabledIndexes(e);return t[t.length-1]??-1}function pageActive(e,t,n){let r=enabledIndexes(n);if(r.length===0)return-1;let i=r.indexOf(e),a=i===-1?t>0?-1:r.length:i;return r[Math.min(Math.max(a+t*10,0),r.length-1)]}function clampActive(e,t){return e>=0&&e<t.length&&!t[e]?.disabled?e:firstActive(t)}export{clampActive,firstActive,lastActive,moveActive,pageActive};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{usePopover as e}from"../popover/use-popover.js";import{clampActive as t,firstActive as n,lastActive as r,moveActive as i,pageActive as a}from"./list-nav.js";import{filterOptions as o,groupOptions as ee,highlightSegments as te,isNewLabel as ne,orderByGroup as re}from"./option-list.js";import s from"./multi-select.module.js";import{useId as ie,useRef as c}from"react";import{cn as
|
|
1
|
+
"use client";import{usePopover as e}from"../popover/use-popover.js";import{clampActive as t,firstActive as n,lastActive as r,moveActive as i,pageActive as a}from"./list-nav.js";import{filterOptions as o,groupOptions as ee,highlightSegments as te,isNewLabel as ne,orderByGroup as re}from"./option-list.js";import s from"./multi-select.module.js";import{useId as ie,useRef as c}from"react";import{cn as l,focusElement as u,useControllableSignal as ae,useSignal as d,useSignalEffect as f,useSignals as oe}from"@cascivo/core";import{builtin as p,t as m}from"@cascivo/i18n";import{jsx as h,jsxs as g}from"react/jsx-runtime";function mergeDescribedBy(...e){return e.filter(Boolean).join(` `)||void 0}function MultiSelect({options:_,value:se,defaultValue:ce,onValueChange:le,placeholder:ue,label:v,ariaLabel:y,hint:b,error:x,display:S=`count`,disabled:C=!1,clearable:de=!1,selectAll:fe=!1,max:w,creatable:pe=!1,onCreate:me,loading:T=!1,onSearchChange:E,filter:D,searchable:O=!0,size:he=`md`,name:k,labels:A,className:ge,id:_e,"aria-labelledby":ve,"aria-describedby":ye,"aria-invalid":be,...xe}){oe();let j=e({placement:`bottom`}),M=ie(),N=_e??`${M}-trigger`,P=`${M}-listbox`,F=`${M}-panel`,Se=`${M}-search`,optionId=e=>`${M}-option-${e}`,I=d(``),L=d(-1),R=c(null),z=c(null),B=c(null),[V,Ce]=ae({value:se,defaultValue:ce??[],onChange:le}),H=j.isOpen.value,U=V.value,W=w!==void 0&&U.length>=w,G=I.value,K=re(o(_,O?G:``,D)),q=pe&&G.trim()!==``&&ne(_,G.trim()),J=q?K.length:-1,we=ee(K),Te=ue??A?.placeholder??m(p.multiSelect.placeholder),Y=A?.search??m(p.multiSelect.search),Ee=A?.noResults??m(p.multiSelect.noResults),De=A?.loading??m(p.multiSelect.loading),Oe=A?.label??v??y??m(p.multiSelect.label),ke=A?.clear??m(p.multiSelect.clear),Ae=A?.selectAll??m(p.multiSelect.selectAll),je=A?.clearAll??m(p.multiSelect.clearAll),removeLabel=e=>A?.remove?A.remove.replaceAll(`{label}`,e):m(p.multiSelect.remove,{label:e}),createLabel=e=>A?.create?A.create.replaceAll(`{label}`,e):m(p.multiSelect.create,{label:e}),Me=U.flatMap(e=>{let t=_.find(t=>t.value===e);return t?[t]:[{value:e,label:e}]}),X=U.length===0?Te:A?.selected?A.selected(U.length):m(p.multiSelect.selected,{count:String(U.length)}),Z=c(!1);f(()=>{if(j.isOpen.value){L.value=-1;let e=setTimeout(()=>u(O?z.current:R.current),0);return Z.current=!0,()=>clearTimeout(e)}I.value=``,Z.current&&(Z.current=!1,u(B.current))}),f(()=>{let e=L.value;if(!j.isOpen.value||e<0)return;let t=R.current?.querySelector(`#${CSS.escape(optionId(e))}`);t&&typeof t.scrollIntoView==`function`&&t.scrollIntoView({block:`nearest`})});function commit(e){Ce(e)}function toggleOption(e){let t=V.value;if(t.includes(e)){commit(t.filter(t=>t!==e));return}w!==void 0&&t.length>=w||commit([...t,e])}function activate(e){if(e===J&&q){me?.(G.trim()),I.value=``,E?.(``);return}let t=K[e];t&&!t.disabled&&toggleOption(t.value)}function setActive(e){L.value=e}function handleKeyDown(e){let t=[...K.map(e=>({...e,disabled:e.disabled||W&&!U.includes(e.value)})),...q?[{value:``,label:G}]:[]];switch(e.key){case`ArrowDown`:e.preventDefault(),setActive(i(L.value,1,t));break;case`ArrowUp`:e.preventDefault(),setActive(i(L.value,-1,t));break;case`Home`:e.preventDefault(),setActive(n(t));break;case`End`:e.preventDefault(),setActive(r(t));break;case`PageDown`:e.preventDefault(),setActive(a(L.value,1,t));break;case`PageUp`:e.preventDefault(),setActive(a(L.value,-1,t));break;case`Enter`:L.value>=0&&(e.preventDefault(),activate(L.value));break;case` `:!O&&L.value>=0&&(e.preventDefault(),activate(L.value));break;case`Escape`:e.preventDefault(),e.stopPropagation(),j.close();break;case`Backspace`:S===`chips`&&G===``&&V.value.length>0&&(e.preventDefault(),commit(V.value.slice(0,-1)));break}}function handleTriggerKeyDown(e){C||(e.key===`ArrowDown`||e.key===`ArrowUp`||e.key===`Enter`||e.key===` `)&&(e.preventDefault(),j.open())}let Q=_.filter(e=>!e.disabled).map(e=>e.value),$=Q.length>0&&Q.every(e=>U.includes(e)),Ne=mergeDescribedBy(x?`${M}-error`:b?`${M}-hint`:void 0,ye);function renderOption(e,t){let n=U.includes(e.value),r=e.disabled||W&&!n;return g(`div`,{id:optionId(t),role:`option`,"aria-selected":n,"aria-disabled":r||void 0,"data-active":t===L.value?``:void 0,"data-selected":n?``:void 0,"data-disabled":r?``:void 0,className:s.option,onMouseDown:e=>e.preventDefault(),onClick:()=>{r||toggleOption(e.value)},onMouseEnter:()=>{r||setActive(t)},children:[h(`span`,{className:s.checkbox,"aria-hidden":`true`}),h(`span`,{className:s[`option-label`],children:te(e.label,O?G:``).map((e,t)=>e.match?h(`mark`,{className:s.match,children:e.text},t):h(`span`,{children:e.text},t))})]},e.value)}return g(`div`,{className:l(s.wrapper,ge),"data-state":x?`error`:H?`open`:`closed`,"data-size":he,...xe,children:[v&&h(`label`,{className:s.label,htmlFor:N,children:v}),g(`div`,{className:s.field,"data-display":S,children:[S===`chips`&&Me.map(e=>g(`span`,{className:s.chip,children:[h(`span`,{className:s[`chip-label`],children:e.label}),h(`button`,{type:`button`,className:s[`chip-remove`],"aria-label":removeLabel(e.label),disabled:C,onClick:()=>commit(V.value.filter(t=>t!==e.value))})]},e.value)),g(`button`,{ref:e=>{B.current=e,j.triggerRef.current=e},id:N,type:`button`,className:s.trigger,"aria-haspopup":`listbox`,"aria-expanded":H,"aria-controls":F,"aria-labelledby":ve,"aria-label":y,"aria-invalid":x?!0:be,"aria-describedby":Ne,disabled:C,style:{anchorName:j.anchorName},onClick:()=>{C||j.toggle()},onKeyDown:handleTriggerKeyDown,children:[h(`span`,{className:s[`trigger-label`],"data-empty":U.length===0?``:void 0,children:S===`chips`&&U.length>0?h(`span`,{className:s[`sr-only`],children:X}):X}),h(`span`,{className:s.chevron,"aria-hidden":`true`})]}),de&&U.length>0&&!C&&h(`button`,{type:`button`,className:s.clear,"aria-label":ke,onClick:()=>commit([]),children:h(`span`,{className:s[`clear-glyph`],"aria-hidden":`true`})})]}),k!==void 0&&U.map(e=>h(`input`,{type:`hidden`,name:k,value:e},e)),g(`div`,{ref:j.popoverRef,id:F,popover:`auto`,className:s.panel,style:{positionAnchor:j.anchorName},tabIndex:-1,children:[O&&h(`div`,{className:s[`search-row`],children:h(`input`,{ref:z,id:Se,type:`text`,role:`combobox`,className:s.search,placeholder:Y,"aria-label":Y,"aria-expanded":H,"aria-controls":P,"aria-autocomplete":`list`,"aria-activedescendant":H&&L.value>=0?optionId(L.value):void 0,autoComplete:`off`,value:G,onChange:e=>{I.value=e.currentTarget.value,E?.(e.currentTarget.value),L.value=t(-1,o(_,e.currentTarget.value,D))},onKeyDown:handleKeyDown})}),fe&&Q.length>0&&h(`button`,{type:`button`,className:s[`select-all`],onMouseDown:e=>e.preventDefault(),onClick:()=>commit($?[]:w===void 0?Q:Q.slice(0,w)),children:$?je:Ae}),g(`div`,{ref:R,role:`listbox`,id:P,"aria-multiselectable":`true`,"aria-label":Oe,"aria-busy":T||void 0,"aria-activedescendant":!O&&H&&L.value>=0?optionId(L.value):void 0,tabIndex:O?-1:0,className:s.options,onKeyDown:O?void 0:handleKeyDown,children:[we.map(e=>e.label===void 0?e.entries.map(({option:e,index:t})=>renderOption(e,t)):g(`div`,{role:`group`,"aria-label":e.label,className:s.group,children:[h(`span`,{className:s[`group-label`],"aria-hidden":`true`,children:e.label}),e.entries.map(({option:e,index:t})=>renderOption(e,t))]},e.label)),q&&h(`div`,{id:optionId(J),role:`option`,"aria-selected":!1,"data-active":J===L.value?``:void 0,className:l(s.option,s.create),onMouseDown:e=>e.preventDefault(),onClick:()=>activate(J),onMouseEnter:()=>setActive(J),children:createLabel(G.trim())})]}),T?h(`div`,{className:s.status,role:`status`,children:De}):K.length===0&&!q?h(`div`,{className:s.status,role:`status`,children:Ee}):null]}),h(`span`,{className:s[`sr-only`],role:`status`,"aria-live":`polite`,children:H?m(p.multiSelect.selectionChanged,{count:String(U.length),total:String(_.length)}):``}),x&&h(`span`,{id:`${M}-error`,className:s.error,role:`alert`,children:x}),!x&&b&&h(`span`,{id:`${M}-hint`,className:s.hint,children:b})]})}export{MultiSelect};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function foldChar(e){return(e.normalize(`NFD`)[0]??e).toLowerCase()}function fold(e){return Array.from(e,foldChar)}function defaultMatch(e,t){let n=fold(t).join(``);return n===``?!0:fold(e.label).join(``).includes(n)||fold(e.value).join(``).includes(n)}function filterOptions(e,t,n){let r=n??defaultMatch;return t===``&&!n?e:e.filter(e=>r(e,t))}function highlightSegments(e,t){let n=fold(t).join(``);if(n===``)return[{text:e,match:!1}];let r=Array.from(e),i=fold(e).join(``).indexOf(n);if(i===-1)return[{text:e,match:!1}];let a=Array.from(t).length,o=[],s=r.slice(0,i).join(``),c=r.slice(i,i+a).join(``),l=r.slice(i+a).join(``);return s!==``&&o.push({text:s,match:!1}),o.push({text:c,match:!0}),l!==``&&o.push({text:l,match:!1}),o}function groupOptions(e){let t=[],n=new Map;return e.forEach((e,r)=>{let i=e.group,a=n.get(i);a||(a={label:i,entries:[]},n.set(i,a),t.push(a)),a.entries.push({option:e,index:r})}),t.sort((e,t)=>Number(e.label!==void 0)-Number(t.label!==void 0))}function orderByGroup(e){return groupOptions(e).flatMap(e=>e.entries.map(e=>e.option))}function isNewLabel(e,t){let n=fold(t).join(``);return n===``?!1:!e.some(e=>fold(e.label).join(``)===n)}export{filterOptions,groupOptions,highlightSegments,isNewLabel,orderByGroup};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./navigation-menu.module.js";import{useId as t,useRef as n}from"react";import{DismissableLayer as r,Presence as i,cn as a,focusElement as o,getLinkComponent as s,useAnchorPosition as c,useRovingFocus as l,useSignal as u,useSignals as d}from"@cascivo/core";import{jsx as f,jsxs as p}from"react/jsx-runtime";function
|
|
1
|
+
"use client";import e from"./navigation-menu.module.js";import{useId as t,useRef as n}from"react";import{DismissableLayer as r,Presence as i,cn as a,focusElement as o,getLinkComponent as s,useAnchorPosition as c,useRovingFocus as l,useSignal as u,useSignals as d}from"@cascivo/core";import{jsx as f,jsxs as p}from"react/jsx-runtime";function NavigationMenu({items:n,"aria-label":r,ariaLabel:i,label:o,orientation:s=`horizontal`,className:c}){d();let p=t(),m=u(null),h=l({orientation:s,loop:!0});return f(`nav`,{"aria-label":i??r??o,className:a(e.nav,c),"data-orientation":s,children:f(`ul`,{role:`list`,className:e.list,children:n.map((e,t)=>f(NavigationMenuEntry,{item:e,baseId:p,openId:m,itemProps:h.getItemProps(t)},e.id))})})}function NavigationMenuEntry({item:t,baseId:r,openId:a,itemProps:l}){d();let u=n(null),m=n(null),h=t.content!=null,g=a.value===t.id,_=`${r}-panel-${t.id}`,{anchorStyle:v,floatingStyle:y}=c({anchorRef:u,floatingRef:m,placement:`bottom-start`,enabled:g}),{ref:b,onKeyDown:x,...S}=l;if(!h){let n=s();return f(`li`,{className:e.item,children:f(n,{ref:e=>b(e),href:t.href,className:e.link,onKeyDown:x,...S,children:t.label})})}return p(`li`,{className:e.item,children:[f(`button`,{ref:e=>{u.current=e,b(e)},type:`button`,"aria-expanded":g,"aria-controls":_,"data-state":g?`open`:`closed`,className:e.trigger,style:v,onClick:()=>{a.value=g?null:t.id},onKeyDown:e=>{x(e),!e.defaultPrevented&&e.key===`Escape`&&(a.value=null)},...S,children:t.label}),f(i,{present:g,children:f(NavigationMenuPanel,{panelId:_,floatingRef:m,floatingStyle:y,onClose:()=>{a.value=null,o(u.current)},children:t.content})})]})}function NavigationMenuPanel({panelId:t,floatingRef:n,floatingStyle:i,onClose:a,children:o}){return f(r,{onDismiss:a,children:f(`div`,{ref:n,id:t,className:e.panel,style:i,children:o})})}export{NavigationMenu};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./accordion.module.js";import{createContext as t,forwardRef as n,useId as r,useRef as i}from"react";import{cn as a,useControllableSignal as o,useSignalEffect as s,useSignals as c}from"@cascivo/core";import{jsx as l,jsxs as u}from"react/jsx-runtime";var d=t(null),f=t(null);function
|
|
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/node/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
|
-
"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 +1 @@
|
|
|
1
|
-
var e={shell:`
|
|
1
|
+
var e={shell:`_shell_tpp3j_4`,header:`_header_tpp3j_16`,body:`_body_tpp3j_21`,navWrapper:`_navWrapper_tpp3j_32`,navInner:`_navInner_tpp3j_58`,scrim:`_scrim_tpp3j_84`,main:`_main_tpp3j_101`,footer:`_footer_tpp3j_142`};export{e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"./aspect-ratio.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function
|
|
1
|
+
import e from"./aspect-ratio.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n}from"react/jsx-runtime";function AspectRatio({ratio:r=16/9,className:i,style:a,children:o,...s}){return n(`div`,{className:t(e.root,i),style:{"--cascivo-aspect-ratio":r,...a},...s,children:n(`div`,{className:e.inner,children:o})})}export{AspectRatio};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./avatar.module.js";import{cn as t,createMachine as n,useMachine as r,useSignals as i}from"@cascivo/core";import{jsx as a,jsxs as o}from"react/jsx-runtime";var s=n({initial:`loading`,states:{loading:{on:{LOADED:`loaded`,ERROR:`error`}},loaded:{},error:{}}});function
|
|
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/node/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};
|
|
@@ -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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e={label:`
|
|
1
|
+
var e={label:`_label_w88l5_10`,button:`_button_w88l5_8`};export{e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./button-group.module.js";import{forwardRef as t}from"react";import{cn as n}from"@cascivo/core";import{jsx as r}from"react/jsx-runtime";function
|
|
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/node/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};
|