@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
package/dist/toast/toast.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./toast.module.js";import{useRef as t}from"react";import{createMachine as n,signal as r,useMachine as i,useSignalEffect as a,useSignals as o}from"@cascivo/core";import{builtin as s,t as c}from"@cascivo/i18n";import{Fragment as l,jsx as u,jsxs as d}from"react/jsx-runtime";var f=5e3,p=160,m=0,h=r([]);function
|
|
1
|
+
"use client";import e from"./toast.module.js";import{useRef as t}from"react";import{createMachine as n,signal as r,useMachine as i,useSignalEffect as a,useSignals as o}from"@cascivo/core";import{builtin as s,t as c}from"@cascivo/i18n";import{Fragment as l,jsx as u,jsxs as d}from"react/jsx-runtime";var f=5e3,p=160,m=0,h=r([]);function enqueue(e){h.value=[...h.value,{id:m++,...e}]}function dequeue(e){h.value=h.value.filter(t=>t.id!==e)}function ToastProvider({children:t}){o();let n=h.value.slice(-3);return d(l,{children:[t,u(`div`,{className:e.viewport,role:`region`,"aria-label":c(s.toast.region),children:n.map(e=>u(ToastItem,{toast:e,onDismiss:()=>dequeue(e.id)},e.id))})]})}var g=n({initial:`visible`,states:{visible:{on:{DISMISS:`dismissing`}},dismissing:{on:{END:`gone`}}}});function ToastItem({toast:n,onDismiss:r}){o();let[l,m]=i(g),h=t(r);h.current=r;let _=n.duration??f,v=n.variant===`destructive`;return a(()=>{let e=l.value;if(e===`visible`){let e=setTimeout(()=>m(`DISMISS`),_);return()=>clearTimeout(e)}if(e===`dismissing`){let e=setTimeout(()=>h.current(),p);return()=>clearTimeout(e)}}),d(`div`,{role:v?`alert`:`status`,"aria-live":v?`assertive`:`polite`,"data-variant":n.variant??`default`,"data-state":l.value,className:e.toast,children:[d(`div`,{className:e.body,children:[u(`div`,{className:e.title,children:n.title}),n.description&&u(`div`,{className:e.description,children:n.description})]}),u(`button`,{type:`button`,className:e.close,"aria-label":c(s.toast.dismiss),onClick:()=>m(`DISMISS`),children:`✕`})]})}function useToast(){return{toast:enqueue}}function dismissAllToasts(){h.value=[]}export{ToastProvider,dismissAllToasts,useToast};
|
package/dist/toc/toc.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./toc.module.js";import{useRef as t}from"react";import{cn as n,useControllableSignal as r,useSignalEffect as i,useSignals as a}from"@cascivo/core";import{builtin as o,t as s}from"@cascivo/i18n";import{jsx as c}from"react/jsx-runtime";function
|
|
1
|
+
"use client";import e from"./toc.module.js";import{useRef as t}from"react";import{cn as n,useControllableSignal as r,useSignalEffect as i,useSignals as a}from"@cascivo/core";import{builtin as o,t as s}from"@cascivo/i18n";import{jsx as c}from"react/jsx-runtime";function Toc({items:l,activeId:u,onActiveChange:d,labels:f,className:p}){a();let m=u!==void 0,[h]=r({value:u,defaultValue:l[0]?.id??``}),g=t(d);return g.current=d,i(()=>{if(m||typeof document>`u`||typeof IntersectionObserver>`u`)return;let e=l.map(e=>document.getElementById(e.id)).filter(e=>e!==null);if(e.length===0)return;let t=new Set,n=new IntersectionObserver(e=>{for(let n of e)n.isIntersecting?t.add(n.target.id):t.delete(n.target.id);let n=l.find(e=>t.has(e.id));n&&n.id!==h.value&&(h.value=n.id,g.current?.(n.id))},{rootMargin:`0px 0px -70% 0px`,threshold:0});for(let t of e)n.observe(t);return()=>n.disconnect()}),c(`nav`,{"aria-label":f?.nav??s(o.toc.nav),className:n(e.toc,p),children:c(`ol`,{children:l.map(e=>c(`li`,{style:{"--toc-level":e.level??2},children:c(`a`,{href:`#${e.id}`,"aria-current":e.id===h.value?`location`:void 0,children:e.label})},e.id))})})}export{Toc};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{useSignal as e,useSignalEffect as t,useSignals as n}from"@cascivo/core";function
|
|
1
|
+
"use client";import{useSignal as e,useSignalEffect as t,useSignals as n}from"@cascivo/core";function useTocFromRegion(r,i={}){n();let a=i.selector??`h2, h3, h4`,o=e([]);return t(()=>{let e=r.current;e&&(o.value=Array.from(e.querySelectorAll(a)).filter(e=>e.id!==``).map(e=>({id:e.id,label:e.textContent?.trim()??``,level:Number(e.tagName.slice(1))||2})))}),o}export{useTocFromRegion};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./toggle-group.module.js";import{forwardRef as t}from"react";import{cn as n,useControllableSignal as r,useRovingFocus as i,useSignals as a}from"@cascivo/core";import{jsx as o,jsxs as s}from"react/jsx-runtime";function
|
|
1
|
+
"use client";import e from"./toggle-group.module.js";import{forwardRef as t}from"react";import{cn as n,useControllableSignal as r,useRovingFocus as i,useSignals as a}from"@cascivo/core";import{jsx as o,jsxs as s}from"react/jsx-runtime";function isSelected(e,t){return Array.isArray(e)?e.includes(t):e===t}var c=t(function({type:t,value:c,defaultValue:l,onValueChange:u,items:d,orientation:f=`horizontal`,size:p=`md`,disabled:m=!1,className:h,...g},_){a();let[v,y]=r({value:c,defaultValue:l??(t===`multiple`?[]:``),onChange:u}),b=i({orientation:f,loop:!0}),toggle=e=>{let n=v.value;if(t===`multiple`){let t=Array.isArray(n)?n:[];y(t.includes(e)?t.filter(t=>t!==e):[...t,e])}else y(n===e?``:e)};return o(`div`,{role:t===`single`?`radiogroup`:`group`,"data-orientation":f,"data-size":p,className:n(e.toggleGroup,h),ref:_,...g,children:d.map((n,r)=>{let i=isSelected(v.value,n.value),a=m||n.disabled,{ref:c,...l}=b.getItemProps(r);return s(`button`,{type:`button`,...t===`single`?{role:`radio`,"aria-checked":i}:{"aria-pressed":i},...l,ref:c,"data-state":i?`on`:`off`,disabled:a,"aria-label":n.icon&&!n.label?n.value:void 0,className:e.item,onClick:()=>toggle(n.value),children:[n.icon,n.label&&o(`span`,{children:n.label})]},n.value)})})});export{c as ToggleGroup};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./toggletip.module.js";import{useId as t,useRef as n}from"react";import{DismissableLayer as r,cn as i,useAnchorPosition as a,useControllableSignal 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"./toggletip.module.js";import{useId as t,useRef as n}from"react";import{DismissableLayer as r,cn as i,useAnchorPosition as a,useControllableSignal 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 Toggletip({trigger:f,children:p,placement:m=`top`,defaultOpen:h=!1,open:g,onOpenChange:_,labels:v,className:y}){s();let[b,x]=o({...g!==void 0&&{value:g},defaultValue:h,..._&&{onChange:_}}),S=n(null),C=n(null),w=t(),{anchorStyle:T,floatingStyle:E}=a({anchorRef:S,floatingRef:C,placement:m,enabled:b});return d(`span`,{className:i(e.root,y),children:[u(`button`,{ref:S,type:`button`,className:e.trigger,"aria-expanded":b.value,"aria-controls":w,"aria-label":v?.label??l(c.toggletip.label),style:T,onClick:()=>x(!b.value),children:f}),b.value?u(r,{onDismiss:()=>x(!1),children:u(`div`,{ref:C,id:w,role:`status`,"data-state":`open`,"data-placement":m,className:e.bubble,style:E,children:p})}):null]})}export{Toggletip};
|
package/dist/tooltip/tooltip.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./tooltip.module.js";import{cloneElement as t,useRef as n}from"react";import{createMachine as r,useId as i,useMachine as a,useSignalEffect as o,useSignals as s}from"@cascivo/core";import{jsx as c,jsxs as l}from"react/jsx-runtime";var u=r({initial:`hidden`,states:{hidden:{on:{SHOW:`visible`}},visible:{on:{HIDE:`hidden`}}}});function
|
|
1
|
+
"use client";import e from"./tooltip.module.js";import{cloneElement as t,useRef as n}from"react";import{createMachine as r,useId as i,useMachine as a,useSignalEffect as o,useSignals as s}from"@cascivo/core";import{jsx as c,jsxs as l}from"react/jsx-runtime";var u=r({initial:`hidden`,states:{hidden:{on:{SHOW:`visible`}},visible:{on:{HIDE:`hidden`}}}});function Tooltip({content:r,placement:d=`top`,children:f,delay:p=200}){s();let[m,h]=a(u),g=i(`cascivo-tooltip`),_=i(`cascivo-anchor`),v=n(void 0),y=n(null),b=m.value===`visible`,show=()=>{clearTimeout(v.current),v.current=setTimeout(()=>h(`SHOW`),p)},hide=()=>{clearTimeout(v.current),h(`HIDE`)};o(()=>()=>clearTimeout(v.current)),o(()=>{m.value===`visible`?y.current?.showPopover():y.current?.hidePopover()});let x=f,S=x.props,C={id:_,style:{anchorName:`--tooltip-${_}`},onMouseEnter:e=>{S.onMouseEnter?.(e),show()},onMouseLeave:e=>{S.onMouseLeave?.(e),hide()},onFocus:e=>{S.onFocus?.(e),show()},onBlur:e=>{S.onBlur?.(e),hide()},"aria-describedby":b?g:S[`aria-describedby`]};return l(`span`,{className:e.root,children:[t(x,C),c(`span`,{ref:y,popover:`manual`,role:`tooltip`,id:g,"data-placement":d,"data-state":b?`visible`:`hidden`,"data-anchor":`--tooltip-${_}`,className:e.tooltip,children:r})]})}export{Tooltip};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./tree-view.module.js";import{useRef as t}from"react";import{cn as n,useControllableSignal as r,useId as i,useSignal as a,useSignals as o,useTypeahead 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"./tree-view.module.js";import{useRef as t}from"react";import{cn as n,useControllableSignal as r,useId as i,useSignal as a,useSignals as o,useTypeahead 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 flattenVisible(e,t){let n=[],walk=(e,r,i)=>{for(let a of e){let e=!!a.children&&a.children.length>0,o=t.has(a.id);n.push({id:a.id,level:r,parentId:i,hasChildren:e,expanded:o}),e&&o&&walk(a.children,r+1,a.id)}};return walk(e,1,null),n}function toSelectionArray(e){return e===void 0?[]:Array.isArray(e)?e:e===``?[]:[e]}function TreeView({items:i,selectionMode:c=`single`,selected:l,defaultSelected:d,onSelectChange:f,onValueChange:p,expanded:m,defaultExpanded:h,onExpandedChange:g,className:_,"aria-label":v,ariaLabel:y,label:b}){o();let[x,S]=r({value:m,defaultValue:h??[],onChange:g}),[C,w]=r({value:l,defaultValue:d??(c===`multi`?[]:``),onChange:e=>{p?.(e),f?.(e)}}),T=a(null),E=t(new Map),D=new Set(x.value),O=flattenVisible(i,D),k=new Map(O.map((e,t)=>[e.id,t])),A=toSelectionArray(C.value),j=new Set(A),M=((...e)=>{for(let t of e)if(t&&k.has(t))return t;return O[0]?.id??null})(T.value,A[0]),commitExpanded=e=>S([...e]),expand=e=>{if(D.has(e))return;let t=new Set(D);t.add(e),commitExpanded(t)},collapse=e=>{if(!D.has(e))return;let t=new Set(D);t.delete(e),commitExpanded(t)},focusNode=e=>{T.value=e,E.current.get(e)?.focus()},step=(e,t)=>{let n=collectVisibleNodes(i,D);for(let r=e+t;r>=0&&r<O.length;r+=t){let e=O[r];if(e&&!n.get(e.id)?.disabled)return e}},edge=e=>e===`start`?step(-1,1):step(O.length,-1),select=e=>{if(!collectVisibleNodes(i,D).get(e)?.disabled)if(c===`multi`){let t=new Set(j);t.has(e)?t.delete(e):t.add(e),w([...t])}else w(e)},nodeText=e=>e.textValue===void 0?typeof e.label==`string`?e.label:null:e.textValue,N=s({onMatch:e=>{let t=T.peek(),n=t===null?-1:k.get(t)??-1,r=collectVisibleNodes(i,D),a=[...O.slice(n+1),...O.slice(0,n+1)].find(t=>{let n=r.get(t.id);if(!n||n.disabled)return!1;let i=nodeText(n);return i!==null&&i.toLowerCase().startsWith(e)});a&&focusNode(a.id)}}),handleKeyDown=(e,t)=>{let n=k.get(t.id);if(n===void 0)return;let{hasChildren:r,level:i,parentId:a,expanded:o}=O[n];switch(e.key){case`ArrowDown`:{e.preventDefault();let t=step(n,1);t&&focusNode(t.id);break}case`ArrowUp`:{e.preventDefault();let t=step(n,-1);t&&focusNode(t.id);break}case`ArrowRight`:if(e.preventDefault(),r&&!o)expand(t.id);else if(r&&o){let e=O[n+1];e&&e.level>i&&focusNode(e.id)}break;case`ArrowLeft`:e.preventDefault(),r&&o?collapse(t.id):a&&focusNode(a);break;case`Home`:{e.preventDefault();let t=edge(`start`);t&&focusNode(t.id);break}case`End`:{e.preventDefault();let t=edge(`end`);t&&focusNode(t.id);break}case`*`:{e.preventDefault();let t=new Set(D);for(let e of O)e.level===i&&e.parentId===a&&e.hasChildren&&t.add(e.id);commitExpanded(t);break}case`Enter`:case` `:if(e.preventDefault(),t.disabled)break;r&&(o?collapse:expand)(t.id),select(t.id);break;default:N.onKeyDown(e);break}},renderNode=(e,t,n,r)=>{let i=!!e.children&&e.children.length>0,a=D.has(e.id),o=j.has(e.id),s=M===e.id,c=e.disabled??!1,l=e.children?.length??0;return u(TreeItem,{node:e,level:t,posInSet:n,setSize:r,hasChildren:i,isExpanded:a,isSelected:o,isTabbable:s,isDisabled:c,itemRefs:E,onFocusNode:()=>T.value=e.id,onKeyDown:t=>handleKeyDown(t,e),onActivate:()=>{c||(focusNode(e.id),i&&(a?collapse:expand)(e.id),select(e.id))},children:i&&a&&e.children.map((e,n)=>renderNode(e,t+1,n+1,l))},e.id)};return u(`ul`,{role:`tree`,"aria-multiselectable":c===`multi`||void 0,"aria-label":y??v??b,className:n(e.tree,_),children:i.map((e,t)=>renderNode(e,1,t+1,i.length))})}function collectVisibleNodes(e,t){let n=new Map,walk=e=>{for(let r of e)n.set(r.id,r),r.children&&r.children.length>0&&t.has(r.id)&&walk(r.children)};return walk(e),n}function TreeItem({node:t,level:n,posInSet:r,setSize:a,hasChildren:o,isExpanded:s,isSelected:c,isTabbable:l,isDisabled:f,itemRefs:p,onFocusNode:m,onKeyDown:h,onActivate:g,children:_}){let v=i(`cascivo-tree-${t.id}`);return d(`li`,{role:`treeitem`,"aria-labelledby":v,"aria-level":n,"aria-posinset":r,"aria-setsize":a,"aria-selected":c,"aria-expanded":o?s:void 0,"aria-disabled":f||void 0,"data-disabled":f||void 0,tabIndex:l?0:-1,"data-selected":c||void 0,"data-state":o?s?`open`:`closed`:void 0,style:{"--cascivo-tree-level":n},className:e.item,ref:e=>{e?p.current.set(t.id,e):p.current.delete(t.id)},onFocus:e=>{e.target===e.currentTarget&&m()},onKeyDown:h,onClick:e=>{e.stopPropagation(),g()},children:[d(`span`,{className:e.row,children:[o?u(`span`,{className:e.twisty,"aria-hidden":`true`,"data-state":s?`open`:`closed`}):u(`span`,{className:e.twistySpacer,"aria-hidden":`true`}),t.icon&&u(`span`,{className:e.icon,"aria-hidden":`true`,children:t.icon}),u(`span`,{id:v,className:e.label,children:t.label})]}),o&&u(`div`,{role:`presentation`,className:e.groupWrap,"data-state":s?`open`:`closed`,children:u(`ul`,{role:`group`,className:e.group,children:_})})]})}var f={loading:()=>l(c.treeView.loading),expand:()=>l(c.treeView.expand),collapse:()=>l(c.treeView.collapse)};export{TreeView,f as treeViewMessages};
|
package/dist/user/user.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Avatar as e}from"../avatar/avatar.js";import t from"./user.module.js";import{cn as n}from"@cascivo/core/pure";import{jsx as r,jsxs as i}from"react/jsx-runtime";function
|
|
1
|
+
import{Avatar as e}from"../avatar/avatar.js";import t from"./user.module.js";import{cn as n}from"@cascivo/core/pure";import{jsx as r,jsxs as i}from"react/jsx-runtime";function User({name:a,description:o,avatarProps:s,className:c,children:l,...u}){let d=typeof a==`string`&&s?.name===void 0&&s?.fallback===void 0?{name:a}:{};return i(`div`,{role:`group`,className:n(t.user,c),...u,children:[r(e,{...d,...s}),i(`span`,{className:t.text,children:[r(`span`,{className:t.name,children:a}),o!=null&&r(`span`,{className:t.description,children:o})]}),l!=null&&r(`span`,{className:t.action,children:l})]})}export{User};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./virtual-list.module.js";import{cn as t,useSignal as n,useSignals as r}from"@cascivo/core";import{jsx as i}from"react/jsx-runtime";function
|
|
1
|
+
"use client";import e from"./virtual-list.module.js";import{cn as t,useSignal as n,useSignals as r}from"@cascivo/core";import{jsx as i}from"react/jsx-runtime";function VirtualList({items:a,itemHeight:o,height:s,renderItem:c,overscan:l=3,ariaLabel:u,label:d,className:f}){r();let p=n(0),m=Math.ceil(s/o),h=Math.floor(p.value/o),g=Math.max(0,h-l),_=Math.min(a.length,h+m+l),v=a.slice(g,_),onScroll=e=>{p.value=e.currentTarget.scrollTop},y={blockSize:`${s}px`};return i(`div`,{className:t(e.viewport,f),style:y,onScroll,role:`list`,"aria-label":u??d,tabIndex:0,children:i(`div`,{className:e.canvas,style:{blockSize:`${a.length*o}px`},children:v.map((t,n)=>{let r=g+n;return i(`div`,{role:`listitem`,"aria-setsize":a.length,"aria-posinset":r+1,className:e.row,style:{blockSize:`${o}px`,transform:`translateY(${r*o}px)`},children:c(t,r)},r)})})})}export{VirtualList};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import e from"./wheel-picker.module.js";import{useRef as t}from"react";import{cn as n,useEffectPropSignal as r,useId as i,useSignalEffect as a}from"@cascivo/core";import{jsx as o,jsxs as s}from"react/jsx-runtime";var c=120;function
|
|
1
|
+
"use client";import e from"./wheel-picker.module.js";import{useRef as t}from"react";import{cn as n,useEffectPropSignal as r,useId as i,useSignalEffect as a}from"@cascivo/core";import{jsx as o,jsxs as s}from"react/jsx-runtime";var c=120;function WheelPicker({options:l,value:u,onValueChange:d,visibleCount:f=5,itemHeight:p=36,ariaLabel:m,label:h,className:g}){let _=t(null),v=i(),y=Math.max(0,l.findIndex(e=>e.value===u)),b=t(l);b.current=l;let x=t(d);x.current=d;let S=t(p);S.current=p;let C=t(u);C.current=u;let scrollToIndex=(e,t)=>{let n=_.current;n&&n.scrollTo({top:e*S.current,behavior:t?`smooth`:`instant`})},w=r(u);a(()=>{let e=w.value,t=b.current.findIndex(t=>t.value===e);t>=0&&scrollToIndex(t,!1)}),a(()=>{let e=_.current;if(!e)return;let t,onScroll=()=>{clearTimeout(t),t=setTimeout(()=>{let t=Math.round(e.scrollTop/S.current),n=b.current[t];n&&n.value!==C.current&&x.current(n.value)},c)};return e.addEventListener(`scroll`,onScroll,{passive:!0}),()=>{clearTimeout(t),e.removeEventListener(`scroll`,onScroll)}});let select=e=>{let t=Math.max(0,Math.min(l.length-1,e)),n=l[t];!n||n.value===u||(d(n.value),scrollToIndex(t,!0))},onKeyDown=e=>{let t={ArrowDown:y+1,ArrowUp:y-1,Home:0,End:l.length-1,PageDown:y+f,PageUp:y-f}[e.key];t!==void 0&&(e.preventDefault(),select(t))},T=(f-1)/2*p,E={"--_item-height":`${p}px`,"--_pad":`${T}px`,"--_column-height":`${f*p}px`};return s(`div`,{className:n(e.root,g),style:E,children:[o(`div`,{ref:_,role:`listbox`,tabIndex:0,"aria-label":m??h,"aria-activedescendant":`${v}-${y}`,className:e.column,onKeyDown,children:l.map((t,n)=>o(`div`,{id:`${v}-${n}`,role:`option`,"aria-selected":n===y,className:e.option,children:t.label},t.value))}),o(`div`,{"aria-hidden":`true`,className:e.band})]})}export{WheelPicker};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cascivo/react",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Prebuilt cascivo design system components — use without copying source. @cascivo/themes installs with it; pair with @cascivo/charts (data-viz) and @cascivo/icons. Docs offline: npx @cascivo/docs",
|
|
6
6
|
"keywords": [
|
|
@@ -51,9 +51,9 @@
|
|
|
51
51
|
"provenance": true
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@cascivo/
|
|
55
|
-
"@cascivo/
|
|
56
|
-
"@cascivo/
|
|
54
|
+
"@cascivo/i18n": "^1.2.0",
|
|
55
|
+
"@cascivo/themes": "^1.0.0",
|
|
56
|
+
"@cascivo/core": "^1.2.0"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@testing-library/jest-dom": "^6.9.1",
|