@soybeanjs/ui 0.14.0 → 0.15.0-beta.1
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/README.md +79 -147
- package/README.zh-CN.md +79 -147
- package/dist/components/accordion/accordion.js +1 -1
- package/dist/components/accordion/accordion.vue.d.ts +3 -31
- package/dist/components/accordion/index.d.ts +3 -3
- package/dist/components/accordion/types.d.ts +6 -25
- package/dist/components/affix/affix.js +1 -0
- package/dist/components/affix/affix.vue.d.ts +22 -0
- package/dist/components/affix/index.d.ts +4 -0
- package/dist/components/affix/index.js +1 -0
- package/dist/components/affix/types.d.ts +15 -0
- package/dist/components/affix/variants.js +1 -0
- package/dist/components/alert/alert.js +1 -1
- package/dist/components/anchor/anchor-item.js +1 -0
- package/dist/components/anchor/anchor.js +1 -0
- package/dist/components/anchor/anchor.vue.d.ts +23 -0
- package/dist/components/anchor/context.js +1 -0
- package/dist/components/anchor/index.d.ts +4 -0
- package/dist/components/anchor/index.js +1 -0
- package/dist/components/anchor/types.d.ts +34 -0
- package/dist/components/anchor/variants.js +1 -0
- package/dist/components/autocomplete/autocomplete-group-option.js +1 -0
- package/dist/components/autocomplete/autocomplete-option.js +1 -0
- package/dist/components/autocomplete/autocomplete-single-option.js +1 -0
- package/dist/components/autocomplete/autocomplete.js +1 -0
- package/dist/components/autocomplete/autocomplete.vue.d.ts +47 -0
- package/dist/components/autocomplete/context.js +1 -0
- package/dist/components/autocomplete/index.d.ts +4 -0
- package/dist/components/autocomplete/index.js +1 -0
- package/dist/components/autocomplete/shared.js +1 -0
- package/dist/components/autocomplete/types.d.ts +94 -0
- package/dist/components/autocomplete/variants.js +1 -0
- package/dist/components/bottom-sheet/bottom-sheet-close.js +1 -0
- package/dist/components/bottom-sheet/bottom-sheet-close.vue.d.ts +18 -0
- package/dist/components/bottom-sheet/bottom-sheet.js +1 -0
- package/dist/components/bottom-sheet/bottom-sheet.vue.d.ts +72 -0
- package/dist/components/bottom-sheet/index.d.ts +3 -0
- package/dist/components/bottom-sheet/index.js +1 -0
- package/dist/components/bottom-sheet/types.d.ts +31 -0
- package/dist/components/bottom-sheet/variants.js +1 -0
- package/dist/components/button/button-link.vue.d.ts +1 -1
- package/dist/components/carousel/carousel-content.js +1 -0
- package/dist/components/carousel/carousel-content.vue.d.ts +18 -0
- package/dist/components/carousel/carousel-item.js +1 -0
- package/dist/components/carousel/carousel-item.vue.d.ts +18 -0
- package/dist/components/carousel/carousel-next.js +1 -0
- package/dist/components/carousel/carousel-next.vue.d.ts +22 -0
- package/dist/components/carousel/carousel-previous.js +1 -0
- package/dist/components/carousel/carousel-previous.vue.d.ts +22 -0
- package/dist/components/carousel/carousel.js +1 -0
- package/dist/components/carousel/carousel.vue.d.ts +15 -0
- package/dist/components/carousel/index.d.ts +8 -0
- package/dist/components/carousel/index.js +1 -0
- package/dist/components/carousel/types.d.ts +10 -0
- package/dist/components/carousel/variants.js +1 -0
- package/dist/components/color-area/color-area.js +1 -0
- package/dist/components/color-area/color-area.vue.d.ts +19 -0
- package/dist/components/color-area/index.d.ts +4 -0
- package/dist/components/color-area/index.js +1 -0
- package/dist/components/color-area/types.d.ts +14 -0
- package/dist/components/color-area/variants.js +1 -0
- package/dist/components/color-field/color-field.js +1 -0
- package/dist/components/color-field/color-field.vue.d.ts +15 -0
- package/dist/components/color-field/index.d.ts +4 -0
- package/dist/components/color-field/index.js +1 -0
- package/dist/components/color-field/types.d.ts +13 -0
- package/dist/components/color-field/variants.js +1 -0
- package/dist/components/color-picker/color-picker.js +1 -0
- package/dist/components/color-picker/color-picker.vue.d.ts +55 -0
- package/dist/components/color-picker/index.d.ts +2 -0
- package/dist/components/color-picker/index.js +1 -0
- package/dist/components/color-picker/shared.js +1 -0
- package/dist/components/color-picker/types.d.ts +47 -0
- package/dist/components/color-picker/variants.js +1 -0
- package/dist/components/color-slider/color-slider.js +1 -0
- package/dist/components/color-slider/color-slider.vue.d.ts +23 -0
- package/dist/components/color-slider/index.d.ts +4 -0
- package/dist/components/color-slider/index.js +1 -0
- package/dist/components/color-slider/types.d.ts +16 -0
- package/dist/components/color-swatch/color-swatch.js +1 -0
- package/dist/components/color-swatch/color-swatch.vue.d.ts +18 -0
- package/dist/components/color-swatch/index.d.ts +5 -0
- package/dist/components/color-swatch/index.js +1 -0
- package/dist/components/color-swatch/types.d.ts +16 -0
- package/dist/components/color-swatch/variants.d.ts +108 -0
- package/dist/components/color-swatch/variants.js +1 -0
- package/dist/components/color-swatch-picker/color-swatch-picker.js +1 -0
- package/dist/components/color-swatch-picker/color-swatch-picker.vue.d.ts +39 -0
- package/dist/components/color-swatch-picker/index.d.ts +5 -0
- package/dist/components/color-swatch-picker/index.js +1 -0
- package/dist/components/color-swatch-picker/types.d.ts +20 -0
- package/dist/components/color-swatch-picker/variants.d.ts +153 -0
- package/dist/components/color-swatch-picker/variants.js +1 -0
- package/dist/components/combobox/combobox-group-option.js +1 -0
- package/dist/components/combobox/combobox-option.js +1 -0
- package/dist/components/combobox/combobox-single-option.js +1 -0
- package/dist/components/combobox/combobox.js +1 -0
- package/dist/components/combobox/combobox.vue.d.ts +76 -0
- package/dist/components/combobox/index.d.ts +4 -0
- package/dist/components/combobox/index.js +1 -0
- package/dist/components/combobox/shared.js +1 -0
- package/dist/components/combobox/types.d.ts +68 -0
- package/dist/components/combobox/variants.js +1 -0
- package/dist/components/config-provider/config-provider.js +1 -1
- package/dist/components/config-provider/context.js +1 -1
- package/dist/components/config-provider/types.d.ts +14 -2
- package/dist/components/context-menu/context-menu-checkbox.js +1 -1
- package/dist/components/context-menu/context-menu-checkbox.vue.d.ts +8 -15
- package/dist/components/context-menu/context-menu-radio.js +1 -1
- package/dist/components/context-menu/context-menu-radio.vue.d.ts +8 -15
- package/dist/components/context-menu/context-menu-wrapper.js +1 -1
- package/dist/components/context-menu/context-menu-wrapper.vue.d.ts +5 -5
- package/dist/components/context-menu/context-menu.js +1 -1
- package/dist/components/context-menu/context-menu.vue.d.ts +7 -15
- package/dist/components/context-menu/index.d.ts +5 -7
- package/dist/components/context-menu/types.d.ts +14 -42
- package/dist/components/dialog/dialog-pure.vue.d.ts +1 -1
- package/dist/components/dialog/dialog.vue.d.ts +1 -1
- package/dist/components/drawer/drawer.vue.d.ts +1 -1
- package/dist/components/dropdown-menu/dropdown-menu-checkbox.js +1 -1
- package/dist/components/dropdown-menu/dropdown-menu-checkbox.vue.d.ts +8 -15
- package/dist/components/dropdown-menu/dropdown-menu-radio.js +1 -1
- package/dist/components/dropdown-menu/dropdown-menu-radio.vue.d.ts +8 -15
- package/dist/components/dropdown-menu/dropdown-menu-wrapper.js +1 -1
- package/dist/components/dropdown-menu/dropdown-menu-wrapper.vue.d.ts +5 -5
- package/dist/components/dropdown-menu/dropdown-menu.js +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.vue.d.ts +7 -15
- package/dist/components/dropdown-menu/index.d.ts +2 -4
- package/dist/components/dropdown-menu/index.js +1 -1
- package/dist/components/dropdown-menu/types.d.ts +14 -38
- package/dist/components/editable/editable.js +1 -0
- package/dist/components/editable/editable.vue.d.ts +85 -0
- package/dist/components/editable/index.d.ts +4 -0
- package/dist/components/editable/index.js +1 -0
- package/dist/components/editable/types.d.ts +20 -0
- package/dist/components/editable/variants.js +1 -0
- package/dist/components/empty/empty.js +1 -0
- package/dist/components/empty/empty.vue.d.ts +21 -0
- package/dist/components/empty/index.d.ts +5 -0
- package/dist/components/empty/index.js +1 -0
- package/dist/components/empty/types.d.ts +20 -0
- package/dist/components/empty/variants.d.ts +57 -0
- package/dist/components/empty/variants.js +1 -0
- package/dist/components/hover-card/hover-card.js +1 -0
- package/dist/components/hover-card/hover-card.vue.d.ts +35 -0
- package/dist/components/hover-card/index.d.ts +4 -0
- package/dist/components/hover-card/index.js +1 -0
- package/dist/components/hover-card/types.d.ts +22 -0
- package/dist/components/hover-card/variants.js +1 -0
- package/dist/components/icon/types.d.ts +3 -4
- package/dist/components/link/link.vue.d.ts +1 -1
- package/dist/components/menu/context.js +1 -1
- package/dist/components/menu/index.d.ts +2 -7
- package/dist/components/menu/index.js +1 -1
- package/dist/components/menu/types.d.ts +9 -86
- package/dist/components/menu/variants.js +1 -1
- package/dist/components/menubar/index.d.ts +2 -0
- package/dist/components/menubar/index.js +1 -0
- package/dist/components/menubar/menubar.js +1 -0
- package/dist/components/{menu/menu-option.vue.d.ts → menubar/menubar.vue.d.ts} +8 -24
- package/dist/components/menubar/types.d.ts +17 -0
- package/dist/components/menubar/variants.js +1 -0
- package/dist/components/navigation-menu/navigation-menu.vue.d.ts +2 -2
- package/dist/components/page-tabs/page-tabs.vue.d.ts +2 -2
- package/dist/components/page-tabs/types.d.ts +1 -1
- package/dist/components/popconfirm/popconfirm-cancel.js +1 -1
- package/dist/components/popconfirm/popconfirm-confirm.js +1 -1
- package/dist/components/popconfirm/popconfirm.vue.d.ts +1 -1
- package/dist/components/popover/popover.js +1 -1
- package/dist/components/progress/context.d.ts +5 -0
- package/dist/components/progress/context.js +1 -0
- package/dist/components/progress/index.d.ts +8 -0
- package/dist/components/progress/index.js +1 -0
- package/dist/components/progress/loading-bar.js +1 -0
- package/dist/components/progress/loading-bar.vue.d.ts +25 -0
- package/dist/components/progress/progress-circle.js +1 -0
- package/dist/components/progress/progress-circle.vue.d.ts +29 -0
- package/dist/components/progress/progress.js +1 -0
- package/dist/components/progress/progress.vue.d.ts +30 -0
- package/dist/components/progress/shared.d.ts +7 -0
- package/dist/components/progress/shared.js +1 -0
- package/dist/components/progress/types.d.ts +43 -0
- package/dist/components/progress/variants.js +1 -0
- package/dist/components/scroll-area/index.d.ts +4 -0
- package/dist/components/scroll-area/index.js +1 -0
- package/dist/components/scroll-area/scroll-area.js +1 -0
- package/dist/components/scroll-area/scroll-area.vue.d.ts +18 -0
- package/dist/components/scroll-area/types.d.ts +15 -0
- package/dist/components/scroll-area/variants.js +1 -0
- package/dist/components/select/select.vue.d.ts +2 -2
- package/dist/components/skeleton/index.d.ts +3 -0
- package/dist/components/skeleton/index.js +1 -0
- package/dist/components/skeleton/skeleton.js +1 -0
- package/dist/components/skeleton/skeleton.vue.d.ts +20 -0
- package/dist/components/skeleton/types.d.ts +16 -0
- package/dist/components/skeleton/variants.d.ts +60 -0
- package/dist/components/skeleton/variants.js +1 -0
- package/dist/components/slider/index.d.ts +4 -0
- package/dist/components/slider/index.js +1 -0
- package/dist/components/slider/slider.js +1 -0
- package/dist/components/slider/slider.vue.d.ts +28 -0
- package/dist/components/slider/types.d.ts +16 -0
- package/dist/components/slider/variants.js +1 -0
- package/dist/components/spinner/index.d.ts +2 -0
- package/dist/components/spinner/index.js +1 -0
- package/dist/components/spinner/spinner.js +1 -0
- package/dist/components/spinner/spinner.vue.d.ts +10 -0
- package/dist/components/spinner/types.d.ts +19 -0
- package/dist/components/spinner/variants.js +1 -0
- package/dist/components/splitter/index.d.ts +5 -0
- package/dist/components/splitter/index.js +1 -0
- package/dist/components/splitter/splitter-group.js +1 -0
- package/dist/components/splitter/splitter-group.vue.d.ts +22 -0
- package/dist/components/splitter/splitter-panel.js +1 -0
- package/dist/components/splitter/splitter-panel.vue.d.ts +32 -0
- package/dist/components/splitter/splitter-resize-handle.js +1 -0
- package/dist/components/splitter/splitter-resize-handle.vue.d.ts +415 -0
- package/dist/components/splitter/types.d.ts +12 -0
- package/dist/components/splitter/variants.js +1 -0
- package/dist/components/stepper/index.d.ts +4 -0
- package/dist/components/stepper/index.js +1 -0
- package/dist/components/stepper/stepper.js +1 -0
- package/dist/components/stepper/stepper.vue.d.ts +121 -0
- package/dist/components/stepper/types.d.ts +26 -0
- package/dist/components/stepper/variants.js +1 -0
- package/dist/components/table/hooks.d.ts +5 -5
- package/dist/components/table/hooks.js +1 -1
- package/dist/components/table/index.d.ts +1 -1
- package/dist/components/table/table-filter-popover.js +1 -0
- package/dist/components/table/table-radio.js +1 -1
- package/dist/components/table/table.js +1 -1
- package/dist/components/table/table.vue.d.ts +7 -3
- package/dist/components/table/types.d.ts +25 -83
- package/dist/components/table/variants.js +1 -1
- package/dist/components/tags-input/index.d.ts +5 -0
- package/dist/components/tags-input/index.js +1 -0
- package/dist/components/tags-input/tags-input-item-delete.js +1 -0
- package/dist/components/tags-input/tags-input-item-delete.vue.d.ts +18 -0
- package/dist/components/tags-input/tags-input.js +1 -0
- package/dist/components/tags-input/tags-input.vue.d.ts +29 -0
- package/dist/components/tags-input/types.d.ts +12 -0
- package/dist/components/tags-input/variants.js +1 -0
- package/dist/components/toast/index.d.ts +4 -5
- package/dist/components/toast/index.js +1 -1
- package/dist/components/toast/styles.js +274 -0
- package/dist/components/toast/toaster.js +1 -0
- package/dist/components/toast/toaster.vue.d.ts +22 -0
- package/dist/components/toast/types.d.ts +5 -55
- package/dist/components/toast/variants.js +1 -1
- package/dist/components/toggle/index.d.ts +3 -0
- package/dist/components/toggle/index.js +1 -0
- package/dist/components/toggle/toggle.js +1 -0
- package/dist/components/toggle/toggle.vue.d.ts +30 -0
- package/dist/components/toggle/types.d.ts +14 -0
- package/dist/components/toggle/variants.d.ts +100 -0
- package/dist/components/toggle/variants.js +1 -0
- package/dist/components/toggle-group/index.d.ts +6 -0
- package/dist/components/toggle-group/index.js +1 -0
- package/dist/components/toggle-group/toggle-group-item.js +1 -0
- package/dist/components/toggle-group/toggle-group-item.vue.d.ts +22 -0
- package/dist/components/toggle-group/toggle-group.js +1 -0
- package/dist/components/toggle-group/toggle-group.vue.d.ts +24 -0
- package/dist/components/toggle-group/types.d.ts +15 -0
- package/dist/components/toggle-group/variants.d.ts +216 -0
- package/dist/components/toggle-group/variants.js +1 -0
- package/dist/components/toolbar/index.d.ts +4 -0
- package/dist/components/toolbar/index.js +1 -0
- package/dist/components/toolbar/toolbar.js +1 -0
- package/dist/components/toolbar/toolbar.vue.d.ts +18 -0
- package/dist/components/toolbar/types.d.ts +9 -0
- package/dist/components/toolbar/variants.js +1 -0
- package/dist/components/tree-menu/tree-menu-option-slot.js +1 -1
- package/dist/components/tree-menu/types.d.ts +1 -1
- package/dist/components/tree-menu/variants.js +1 -1
- package/dist/constants/components.d.ts +27 -0
- package/dist/constants/components.js +1 -1
- package/dist/index.d.ts +179 -94
- package/dist/index.js +1 -1
- package/dist/styles.css +597 -111
- package/dist/theme/config.js +1 -1
- package/package.json +21 -18
- package/dist/components/menu/menu-checkbox-options.js +0 -1
- package/dist/components/menu/menu-checkbox-options.vue.d.ts +0 -28
- package/dist/components/menu/menu-item-slot.js +0 -1
- package/dist/components/menu/menu-option.js +0 -1
- package/dist/components/menu/menu-options.js +0 -1
- package/dist/components/menu/menu-options.vue.d.ts +0 -48
- package/dist/components/menu/menu-radio-options.js +0 -1
- package/dist/components/menu/menu-radio-options.vue.d.ts +0 -28
- package/dist/components/menu/shared.js +0 -1
- package/dist/components/table/shared.js +0 -1
- package/dist/components/toast/context.d.ts +0 -5
- package/dist/components/toast/context.js +0 -1
- package/dist/components/toast/shared.js +0 -1
- package/dist/components/toast/toast-provider.js +0 -1
- package/dist/components/toast/toast.js +0 -1
- package/dist/components/toast/toast.vue.d.ts +0 -21
- package/dist/components/toast/variants.d.ts +0 -60
|
@@ -1 +1 @@
|
|
|
1
|
-
import{shallowRef as e,watch as t}from"vue";import{useTable as n}from"@soybeanjs/hooks";function
|
|
1
|
+
import{shallowRef as e,watch as t}from"vue";import{useTable as n}from"@soybeanjs/hooks";import{getTableColumnKey as r,isTableGroupColumn as i}from"@soybeanjs/headless/table";function a(e){return n({...e,getColumnChecks:s,getColumns:c})}function o(r){let{page:i=1,pageSize:a=10,fetchOnPaginationChange:o=!0,onFetched:l}=r,u=e(i),d=e(a),f=e(0),p=n({...r,pagination:!0,getColumnChecks:s,getColumns:c,onFetched:e=>{e.total&&e.total!==f.value&&(f.value=e.total),e.page&&e.page!==u.value&&(u.value=e.page),e.pageSize&&e.pageSize!==d.value&&(d.value=e.pageSize),l?.(e)}});return t([u,d],()=>{o&&p.fetchData()},{flush:`post`}),{page:u,pageSize:d,total:f,...p}}function s(e){let t=[];return e.forEach(e=>{if(i(e)){t.push(...s(e.children));return}let{type:n,title:a,hidden:o}=e;if(n||!e.dataIndex)return;let c=r(e),l={key:c,title:a||c,checked:!0,hidden:o,fixed:!1};t.push(l)}),t}function c(e,t){let n=new Map,a=new Map(t.map(e=>[e.key,e]));return e.forEach((e,t)=>{if(e.type){n.set(e.type,{column:e,index:t});return}}),e.reduce((e,o,s)=>{if(o.type){let t=n.get(o.type);return!t||t.index!==s||e.push(o),e}if(i(o)){let n=c(o.children,t);return n.length>0&&e.push({...o,children:n}),e}return a.get(r(o))?.checked!==!1&&e.push(o),e},[])}export{o as usePaginatedTable,a as useTable};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TableBaseData, TableColumn, TableColumnFilter, TableColumnFilterOption, TableColumnFilterValue, TableColumnType, TableEmits, TableExtendedUi, TableExtraUiSlot, TableFilterPopoverColumnMeta, TableFilterPopoverOption, TableFilterPopoverProps, TableProps, TableRadioProps, TableSlots, TableSortOrder } from "./types.js";
|
|
2
2
|
import { _default } from "./table.vue.js";
|
|
3
3
|
import { usePaginatedTable, useTable as useTable$1 } from "./hooks.js";
|
|
4
4
|
import { TableCell as STableCell, TableRow as STableRow } from "@soybeanjs/headless";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{miniSizeMap as e}from"../../theme/config.js";import"../../theme/index.js";import t from"../button/button.js";import n from"../button/button-icon.js";import r from"../checkbox/checkbox.js";import i from"../popover/popover.js";import a from"../input/input.js";import{Fragment as o,computed as s,createBlock as c,createCommentVNode as l,createElementBlock as u,createElementVNode as d,createTextVNode as f,createVNode as p,defineComponent as m,normalizeClass as h,openBlock as g,renderList as _,toDisplayString as v,withCtx as y}from"vue";const b=m({name:`STableFilterPopover`,__name:`table-filter-popover`,props:{size:{},ui:{},column:{},filterValue:{},filterValues:{},filterState:{},filtered:{type:Boolean},filterOptions:{},setFilterValue:{type:Function},setFilterValues:{type:Function},setFilterState:{type:Function},toggleFilterOption:{type:Function},isFilterOptionSelected:{type:Function},clearFilter:{type:Function}},setup(m){let b=m,x=s(()=>b.column.title??b.column.key??b.column.dataIndex??`column`),S=s(()=>{let e=b.filterValue.trim().toLowerCase();return e?b.filterOptions.filter(t=>t.label.toLowerCase().includes(e)||t.value.toLowerCase().includes(e)):b.filterOptions}),C=s(()=>S.value.length>0),w=s(()=>b.filterValues.length>0?`${b.filterValues.length} selected`:b.filterValue.trim().length>0?`Keyword active`:b.filterOptions.length>0?`${b.filterOptions.length} options`:`No filter options`),T=s(()=>b.filtered?`Edit filter for ${x.value}`:`Filter ${x.value}`),E=s(()=>`Search filter options for ${x.value}`),D=s(()=>e[b.size??`md`]);function O(e){b.setFilterValue(String(e??``))}return(e,s)=>(g(),c(i,{class:h(m.ui.filterPopup),size:m.size,placement:`bottom-end`,"show-arrow":!1},{trigger:y(()=>[p(n,{icon:`lucide:funnel`,"data-filtered":b.filtered?``:void 0,class:h(m.ui.filterTrigger),size:D.value,"aria-label":T.value,"aria-pressed":m.filtered||void 0},null,8,[`data-filtered`,`class`,`size`,`aria-label`,`aria-pressed`])]),default:y(()=>[p(a,{class:h(m.ui.filterSearch),size:D.value,"model-value":m.filterValue,"control-props":{"aria-label":E.value,placeholder:`Search ${x.value}`},"onUpdate:modelValue":O},null,8,[`class`,`size`,`model-value`,`control-props`]),m.filterOptions.length>0?(g(),u(`div`,{key:0,class:h(m.ui.filterOptions)},[(g(!0),u(o,null,_(S.value,e=>(g(),c(r,{key:e.value,class:h(m.ui.filterOption),size:D.value,disabled:e.disabled,"model-value":m.isFilterOptionSelected(e.value),label:e.label,ui:{label:m.ui.filterOptionLabel},"control-props":{"aria-label":`Select ${e.label}`},"onUpdate:modelValue":t=>m.toggleFilterOption(e.value)},null,8,[`class`,`size`,`disabled`,`model-value`,`label`,`ui`,`control-props`,`onUpdate:modelValue`]))),128)),C.value?l(`v-if`,!0):(g(),u(`div`,{key:0,class:h(m.ui.filterEmpty)},`No matching options`,2))],2)):l(`v-if`,!0),d(`div`,{class:h(m.ui.filterFooter)},[d(`span`,{class:h(m.ui.filterCount)},v(w.value),3),m.filtered?(g(),c(t,{key:0,variant:`ghost`,color:`accent`,"fit-content":``,size:D.value,class:h(m.ui.filterAction),onClick:m.clearFilter},{default:y(()=>[...s[0]||=[f(` Clear `,-1)]]),_:1},8,[`size`,`class`,`onClick`])):l(`v-if`,!0)],2)]),_:1},8,[`class`,`size`]))}});export{b as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{tableVariants as e}from"./variants.js";import{computed as t,createCommentVNode as n,createElementBlock as r,defineComponent as i,normalizeClass as a,openBlock as o}from"vue";const s=i({name:`STableRadio`,__name:`table-radio`,props:{size:{},checked:{type:Boolean}},setup(i){let
|
|
1
|
+
import{tableVariants as e}from"./variants.js";import{computed as t,createCommentVNode as n,createElementBlock as r,defineComponent as i,normalizeClass as a,openBlock as o}from"vue";const s=[`aria-pressed`],c=i({name:`STableRadio`,__name:`table-radio`,props:{size:{},checked:{type:Boolean}},setup(i){let c=i,l=t(()=>{let t=e({size:c.size});return{radioRoot:t.radioRoot(),radioIndicator:t.radioIndicator()}});return(e,t)=>(o(),r(`button`,{type:`button`,"aria-pressed":i.checked,class:a(l.value.radioRoot)},[i.checked?(o(),r(`span`,{key:0,class:a(l.value.radioIndicator)},null,2)):n(`v-if`,!0)],10,s))}});export{c as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import
|
|
1
|
+
import{mergeSlotVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import n from"../button/button-icon.js";import r from"../checkbox/checkbox.js";import i from"./table-filter-popover.js";import{tableVariants as a}from"./variants.js";import o from"./table-radio.js";import{computed as s,createBlock as c,createCommentVNode as l,createElementVNode as u,createSlots as d,createVNode as f,defineComponent as p,guardReactiveProps as m,mergeProps as h,normalizeClass as g,normalizeProps as _,openBlock as v,renderList as y,renderSlot as b,toHandlers as x,unref as S,useSlots as C,withCtx as w}from"vue";import{useForwardListeners as T,useOmitProps as E}from"@soybeanjs/headless/composables";import{TableCompact as D,provideTableUi as O}from"@soybeanjs/headless";const k=[`aria-label`,`aria-pressed`,`data-resizing`,`onPointerdown`,`onKeydown`],A=p({name:`STable`,__name:`table`,props:{class:{},size:{},ui:{},bordered:{type:Boolean},striped:{type:Boolean},columns:{},data:{},rowKey:{type:Function},defaultSortState:{},sortState:{},defaultFilterState:{},filterState:{},defaultColumnWidths:{},columnWidths:{},getChildren:{type:Function},indent:{},virtual:{type:Boolean},height:{},estimateSize:{type:[Number,Function]},virtualizerOptions:{},defaultExpanded:{},expanded:{},defaultExpandAll:{type:Boolean},contentProps:{},headerProps:{},bodyProps:{},footerProps:{},headProps:{},rowProps:{},cellProps:{},dir:{},defaultSelected:{},selected:{},multiple:{}},emits:[`update:sortState`,`update:filterState`,`update:columnWidths`,`update:expanded`,`update:selected`],setup(p,{emit:A}){let j=p,M=A,N=C(),P=E(j,[`class`,`ui`,`size`,`bordered`,`striped`]),F=T(M),I=s(()=>Object.keys(N)),L=s(()=>e(a({size:j.size,bordered:j.bordered,striped:j.striped}),j.ui,{root:j.class})),R=s(()=>t[j.size??`md`]),z=e=>e===`asc`?`lucide:arrow-up`:e===`desc`?`lucide:arrow-down`:`lucide:arrow-up-down`;return O(L),(e,t)=>(v(),c(S(D),h(S(P),x(S(F))),d({_:2},[y(I.value,t=>({name:t,fn:w(n=>[b(e.$slots,t,_(m(n)))])})),N[`header-selection`]?void 0:{name:`header-selection`,fn:w(({checked:e,disabled:t,multiple:n,updateChecked:i})=>[n?(v(),c(r,{key:0,disabled:t,"model-value":e,class:g(L.value.selection),"control-props":{"aria-label":`Select all rows`},"onUpdate:modelValue":i},null,8,[`disabled`,`model-value`,`class`,`onUpdate:modelValue`])):l(`v-if`,!0)]),key:`0`},N.selection?void 0:{name:`selection`,fn:w(({checked:e,multiple:t,ariaLabel:n,toggleSelect:i})=>[t?(v(),c(r,{key:0,class:g(L.value.selection),"model-value":e,"control-props":{"aria-label":n},"onUpdate:modelValue":e=>i()},null,8,[`class`,`model-value`,`control-props`,`onUpdate:modelValue`])):(v(),c(o,{key:1,size:p.size,checked:e,"aria-label":n,onClick:e=>i()},null,8,[`size`,`checked`,`aria-label`,`onClick`]))]),key:`1`},N[`header-sort`]?void 0:{name:`header-sort`,fn:w(({sortOrder:e,ariaLabel:t,toggleSort:r})=>[f(n,{icon:z(e),class:g(L.value.sortTrigger),size:R.value,"aria-label":t,"data-sorted":e?``:void 0,onClick:e=>r()},null,8,[`icon`,`class`,`size`,`aria-label`,`data-sorted`,`onClick`])]),key:`2`},N[`header-filter`]?void 0:{name:`header-filter`,fn:w(e=>[f(i,h(e,{ui:L.value,size:p.size}),null,16,[`ui`,`size`])]),key:`3`},N[`header-resize`]?void 0:{name:`header-resize`,fn:w(({resizing:e,ariaLabel:t,onPointerdown:n,onKeydown:r})=>[u(`button`,{type:`button`,class:g(L.value.resizeHandle),"aria-label":t,"aria-pressed":e,"data-resizing":e||void 0,onPointerdown:n,onKeydown:r},null,42,k)]),key:`4`},N[`tree-toggle`]?void 0:{name:`tree-toggle`,fn:w(({expanded:e,ariaLabel:t,toggleExpand:r})=>[f(n,{class:g(L.value.treeToggle),size:R.value,"aria-expanded":e,"aria-label":t,icon:e?`lucide:chevron-down`:`lucide:chevron-right`,onClick:e=>r()},null,8,[`class`,`size`,`aria-expanded`,`aria-label`,`icon`,`onClick`])]),key:`5`},N.expand?void 0:{name:`expand`,fn:w(({expanded:e,ariaLabel:t,hasChildren:r,toggleExpand:i})=>[r||N[`expanded-row`]?(v(),c(n,{key:0,icon:e?`lucide:chevron-down`:`lucide:chevron-right`,class:g(L.value.treeToggle),size:R.value,"aria-expanded":e,"aria-label":t,"data-expanded":e?``:void 0,onClick:e=>i()},null,8,[`icon`,`class`,`size`,`aria-expanded`,`aria-label`,`data-expanded`,`onClick`])):l(`v-if`,!0)]),key:`6`}]),1040))}});export{A as default};
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TableBaseData, TableProps, TableSlots } from "./types.js";
|
|
2
2
|
import * as _$vue from "vue";
|
|
3
|
+
import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
|
|
3
4
|
|
|
4
5
|
//#region src/components/table/table.vue.d.ts
|
|
5
|
-
declare const __VLS_export: <T extends
|
|
6
|
+
declare const __VLS_export: <T extends TableBaseData = TableBaseData, R extends string | number = string | number, M extends boolean = boolean>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
6
7
|
props: _$vue.PublicProps & __VLS_PrettifyLocal<TableProps<T, R, M> & {
|
|
8
|
+
"onUpdate:sortState"?: ((state: _$_soybeanjs_headless0.TableSortState | undefined) => any) | undefined;
|
|
9
|
+
"onUpdate:filterState"?: ((state: _$_soybeanjs_headless0.TableFilterState) => any) | undefined;
|
|
10
|
+
"onUpdate:columnWidths"?: ((state: _$_soybeanjs_headless0.TableColumnWidthState) => any) | undefined;
|
|
7
11
|
"onUpdate:expanded"?: ((expanded: R[]) => any) | undefined;
|
|
8
12
|
"onUpdate:selected"?: ((selected: M extends true ? R[] : R | undefined) => any) | undefined;
|
|
9
13
|
}> & (typeof globalThis extends {
|
|
@@ -12,7 +16,7 @@ declare const __VLS_export: <T extends BaseTableData = BaseTableData, R extends
|
|
|
12
16
|
expose: (exposed: {}) => void;
|
|
13
17
|
attrs: any;
|
|
14
18
|
slots: TableSlots<T>;
|
|
15
|
-
emit: ((evt: "update:expanded", expanded: R[]) => void) & ((evt: "update:selected", selected: M extends true ? R[] : R | undefined) => void);
|
|
19
|
+
emit: ((evt: "update:sortState", state: _$_soybeanjs_headless0.TableSortState | undefined) => void) & ((evt: "update:filterState", state: _$_soybeanjs_headless0.TableFilterState) => void) & ((evt: "update:columnWidths", state: _$_soybeanjs_headless0.TableColumnWidthState) => void) & ((evt: "update:expanded", expanded: R[]) => void) & ((evt: "update:selected", selected: M extends true ? R[] : R | undefined) => void);
|
|
16
20
|
}>) => _$vue.VNode & {
|
|
17
21
|
__ctx?: Awaited<typeof __VLS_setup>;
|
|
18
22
|
};
|
|
@@ -1,97 +1,39 @@
|
|
|
1
1
|
import { ThemeSize } from "../../theme/types.js";
|
|
2
|
-
import {
|
|
2
|
+
import { ClassValue, UiClass } from "@soybeanjs/headless";
|
|
3
|
+
import { TableBaseData, TableColumn, TableColumnFilter, TableColumnFilterOption, TableColumnFilterValue, TableColumnType, TableCompactEmits, TableCompactProps, TableCompactSlots, TableHeaderFilterSlotProps, TableSortOrder, TableUiSlot, TableUnifiedKey } from "@soybeanjs/headless/table";
|
|
3
4
|
|
|
4
5
|
//#region src/components/table/types.d.ts
|
|
5
|
-
type
|
|
6
|
-
type
|
|
7
|
-
|
|
8
|
-
interface TableColumn<T = BaseTableData> {
|
|
9
|
-
type?: TableColumnType;
|
|
10
|
-
dataIndex?: Path<T>;
|
|
11
|
-
title?: string;
|
|
12
|
-
align?: TableAlign;
|
|
13
|
-
width?: string;
|
|
14
|
-
hidden?: boolean;
|
|
15
|
-
}
|
|
16
|
-
interface TableSelectionProps<R extends string | number = string | number, M extends boolean = false> {
|
|
17
|
-
defaultSelected?: M extends true ? R[] : R;
|
|
18
|
-
selected?: M extends true ? R[] : R;
|
|
19
|
-
multiple?: M;
|
|
20
|
-
}
|
|
21
|
-
interface TableProps<T extends BaseTableData = BaseTableData, R extends string | number = string | number, M extends boolean = false> extends TableRootProps, TableSelectionProps<R, M> {
|
|
6
|
+
type TableExtraUiSlot = 'selection' | 'filterTrigger' | 'filterPopup' | 'filterSearch' | 'filterOptions' | 'filterOption' | 'filterOptionLabel' | 'filterFooter' | 'filterCount' | 'filterAction' | 'filterEmpty';
|
|
7
|
+
type TableExtendedUi = UiClass<TableUiSlot | TableExtraUiSlot>;
|
|
8
|
+
interface TableProps<T extends TableBaseData = TableBaseData, R extends string | number = string | number, M extends boolean = false> extends TableCompactProps<T, R, M> {
|
|
22
9
|
/**
|
|
23
10
|
* Additional class names to apply to the table.
|
|
24
11
|
*/
|
|
25
|
-
class?:
|
|
26
|
-
ui?: Partial<TableUi>;
|
|
12
|
+
class?: ClassValue;
|
|
27
13
|
size?: ThemeSize;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
rowKey: (row: T) => R;
|
|
31
|
-
bordered?: boolean | 'all';
|
|
14
|
+
ui?: Partial<TableExtendedUi>;
|
|
15
|
+
bordered?: boolean;
|
|
32
16
|
striped?: boolean;
|
|
33
|
-
defaultExpanded?: R[];
|
|
34
|
-
expanded?: R[];
|
|
35
|
-
defaultExpandAll?: boolean;
|
|
36
|
-
contentProps?: TableContentProps;
|
|
37
|
-
headerProps?: TableHeaderProps;
|
|
38
|
-
bodyProps?: TableBodyProps;
|
|
39
|
-
footerProps?: TableFooterProps;
|
|
40
|
-
headProps?: TableHeadProps;
|
|
41
|
-
rowProps?: TableRowProps;
|
|
42
|
-
cellProps?: TableCellProps;
|
|
43
17
|
}
|
|
44
|
-
type TableEmits<R extends
|
|
45
|
-
|
|
46
|
-
'update:selected': [selected: M extends true ? R[] : R | undefined];
|
|
47
|
-
};
|
|
48
|
-
type TableSlots<T extends BaseTableData> = { [K in `header-${Path<T>}`]?: (props: {
|
|
49
|
-
column: TableColumn<T>;
|
|
50
|
-
}) => any } & { [K in Path<T>]?: (props: {
|
|
51
|
-
index: number;
|
|
52
|
-
column: TableColumn<T>;
|
|
53
|
-
row: T;
|
|
54
|
-
value: PathValue<T, K>;
|
|
55
|
-
}) => any } & {
|
|
56
|
-
'header-index'?: (props: {
|
|
57
|
-
column: TableColumn<T>;
|
|
58
|
-
}) => any;
|
|
59
|
-
'header-selection'?: (props: {
|
|
60
|
-
column: TableColumn<T>;
|
|
61
|
-
multiple: boolean;
|
|
62
|
-
}) => any;
|
|
63
|
-
'header-expand'?: (props: {
|
|
64
|
-
column: TableColumn<T>;
|
|
65
|
-
}) => any;
|
|
66
|
-
index?: (props: {
|
|
67
|
-
index: number;
|
|
68
|
-
column: TableColumn<T>;
|
|
69
|
-
row: T;
|
|
70
|
-
}) => any;
|
|
71
|
-
selection?: (props: {
|
|
72
|
-
index: number;
|
|
73
|
-
column: TableColumn<T>;
|
|
74
|
-
row: T;
|
|
75
|
-
multiple: boolean;
|
|
76
|
-
}) => any;
|
|
77
|
-
expand?: (props: {
|
|
78
|
-
index: number;
|
|
79
|
-
column: TableColumn<T>;
|
|
80
|
-
row: T;
|
|
81
|
-
expanded: boolean;
|
|
82
|
-
toggleExpand: () => void;
|
|
83
|
-
}) => any;
|
|
84
|
-
'expanded-row'?: (props: {
|
|
85
|
-
index: number;
|
|
86
|
-
row: T;
|
|
87
|
-
}) => any;
|
|
88
|
-
footer?: (props: {
|
|
89
|
-
columnSize: number;
|
|
90
|
-
}) => any;
|
|
91
|
-
};
|
|
18
|
+
type TableEmits<R extends TableUnifiedKey = TableUnifiedKey, M extends boolean = false> = TableCompactEmits<R, M>;
|
|
19
|
+
type TableSlots<T extends TableBaseData = TableBaseData> = TableCompactSlots<T>;
|
|
92
20
|
interface TableRadioProps {
|
|
93
21
|
size?: ThemeSize;
|
|
94
22
|
checked?: boolean;
|
|
95
23
|
}
|
|
24
|
+
interface TableFilterPopoverColumnMeta {
|
|
25
|
+
title?: string;
|
|
26
|
+
key?: string;
|
|
27
|
+
dataIndex?: string;
|
|
28
|
+
}
|
|
29
|
+
interface TableFilterPopoverOption {
|
|
30
|
+
label: string;
|
|
31
|
+
value: string;
|
|
32
|
+
disabled?: boolean;
|
|
33
|
+
}
|
|
34
|
+
interface TableFilterPopoverProps<T extends TableBaseData = TableBaseData> extends TableHeaderFilterSlotProps<T> {
|
|
35
|
+
size?: ThemeSize;
|
|
36
|
+
ui: TableExtendedUi;
|
|
37
|
+
}
|
|
96
38
|
//#endregion
|
|
97
|
-
export {
|
|
39
|
+
export { type TableBaseData, type TableColumn, type TableColumnFilter, type TableColumnFilterOption, type TableColumnFilterValue, type TableColumnType, TableEmits, TableExtendedUi, TableExtraUiSlot, TableFilterPopoverColumnMeta, TableFilterPopoverOption, TableFilterPopoverProps, TableProps, TableRadioProps, TableSlots, type TableSortOrder };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{tv as e}from"tailwind-variants";const t=e({slots:{root:`relative overflow-auto`,content:`w-full`,header:`sticky top-0
|
|
1
|
+
import{tv as e}from"tailwind-variants";const t=e({slots:{root:`relative overflow-auto rounded-md bg-accent`,content:`min-w-full w-max border-spacing-0`,header:`sticky top-0 start-0 z-10 [&>tr:last-child]:border-b-0`,body:[`[&>tr:first-child>td:first-child]:rounded-tl-md [&>tr:first-child>td:last-child]:rounded-tr-md`,`[&>tr:last-child>td:first-child]:rounded-bl-md [&>tr:last-child>td:last-child]:rounded-br-md`],footer:`font-medium [&>tr:last-child]:border-b-0`,row:`bg-background border-b hover:bg-primary-foreground transition-colors`,head:`box-border bg-accent text-foreground relative font-medium whitespace-nowrap`,cell:`box-border whitespace-nowrap data-[fixed]:bg-background`,fixed:[`relative`,`data-[fixed-side=start]:after:pointer-events-none data-[fixed-side=start]:after:absolute data-[fixed-side=start]:after:bottom-0 data-[fixed-side=start]:after:end-0 data-[fixed-side=start]:after:top-0 data-[fixed-side=start]:after:w-4 data-[fixed-side=start]:after:bg-gradient-to-l data-[fixed-side=start]:after:from-foreground/8 data-[fixed-side=start]:after:to-transparent data-[fixed-side=start]:after:content-empty`,`data-[fixed-side=end]:before:pointer-events-none data-[fixed-side=end]:before:absolute data-[fixed-side=end]:before:bottom-0 data-[fixed-side=end]:before:start-0 data-[fixed-side=end]:before:top-0 data-[fixed-side=end]:before:w-4 data-[fixed-side=end]:before:bg-gradient-to-r data-[fixed-side=end]:before:from-foreground/8 data-[fixed-side=end]:before:to-transparent data-[fixed-side=end]:before:content-empty`],resizeHandle:[`absolute end-0 top-1/2 w-3 h-2/3 -translate-y-1/2 rounded bg-transparent`,`cursor-col-resize border-none touch-none select-none`,`after:bg-border hover:after:bg-primary data-[resizing]:after:bg-primary focus-visible:after:bg-primary`,`focus-visible:outline-none focus-visible:ring-ring/40 focus-visible:ring-2`,`after:absolute after:bottom-0 after:end-0 after:top-0 after:w-px after:rounded-full after:content-empty`],treeCell:`flex min-w-0 items-center gap-1`,treeToggle:``,treeTogglePlaceholder:`inline-block size-5 shrink-0`,sortTrigger:`absolute top-1/2 -translate-y-1/2 data-[sorted]:text-primary`,filterTrigger:`absolute top-1/2 -translate-y-1/2 data-[filtered]:text-primary`,filterInput:``,filterPopup:``,filterSearch:``,filterOptions:`flex flex-col overflow-auto`,filterOption:`w-full rounded-md hover:bg-accent`,filterOptionLabel:`min-w-0 flex-1 truncate`,filterFooter:`flex items-center justify-between border-t border-border`,filterCount:`text-muted-foreground`,filterAction:[`text-xs font-medium text-primary rounded-md border-none bg-transparent px-2 py-1`,`transition-colors hover:bg-accent focus-visible:ring-ring focus-visible:outline-none focus-visible:ring-2`],filterEmpty:`text-muted-foreground py-6 text-center text-xs`,selection:`text-foreground`,radioRoot:[`peer relative shrink-0 rounded-full border border-solid shadow cursor-pointer transition-all-150`,`border-primary focus-visible:ring-primary/30`,`focus-visible:outline-none focus-visible:ring-3 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50`],radioIndicator:`absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 size-1/2 bg-primary rounded-full`},variants:{size:{xs:{root:`px-0.75 pb-0.75 text-2xs`,caption:`py-2`,head:`h-8 px-1.5`,cell:`p-1.5`,radioRoot:`w-3 h-3`,sortTrigger:`end-1 p-0.75`,filterTrigger:`end-1`,filterPopup:`p-1.5`,filterOptions:`max-h-50 gap-0.75 py-1.5`,filterOption:`p-0.75`,filterFooter:`pt-1`,filterCount:`text-3xs leading-4`},sm:{root:`px-0.875 pb-0.875 text-xs`,caption:`py-2.5`,head:`h-9 px-1.75`,cell:`p-1.75`,radioRoot:`w-3.5 h-3.5`,sortTrigger:`end-1.25 p-0.875`,filterTrigger:`end-1.25`,filterPopup:`p-1.75`,filterOptions:`max-h-55 gap-0.875 py-2`,filterOption:`p-0.875`,filterFooter:`pt-1.25`,filterCount:`text-2xs leading-5`},md:{root:`px-1 pb-1 text-sm`,caption:`py-3`,head:`h-10 px-2`,cell:`p-2`,radioRoot:`w-4 h-4`,sortTrigger:`end-1.5 p-1`,filterTrigger:`end-1.5`,filterPopup:`p-2`,filterOptions:`max-h-60 gap-1 py-2.5`,filterOption:`p-1`,filterFooter:`pt-1.5`,filterCount:`text-xs leading-6`},lg:{root:`px-1.25 pb-1.25 text-base`,caption:`py-3.5`,head:`h-12 px-2.5`,cell:`p-2.5`,radioRoot:`w-4.5 h-4.5`,sortTrigger:`end-1.75 p-1.25`,filterTrigger:`end-1.75`,filterPopup:`p-2.5`,filterOptions:`max-h-65 gap-1.25 py-3`,filterOption:`p-1.25`,filterFooter:`pt-1.75`,filterCount:`text-sm leading-7`},xl:{root:`px-1.5 pb-1.5 text-lg`,caption:`py-4`,head:`h-14 px-3`,cell:`p-3`,radioRoot:`w-5 h-5`,sortTrigger:`end-2 p-1.5`,filterTrigger:`end-2`,filterPopup:`p-3`,filterOptions:`max-h-70 gap-1.5 py-3.5`,filterOption:`p-1.5`,filterFooter:`pt-2`,filterCount:`text-base leading-8`},"2xl":{root:`px-2 pb-2 text-xl`,caption:`py-4.5`,head:`h-16 px-3.5`,cell:`p-3.5`,radioRoot:`w-6 h-6`,sortTrigger:`end-2.5 p-1.75`,filterTrigger:`end-2.5`,filterPopup:`p-3.5`,filterOptions:`max-h-75 gap-1.75 py-4`,filterOption:`p-1.75`,filterFooter:`pt-2.5`,filterCount:`text-lg leading-9`}},bordered:{true:{cell:`border-l border-border first:border-l-0`}},striped:{true:{row:`data-[row]:even:bg-accent`}}},defaultVariants:{size:`md`,striped:!1}});export{t as tableVariants};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TagsInputEmits, TagsInputProps } from "./types.js";
|
|
2
|
+
import { _default } from "./tags-input.vue.js";
|
|
3
|
+
import { _default as _default$1 } from "./tags-input-item-delete.vue.js";
|
|
4
|
+
import { TagsInputAcceptableValue, TagsInputClear as STagsInputClear, TagsInputClearProps, TagsInputInput as STagsInputInput, TagsInputInputProps, TagsInputItem as STagsInputItem, TagsInputItemDeleteProps as TagsInputItemDeleteProps$1, TagsInputItemProps, TagsInputItemText as STagsInputItemText, TagsInputItemTextProps, TagsInputRootEmits, TagsInputRootProps, TagsInputUi, TagsInputUiSlot } from "@soybeanjs/headless/tags-input";
|
|
5
|
+
export { STagsInputClear, STagsInputInput, STagsInputItem, STagsInputItemText, type TagsInputAcceptableValue, type TagsInputClearProps, type TagsInputInputProps, type TagsInputItemDeleteProps$1 as TagsInputItemDeleteProps, type TagsInputItemProps, type TagsInputItemTextProps, type TagsInputRootEmits, type TagsInputRootProps, type TagsInputUi, type TagsInputUiSlot };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./tags-input.js";import"./tags-input-item-delete.js";import{TagsInputClear as e,TagsInputInput as t,TagsInputItem as n,TagsInputItemText as r}from"@soybeanjs/headless/tags-input";export{e as STagsInputClear,t as STagsInputInput,n as STagsInputItem,r as STagsInputItemText};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"../icon/icon.js";import{createBlock as t,createVNode as n,defineComponent as r,guardReactiveProps as i,normalizeProps as a,openBlock as o,renderSlot as s,unref as c,withCtx as l}from"vue";import{TagsInputItemDelete as u}from"@soybeanjs/headless";const d=r({name:`STagsInputItemDelete`,__name:`tags-input-item-delete`,props:{asChild:{type:Boolean},as:{}},setup(r){let d=r;return(r,f)=>(o(),t(c(u),a(i(d)),{default:l(()=>[s(r.$slots,`default`,{},()=>[n(e,{icon:`lucide:x`,"aria-hidden":!0})])]),_:3},16))}});export{d as default};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as _$vue from "vue";
|
|
2
|
+
import { TagsInputItemDeleteProps } from "@soybeanjs/headless/tags-input";
|
|
3
|
+
|
|
4
|
+
//#region src/components/tags-input/tags-input-item-delete.vue.d.ts
|
|
5
|
+
declare var __VLS_8: {};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
default?: (props: typeof __VLS_8) => any;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_base: _$vue.DefineComponent<TagsInputItemDeleteProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, _$vue.PublicProps, Readonly<TagsInputItemDeleteProps> & Readonly<{}>, {}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
11
|
+
declare const _default: typeof __VLS_export;
|
|
12
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
13
|
+
new (): {
|
|
14
|
+
$slots: S;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
//#endregion
|
|
18
|
+
export { _default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{tagsInputVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,guardReactiveProps as a,mergeProps as o,normalizeProps as s,openBlock as c,renderSlot as l,toHandlers as u,unref as d,withCtx as f}from"vue";import{useForwardListeners as p,useOmitProps as m}from"@soybeanjs/headless/composables";import{TagsInputRoot as h,provideTagsInputUi as g}from"@soybeanjs/headless";const _=i({name:`STagsInput`,__name:`tags-input`,props:{class:{},size:{},ui:{},id:{},modelValue:{},defaultValue:{},addOnPaste:{type:Boolean},addOnTab:{type:Boolean},addOnBlur:{type:Boolean},duplicate:{type:Boolean},disabled:{type:Boolean},delimiter:{},dir:{},max:{},convertValue:{type:Function},displayValue:{type:Function},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`invalid`,`addTag`,`removeTag`],setup(i,{emit:_}){let v=i,y=_,b=m(v,[`class`,`size`,`ui`,`onInvalid`]),x=p(y);return g(n(()=>e(t({size:v.size}),v.ui,{root:v.class}))),(e,t)=>(c(),r(d(h),o(d(b),u(d(x))),{default:f(t=>[l(e.$slots,`default`,s(a(t)))]),_:3},16))}});export{_ as default};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { TagsInputProps } from "./types.js";
|
|
2
|
+
import * as _$vue from "vue";
|
|
3
|
+
import { TagsInputAcceptableValue } from "@soybeanjs/headless";
|
|
4
|
+
|
|
5
|
+
//#region src/components/tags-input/tags-input.vue.d.ts
|
|
6
|
+
declare const __VLS_export: <T extends TagsInputAcceptableValue = string>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
7
|
+
props: _$vue.PublicProps & __VLS_PrettifyLocal<TagsInputProps<T> & {
|
|
8
|
+
"onUpdate:modelValue"?: ((value: T[]) => any) | undefined;
|
|
9
|
+
onInvalid?: ((value: T) => any) | undefined;
|
|
10
|
+
onAddTag?: ((value: T) => any) | undefined;
|
|
11
|
+
onRemoveTag?: ((value: T) => any) | undefined;
|
|
12
|
+
}> & (typeof globalThis extends {
|
|
13
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
14
|
+
} ? P : {});
|
|
15
|
+
expose: (exposed: {}) => void;
|
|
16
|
+
attrs: any;
|
|
17
|
+
slots: {
|
|
18
|
+
default?: (props: {
|
|
19
|
+
modelValue: TagsInputAcceptableValue[] | undefined;
|
|
20
|
+
}) => any;
|
|
21
|
+
};
|
|
22
|
+
emit: ((evt: "update:modelValue", value: T[]) => void) & ((evt: "invalid", value: T) => void) & ((evt: "addTag", value: T) => void) & ((evt: "removeTag", value: T) => void);
|
|
23
|
+
}>) => _$vue.VNode & {
|
|
24
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
25
|
+
};
|
|
26
|
+
declare const _default: typeof __VLS_export;
|
|
27
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
|
|
28
|
+
//#endregion
|
|
29
|
+
export { _default };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ThemeSize } from "../../theme/types.js";
|
|
2
|
+
import { ClassValue, TagsInputRootEmits, TagsInputRootProps, TagsInputUi } from "@soybeanjs/headless";
|
|
3
|
+
|
|
4
|
+
//#region src/components/tags-input/types.d.ts
|
|
5
|
+
interface TagsInputProps<T = string> extends TagsInputRootProps<T> {
|
|
6
|
+
class?: ClassValue;
|
|
7
|
+
size?: ThemeSize;
|
|
8
|
+
ui?: Partial<TagsInputUi>;
|
|
9
|
+
}
|
|
10
|
+
type TagsInputEmits<T = string> = TagsInputRootEmits<T>;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { TagsInputEmits, TagsInputProps };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{tv as e}from"tailwind-variants";const t=e({slots:{root:[`flex w-full flex-wrap items-center rounded-md border border-input bg-background shadow-xs transition-[color,box-shadow]`,`focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50`,`data-[invalid]:border-destructive data-[invalid]:ring-3 data-[invalid]:ring-destructive/20`,`data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`],item:[`inline-flex items-center rounded-md bg-secondary ring-offset-background transition-[box-shadow,background-color]`,`data-[state=active]:ring-2 data-[state=active]:ring-ring data-[state=active]:ring-offset-2`,`data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`],itemText:`rounded bg-transparent`,itemDelete:[`inline-flex items-center justify-center rounded bg-transparent text-muted-foreground transition-colors`,`hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`],input:[`min-w-24 flex-1 bg-transparent text-foreground outline-none`,`placeholder:text-muted-foreground disabled:cursor-not-allowed`],clear:[`inline-flex items-center justify-center rounded-md text-muted-foreground transition-colors`,`hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,`data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`]},variants:{size:{xs:{root:`gap-1 px-1.5 py-1 text-2xs`,item:`min-h-5 gap-0.5`,itemText:`px-1.5 py-0.5 text-2xs`,itemDelete:`me-0.5 size-4`,input:`min-h-5 px-1 text-2xs`,clear:`size-4 text-xs`},sm:{root:`gap-1.5 px-2 py-1 text-xs`,item:`min-h-5 gap-0.75`,itemText:`px-1.5 py-0.5 text-xs`,itemDelete:`me-0.5 size-4`,input:`min-h-5 px-1 text-xs`,clear:`size-4 text-xs`},md:{root:`gap-2 px-2 py-1 text-sm`,item:`min-h-5 gap-1`,itemText:`px-2 py-0.5 text-sm`,itemDelete:`me-1 size-4`,input:`min-h-5 px-1 text-sm`,clear:`size-4 text-sm`},lg:{root:`gap-2 px-2.5 py-1.5 text-base`,item:`min-h-6 gap-1`,itemText:`px-2 py-0.5 text-base`,itemDelete:`me-1 size-4.5`,input:`min-h-6 px-1 text-base`,clear:`size-4.5 text-base`},xl:{root:`gap-2.5 px-3 py-2 text-lg`,item:`min-h-7 gap-1.5`,itemText:`px-2.5 py-1 text-lg`,itemDelete:`me-1 size-5`,input:`min-h-7 px-1.5 text-lg`,clear:`size-5 text-lg`},"2xl":{root:`gap-3 px-3.5 py-2.5 text-xl`,item:`min-h-8 gap-1.5`,itemText:`px-3 py-1 text-xl`,itemDelete:`me-1.5 size-5.5`,input:`min-h-8 px-1.5 text-xl`,clear:`size-5.5 text-xl`}}},defaultVariants:{size:`md`}});export{t as tagsInputVariants};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { _default } from "./
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export { SToastAction, SToastClose };
|
|
1
|
+
import { SwipeDirection, ToastPosition, ToastType, ToasterProps } from "./types.js";
|
|
2
|
+
import { _default } from "./toaster.vue.js";
|
|
3
|
+
import { toast } from "@soybeanjs/headless/toast";
|
|
4
|
+
export { toast };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./
|
|
1
|
+
import"./toaster.js";import{toast as e}from"@soybeanjs/headless/toast";export{e as toast};
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
var e=`[data-slot='toast'] {
|
|
2
|
+
--y: translateY(100%);
|
|
3
|
+
--lift: 1;
|
|
4
|
+
--lift-amount: calc(var(--lift) * var(--gap));
|
|
5
|
+
z-index: var(--z-index);
|
|
6
|
+
transform: var(--y);
|
|
7
|
+
overflow-wrap: anywhere;
|
|
8
|
+
|
|
9
|
+
transition:
|
|
10
|
+
transform 400ms,
|
|
11
|
+
opacity 400ms,
|
|
12
|
+
height 400ms,
|
|
13
|
+
box-shadow 200ms;
|
|
14
|
+
|
|
15
|
+
box-shadow: 0 4px 12px hsl(var(--foreground) / 0.1);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
[data-slot='toast']:focus-visible {
|
|
19
|
+
box-shadow:
|
|
20
|
+
0 4px 12px hsl(var(--foreground) / 0.1),
|
|
21
|
+
0 0 0 2px hsl(var(--foreground) / 0.2);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
[data-slot='toast'][data-swiping='true'] {
|
|
25
|
+
transform: var(--y) translateY(var(--swipe-amount-y, 0px)) translateX(var(--swipe-amount-x, 0px));
|
|
26
|
+
transition: none;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
[data-slot='toast'][data-swiping='true']::before {
|
|
30
|
+
content: '';
|
|
31
|
+
position: absolute;
|
|
32
|
+
inset-inline: -100%;
|
|
33
|
+
height: 100%;
|
|
34
|
+
z-index: -1;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
[data-slot='toast'][data-y-position='top'][data-swiping='true']::before {
|
|
38
|
+
bottom: 50%;
|
|
39
|
+
transform: scaleY(3) translateY(50%);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
[data-slot='toast'][data-y-position='bottom'][data-swiping='true']::before {
|
|
43
|
+
top: 50%;
|
|
44
|
+
transform: scaleY(3) translateY(-50%);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
[data-slot='toast'][data-swiping='false'][data-removed='true']::before {
|
|
48
|
+
content: '';
|
|
49
|
+
position: absolute;
|
|
50
|
+
inset: 0;
|
|
51
|
+
transform: scaleY(2);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
[data-slot='toast'][data-expanded='true']::after {
|
|
55
|
+
content: '';
|
|
56
|
+
position: absolute;
|
|
57
|
+
inset-inline-start: 0;
|
|
58
|
+
height: calc(var(--gap) + 1px);
|
|
59
|
+
bottom: 100%;
|
|
60
|
+
width: 100%;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
[data-slot='toast'][data-mounted='true'] {
|
|
64
|
+
--y: translateY(0);
|
|
65
|
+
opacity: 1;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
[data-slot='toast'][data-expanded='false'][data-front='false'] {
|
|
69
|
+
--scale: var(--toasts-before) * 0.05 + 1;
|
|
70
|
+
--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));
|
|
71
|
+
height: var(--front-toast-height);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
[data-slot='toast'][data-expanded='false'][data-front='false'] > * {
|
|
75
|
+
opacity: 0;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
[data-slot='toast'][data-visible='false'] {
|
|
79
|
+
opacity: 0;
|
|
80
|
+
pointer-events: none;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
[data-slot='toast'][data-mounted='true'][data-expanded='true'] {
|
|
84
|
+
--y: translateY(calc(var(--lift) * var(--offset)));
|
|
85
|
+
height: var(--initial-height);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
[data-slot='toast'][data-removed='true'][data-front='true'][data-swipe-out='false'] {
|
|
89
|
+
--y: translateY(calc(var(--lift) * -100%));
|
|
90
|
+
opacity: 0;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
[data-slot='toast'][data-removed='true'][data-front='false'][data-swipe-out='false'][data-expanded='true'] {
|
|
94
|
+
--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));
|
|
95
|
+
opacity: 0;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
[data-slot='toast'][data-removed='true'][data-front='false'][data-swipe-out='false'][data-expanded='false'] {
|
|
99
|
+
--y: translateY(40%);
|
|
100
|
+
opacity: 0;
|
|
101
|
+
transition:
|
|
102
|
+
transform 500ms,
|
|
103
|
+
opacity 200ms;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
[data-slot='toast'][data-removed='true'][data-front='false']::before {
|
|
107
|
+
height: calc(var(--initial-height) + 20%);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
[data-slot='toast'][data-swiped='true'] {
|
|
111
|
+
-webkit-user-select: none;
|
|
112
|
+
user-select: none;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
[data-slot='toast'][data-swipe-out='true'][data-y-position='bottom'],
|
|
116
|
+
[data-slot='toast'][data-swipe-out='true'][data-y-position='top'] {
|
|
117
|
+
animation-duration: 200ms;
|
|
118
|
+
animation-timing-function: ease-out;
|
|
119
|
+
animation-fill-mode: forwards;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
[data-slot='toast'][data-swipe-out='true'][data-swipe-direction='left'] {
|
|
123
|
+
animation-name: swipe-out-left;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
[data-slot='toast'][data-swipe-out='true'][data-swipe-direction='right'] {
|
|
127
|
+
animation-name: swipe-out-right;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
[data-slot='toast'][data-swipe-out='true'][data-swipe-direction='up'] {
|
|
131
|
+
animation-name: swipe-out-up;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
[data-slot='toast'][data-swipe-out='true'][data-swipe-direction='down'] {
|
|
135
|
+
animation-name: swipe-out-down;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
[data-slot='toast'][data-rich-color='true'][data-type='success'] {
|
|
139
|
+
background-color: hsl(var(--success-100));
|
|
140
|
+
border-color: hsl(var(--success));
|
|
141
|
+
color: hsl(var(--success-foreground));
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
[data-slot='toast'][data-rich-color='true'][data-type='info'] {
|
|
145
|
+
background-color: hsl(var(--info-100));
|
|
146
|
+
border-color: hsl(var(--info));
|
|
147
|
+
color: hsl(var(--info-foreground));
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
[data-slot='toast'][data-rich-color='true'][data-type='warning'] {
|
|
151
|
+
background-color: hsl(var(--warning-100));
|
|
152
|
+
border-color: hsl(var(--warning));
|
|
153
|
+
color: hsl(var(--warning-foreground));
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
[data-slot='toast'][data-rich-color='true'][data-type='error'] {
|
|
157
|
+
background-color: hsl(var(--destructive-100));
|
|
158
|
+
border-color: hsl(var(--destructive));
|
|
159
|
+
color: hsl(var(--destructive-foreground));
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
[data-slot='toast'][data-inverted='true'] {
|
|
163
|
+
background-color: hsl(var(--carbon));
|
|
164
|
+
border-color: hsl(var(--carbon));
|
|
165
|
+
color: hsl(var(--carbon-foreground));
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
[data-slot='toast'] > * {
|
|
169
|
+
transition: opacity 400ms;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
@keyframes swipe-out-left {
|
|
173
|
+
from {
|
|
174
|
+
transform: var(--y) translateX(var(--swipe-amount-x));
|
|
175
|
+
opacity: 1;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
to {
|
|
179
|
+
transform: var(--y) translateX(calc(var(--swipe-amount-x) - 100%));
|
|
180
|
+
opacity: 0;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
@keyframes swipe-out-right {
|
|
185
|
+
from {
|
|
186
|
+
transform: var(--y) translateX(var(--swipe-amount-x));
|
|
187
|
+
opacity: 1;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
to {
|
|
191
|
+
transform: var(--y) translateX(calc(var(--swipe-amount-x) + 100%));
|
|
192
|
+
opacity: 0;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
@keyframes swipe-out-up {
|
|
197
|
+
from {
|
|
198
|
+
transform: var(--y) translateY(var(--swipe-amount-y));
|
|
199
|
+
opacity: 1;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
to {
|
|
203
|
+
transform: var(--y) translateY(calc(var(--swipe-amount-y) - 100%));
|
|
204
|
+
opacity: 0;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
@keyframes swipe-out-down {
|
|
209
|
+
from {
|
|
210
|
+
transform: var(--y) translateY(var(--swipe-amount-y));
|
|
211
|
+
opacity: 1;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
to {
|
|
215
|
+
transform: var(--y) translateY(calc(var(--swipe-amount-y) + 100%));
|
|
216
|
+
opacity: 0;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
@keyframes sonner-fade-in {
|
|
221
|
+
0% {
|
|
222
|
+
opacity: 0;
|
|
223
|
+
transform: scale(0.8);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
100% {
|
|
227
|
+
opacity: 1;
|
|
228
|
+
transform: scale(1);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
@keyframes sonner-fade-out {
|
|
233
|
+
0% {
|
|
234
|
+
opacity: 1;
|
|
235
|
+
transform: scale(1);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
100% {
|
|
239
|
+
opacity: 0;
|
|
240
|
+
transform: scale(0.8);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
@media (max-width: 600px) {
|
|
245
|
+
[data-slot='toaster'] {
|
|
246
|
+
width: 100%;
|
|
247
|
+
inset-inline-start: var(--mobile-offset-left);
|
|
248
|
+
inset-inline-end: var(--mobile-offset-right);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
[data-slot='toaster'] [data-slot='toast'] {
|
|
252
|
+
inset-inline: 0;
|
|
253
|
+
width: calc(100% - var(--mobile-offset-left) * 2);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
[data-slot='toaster'][data-x-position='left'] {
|
|
257
|
+
inset-inline-start: var(--mobile-offset-left);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
[data-slot='toaster'][data-y-position='bottom'] {
|
|
261
|
+
bottom: var(--mobile-offset-bottom);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
[data-slot='toaster'][data-y-position='top'] {
|
|
265
|
+
top: var(--mobile-offset-top);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
[data-slot='toaster'][data-x-position='center'] {
|
|
269
|
+
inset-inline-start: var(--mobile-offset-left);
|
|
270
|
+
inset-inline-end: var(--mobile-offset-right);
|
|
271
|
+
transform: none;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
`;export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{mergeSlotVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import n from"../button/button.js";import{toastVariants as r}from"./variants.js";import i from"./styles.js";import a from"../icon/icon.js";import{computed as o,createBlock as s,createTextVNode as c,createVNode as l,defineComponent as u,h as d,mergeProps as f,openBlock as p,renderSlot as m,toDisplayString as h,unref as g,withCtx as _}from"vue";import{useOmitProps as v}from"@soybeanjs/headless/composables";import{Primitive as y,Toaster as b,provideToastUi as x}from"@soybeanjs/headless";const S=u({name:`SToaster`,__name:`toaster`,props:{size:{},ui:{},id:{},dir:{},hotkey:{},customAriaLabel:{},containerAriaLabel:{},position:{},defaultExpanded:{type:Boolean},duration:{},gap:{},offset:{},visibleCounts:{},swipeDirections:{},showIcon:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},icons:{},iconRender:{type:Function,default:e=>d(a,{icon:e})},buttonRender:{},toastProps:{},wrapperProps:{},contentProps:{},titleProps:{},descriptionProps:{},iconProps:{},footerProps:{},actionProps:{},cancelProps:{},closeProps:{}},setup(a){let u=a,S=v(u,[`size`,`ui`,`icons`,`buttonRender`]),C=o(()=>e(r({size:u.size}),u.ui)),w={info:`lucide:info`,success:`lucide:circle-check`,warning:`lucide:circle-alert`,error:`lucide:circle-x`,close:`lucide:x`,loading:`svg-spinners:270-ring`},T=o(()=>({...w,...u.icons})),E=(e,r)=>u.buttonRender?u.buttonRender(e,r):d(n,{size:t[u.size??`md`],variant:r===`action`?`solid`:`pure`,color:`primary`},{default:()=>e});return x(C),(e,t)=>(p(),s(g(b),f(g(S),{icons:T.value,"button-render":E}),{default:_(()=>[m(e.$slots,`default`),l(g(y),{id:`__SoybeanUI_toastStyle`,as:`style`},{default:_(()=>[c(h(g(i)),1)]),_:1})]),_:3},16,[`icons`]))}});export{S as default};
|