@svelte-atoms/core 1.0.0-alpha.25 → 1.0.0-alpha.27
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 +645 -645
- package/dist/components/accordion/accordion-root.svelte +61 -79
- package/dist/components/accordion/accordion-root.svelte.d.ts +2 -15
- package/dist/components/accordion/index.d.ts +2 -1
- package/dist/components/accordion/index.js +2 -1
- package/dist/components/accordion/item/accordion-item-body.svelte +42 -52
- package/dist/components/accordion/item/accordion-item-body.svelte.d.ts +2 -8
- package/dist/components/accordion/item/accordion-item-header.svelte +50 -56
- package/dist/components/accordion/item/accordion-item-header.svelte.d.ts +3 -20
- package/dist/components/accordion/item/accordion-item-indicator.svelte +50 -59
- package/dist/components/accordion/item/accordion-item-indicator.svelte.d.ts +2 -8
- package/dist/components/accordion/item/accordion-item-root.svelte +65 -79
- package/dist/components/accordion/item/accordion-item-root.svelte.d.ts +2 -12
- package/dist/components/accordion/item/index.d.ts +1 -0
- package/dist/components/accordion/item/types.d.ts +52 -0
- package/dist/components/accordion/item/types.js +1 -0
- package/dist/components/accordion/types.d.ts +21 -0
- package/dist/components/accordion/types.js +1 -0
- package/dist/components/alert/alert-actions.svelte +42 -52
- package/dist/components/alert/alert-actions.svelte.d.ts +3 -30
- package/dist/components/alert/alert-close-button.svelte +72 -79
- package/dist/components/alert/alert-close-button.svelte.d.ts +8 -35
- package/dist/components/alert/alert-content.svelte +42 -52
- package/dist/components/alert/alert-content.svelte.d.ts +3 -30
- package/dist/components/alert/alert-description.svelte +41 -51
- package/dist/components/alert/alert-description.svelte.d.ts +7 -10
- package/dist/components/alert/alert-icon.svelte +46 -56
- package/dist/components/alert/alert-icon.svelte.d.ts +2 -8
- package/dist/components/alert/alert-root.svelte +102 -118
- package/dist/components/alert/alert-root.svelte.d.ts +2 -13
- package/dist/components/alert/alert-title.svelte +41 -51
- package/dist/components/alert/alert-title.svelte.d.ts +2 -8
- package/dist/components/alert/index.d.ts +1 -0
- package/dist/components/alert/index.js +1 -0
- package/dist/components/alert/types.d.ts +85 -0
- package/dist/components/alert/types.js +1 -0
- package/dist/components/atom/html-atom.svelte +201 -217
- package/dist/components/atom/html-atom.svelte.d.ts +2 -22
- package/dist/components/atom/types.d.ts +7 -2
- package/dist/components/avatar/types.d.ts +7 -2
- package/dist/components/badge/badge.svelte +1 -1
- package/dist/components/badge/types.d.ts +7 -2
- package/dist/components/breadcrumb/breadcrumb-item.svelte +1 -1
- package/dist/components/breadcrumb/breadcrumb-root.svelte +1 -1
- package/dist/components/breadcrumb/breadcrumb-separator.svelte +1 -1
- package/dist/components/button/button.stories.svelte +57 -57
- package/dist/components/button/button.svelte +1 -1
- package/dist/components/button/button.svelte.d.ts +4 -1
- package/dist/components/button/index.d.ts +1 -0
- package/dist/components/button/index.js +1 -0
- package/dist/components/button/types.d.ts +8 -3
- package/dist/components/card/card-body.svelte +39 -45
- package/dist/components/card/card-body.svelte.d.ts +7 -4
- package/dist/components/card/card-description.svelte +41 -48
- package/dist/components/card/card-description.svelte.d.ts +7 -7
- package/dist/components/card/card-footer.svelte +41 -48
- package/dist/components/card/card-footer.svelte.d.ts +7 -4
- package/dist/components/card/card-header.svelte +41 -48
- package/dist/components/card/card-header.svelte.d.ts +7 -4
- package/dist/components/card/card-media.svelte +41 -48
- package/dist/components/card/card-media.svelte.d.ts +7 -4
- package/dist/components/card/card-root.svelte +91 -91
- package/dist/components/card/card-root.svelte.d.ts +1 -1
- package/dist/components/card/card-subtitle.svelte +41 -48
- package/dist/components/card/card-subtitle.svelte.d.ts +12 -9
- package/dist/components/card/card-title.svelte +45 -48
- package/dist/components/card/card-title.svelte.d.ts +12 -9
- package/dist/components/card/index.d.ts +1 -0
- package/dist/components/card/index.js +1 -0
- package/dist/components/card/types.d.ts +57 -2
- package/dist/components/checkbox/checkbox.svelte +39 -28
- package/dist/components/checkbox/types.d.ts +7 -2
- package/dist/components/collapsible/collapsible-body.svelte +39 -52
- package/dist/components/collapsible/collapsible-body.svelte.d.ts +2 -9
- package/dist/components/collapsible/collapsible-header.svelte +39 -52
- package/dist/components/collapsible/collapsible-header.svelte.d.ts +2 -9
- package/dist/components/collapsible/collapsible-indicator.svelte +50 -65
- package/dist/components/collapsible/collapsible-indicator.svelte.d.ts +3 -10
- package/dist/components/collapsible/collapsible-root.svelte +66 -85
- package/dist/components/collapsible/collapsible-root.svelte.d.ts +2 -14
- package/dist/components/collapsible/index.d.ts +1 -0
- package/dist/components/collapsible/index.js +1 -0
- package/dist/components/collapsible/types.d.ts +54 -0
- package/dist/components/collapsible/types.js +1 -0
- package/dist/components/combobox/atoms.d.ts +5 -1
- package/dist/components/combobox/atoms.js +5 -1
- package/dist/components/combobox/{combobox-input.svelte → combobox-control.svelte} +3 -3
- package/dist/components/combobox/{combobox-input.svelte.d.ts → combobox-control.svelte.d.ts} +3 -3
- package/dist/components/combobox/combobox-root.svelte +65 -68
- package/dist/components/combobox/combobox-root.svelte.d.ts +5 -18
- package/dist/components/combobox/combobox-trigger.svelte +1 -1
- package/dist/components/combobox/compobox-item.svelte +1 -1
- package/dist/components/combobox/index.d.ts +1 -0
- package/dist/components/combobox/index.js +1 -0
- package/dist/components/combobox/types.d.ts +25 -0
- package/dist/components/combobox/types.js +1 -0
- package/dist/components/container/container.svelte +1 -1
- package/dist/components/container/types.d.ts +7 -2
- package/dist/components/contextmenu/types.d.ts +8 -0
- package/dist/components/contextmenu/types.js +1 -0
- package/dist/components/datagrid/datagrid-body.svelte +37 -44
- package/dist/components/datagrid/datagrid-body.svelte.d.ts +17 -20
- package/dist/components/datagrid/datagrid-checkbox.svelte +101 -108
- package/dist/components/datagrid/datagrid-checkbox.svelte.d.ts +4 -6
- package/dist/components/datagrid/datagrid-footer.svelte +34 -34
- package/dist/components/datagrid/datagrid-footer.svelte.d.ts +1 -1
- package/dist/components/datagrid/datagrid-header.svelte +49 -49
- package/dist/components/datagrid/datagrid-header.svelte.d.ts +1 -1
- package/dist/components/datagrid/datagrid-root.svelte +59 -59
- package/dist/components/datagrid/datagrid-root.svelte.d.ts +1 -1
- package/dist/components/datagrid/datagrid.stories.svelte +75 -75
- package/dist/components/datagrid/td/datagrid-td.svelte +66 -80
- package/dist/components/datagrid/td/datagrid-td.svelte.d.ts +7 -16
- package/dist/components/datagrid/th/datagrid-th-sort-icon.svelte +1 -1
- package/dist/components/datagrid/th/datagrid-th.svelte +106 -127
- package/dist/components/datagrid/th/datagrid-th.svelte.d.ts +2 -20
- package/dist/components/datagrid/tr/bond.svelte.d.ts +3 -1
- package/dist/components/datagrid/tr/bond.svelte.js +4 -2
- package/dist/components/datagrid/tr/datagrid-tr.svelte +88 -103
- package/dist/components/datagrid/tr/datagrid-tr.svelte.d.ts +2 -18
- package/dist/components/datagrid/types.d.ts +85 -37
- package/dist/components/dialog/dialog-body.svelte +39 -45
- package/dist/components/dialog/dialog-body.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-close-button.svelte +58 -61
- package/dist/components/dialog/dialog-close-button.svelte.d.ts +7 -7
- package/dist/components/dialog/dialog-content.svelte +62 -71
- package/dist/components/dialog/dialog-content.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-description.svelte +40 -46
- package/dist/components/dialog/dialog-description.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-footer.svelte +39 -45
- package/dist/components/dialog/dialog-footer.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-header.svelte +39 -45
- package/dist/components/dialog/dialog-header.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-root.svelte +110 -120
- package/dist/components/dialog/dialog-root.svelte.d.ts +2 -10
- package/dist/components/dialog/dialog-title.svelte +41 -47
- package/dist/components/dialog/dialog-title.svelte.d.ts +7 -7
- package/dist/components/dialog/index.d.ts +1 -0
- package/dist/components/dialog/index.js +1 -0
- package/dist/components/dialog/types.d.ts +67 -0
- package/dist/components/dialog/types.js +1 -0
- package/dist/components/divider/types.d.ts +10 -0
- package/dist/components/divider/types.js +1 -0
- package/dist/components/drawer/drawer-backdrop.svelte +38 -47
- package/dist/components/drawer/drawer-backdrop.svelte.d.ts +3 -26
- package/dist/components/drawer/drawer-body.svelte +42 -56
- package/dist/components/drawer/drawer-body.svelte.d.ts +3 -16
- package/dist/components/drawer/drawer-content.svelte +42 -55
- package/dist/components/drawer/drawer-content.svelte.d.ts +3 -14
- package/dist/components/drawer/drawer-description.svelte +44 -57
- package/dist/components/drawer/drawer-description.svelte.d.ts +3 -14
- package/dist/components/drawer/drawer-footer.svelte +41 -54
- package/dist/components/drawer/drawer-footer.svelte.d.ts +3 -14
- package/dist/components/drawer/drawer-header.svelte +43 -56
- package/dist/components/drawer/drawer-header.svelte.d.ts +3 -14
- package/dist/components/drawer/drawer-root.svelte +93 -113
- package/dist/components/drawer/drawer-root.svelte.d.ts +3 -31
- package/dist/components/drawer/drawer-title.svelte +44 -57
- package/dist/components/drawer/drawer-title.svelte.d.ts +3 -14
- package/dist/components/drawer/index.d.ts +1 -0
- package/dist/components/drawer/index.js +1 -0
- package/dist/components/drawer/types.d.ts +86 -0
- package/dist/components/drawer/types.js +1 -0
- package/dist/components/dropdown/dropdown-placeholder.svelte +1 -1
- package/dist/components/dropdown/dropdown-query.svelte +54 -53
- package/dist/components/dropdown/dropdown-query.svelte.d.ts +11 -10
- package/dist/components/dropdown/dropdown-root.svelte +59 -59
- package/dist/components/dropdown/dropdown-trigger.svelte +41 -52
- package/dist/components/dropdown/dropdown-trigger.svelte.d.ts +1 -8
- package/dist/components/dropdown/dropdown-value.svelte +60 -62
- package/dist/components/dropdown/index.d.ts +1 -0
- package/dist/components/dropdown/index.js +1 -0
- package/dist/components/dropdown/item/bond.svelte.d.ts +4 -0
- package/dist/components/dropdown/item/bond.svelte.js +9 -0
- package/dist/components/dropdown/item/dropdown-item.svelte +10 -6
- package/dist/components/dropdown/types.d.ts +37 -0
- package/dist/components/dropdown/types.js +1 -0
- package/dist/components/element/html-element.svelte.d.ts +2 -14
- package/dist/components/element/svg-element.svelte.d.ts +2 -14
- package/dist/components/element/types.d.ts +14 -7
- package/dist/components/form/field/bond.svelte.d.ts +8 -0
- package/dist/components/form/field/bond.svelte.js +13 -1
- package/dist/components/form/field/field-control.svelte +48 -58
- package/dist/components/form/field/field-control.svelte.d.ts +5 -19
- package/dist/components/form/field/field-label.svelte +24 -31
- package/dist/components/form/field/field-label.svelte.d.ts +1 -2
- package/dist/components/form/field/field-root.svelte +59 -88
- package/dist/components/form/field/field-root.svelte.d.ts +5 -20
- package/dist/components/form/form.stories.svelte +3 -3
- package/dist/components/form/index.d.ts +1 -0
- package/dist/components/form/index.js +1 -0
- package/dist/components/form/types.d.ts +76 -0
- package/dist/components/form/types.js +1 -0
- package/dist/components/icon/icon.svelte +44 -55
- package/dist/components/icon/icon.svelte.d.ts +4 -29
- package/dist/components/icon/types.d.ts +11 -7
- package/dist/components/input/atoms.d.ts +5 -1
- package/dist/components/input/atoms.js +5 -1
- package/dist/components/input/index.d.ts +1 -0
- package/dist/components/input/index.js +1 -0
- package/dist/components/input/{input-value.svelte → input-control.svelte} +14 -24
- package/dist/components/input/input-control.svelte.d.ts +26 -0
- package/dist/components/input/input-icon.svelte +1 -1
- package/dist/components/input/input-icon.svelte.d.ts +1 -1
- package/dist/components/input/input-placeholder.svelte +54 -56
- package/dist/components/input/input-placeholder.svelte.d.ts +2 -19
- package/dist/components/input/input-root.svelte +5 -12
- package/dist/components/input/input-root.svelte.d.ts +3 -20
- package/dist/components/input/input.stories.svelte +2 -2
- package/dist/components/input/types.d.ts +33 -0
- package/dist/components/input/types.js +1 -0
- package/dist/components/label/index.d.ts +1 -0
- package/dist/components/label/index.js +1 -0
- package/dist/components/label/label.svelte +25 -41
- package/dist/components/label/label.svelte.d.ts +3 -27
- package/dist/components/label/types.d.ts +11 -0
- package/dist/components/label/types.js +1 -0
- package/dist/components/layer/layer-inner.svelte.d.ts +2 -19
- package/dist/components/layer/layer-root.svelte.d.ts +2 -19
- package/dist/components/layer/types.d.ts +11 -0
- package/dist/components/layer/types.js +1 -0
- package/dist/components/link/types.d.ts +8 -0
- package/dist/components/link/types.js +1 -0
- package/dist/components/list/list-group.svelte +1 -1
- package/dist/components/list/list-item.svelte +1 -1
- package/dist/components/list/list-root.svelte +6 -1
- package/dist/components/list/list-title.svelte +1 -1
- package/dist/components/list/types.d.ts +8 -0
- package/dist/components/list/types.js +1 -0
- package/dist/components/menu/index.d.ts +1 -0
- package/dist/components/menu/index.js +1 -0
- package/dist/components/menu/menu-list.svelte +1 -1
- package/dist/components/menu/types.d.ts +15 -0
- package/dist/components/menu/types.js +1 -0
- package/dist/components/popover/bond.svelte.d.ts +2 -0
- package/dist/components/popover/bond.svelte.js +1 -1
- package/dist/components/popover/index.d.ts +1 -0
- package/dist/components/popover/index.js +1 -0
- package/dist/components/popover/popover-arrow.svelte +111 -117
- package/dist/components/popover/popover-arrow.svelte.d.ts +3 -20
- package/dist/components/popover/popover-content.svelte +139 -147
- package/dist/components/popover/popover-content.svelte.d.ts +3 -17
- package/dist/components/popover/popover-indicator.svelte +1 -1
- package/dist/components/popover/popover-root.svelte +4 -18
- package/dist/components/popover/popover-root.svelte.d.ts +1 -15
- package/dist/components/popover/popover-trigger.svelte +3 -12
- package/dist/components/popover/popover-trigger.svelte.d.ts +2 -8
- package/dist/components/popover/types.d.ts +61 -0
- package/dist/components/popover/types.js +1 -0
- package/dist/components/portal/active-portal.svelte +8 -2
- package/dist/components/portal/active-portal.svelte.d.ts +2 -2
- package/dist/components/portal/index.d.ts +1 -0
- package/dist/components/portal/index.js +1 -0
- package/dist/components/portal/portal-inner.svelte +1 -1
- package/dist/components/portal/portal-inner.svelte.d.ts +2 -19
- package/dist/components/portal/portal-root.svelte +83 -88
- package/dist/components/portal/portal-root.svelte.d.ts +2 -22
- package/dist/components/portal/teleport.svelte +50 -49
- package/dist/components/portal/teleport.svelte.d.ts +5 -23
- package/dist/components/portal/types.d.ts +39 -0
- package/dist/components/portal/types.js +1 -0
- package/dist/components/radio/radio-group.stories.svelte +4 -4
- package/dist/components/radio/radio.svelte +109 -109
- package/dist/components/radio/radio.svelte.d.ts +14 -36
- package/dist/components/root/root.css +24 -66
- package/dist/components/root/root.svelte +121 -121
- package/dist/components/root/types.d.ts +8 -0
- package/dist/components/root/types.js +1 -0
- package/dist/components/scrollable/index.d.ts +1 -0
- package/dist/components/scrollable/index.js +1 -0
- package/dist/components/scrollable/scrollable-container.svelte +82 -89
- package/dist/components/scrollable/scrollable-container.svelte.d.ts +2 -6
- package/dist/components/scrollable/scrollable-content.svelte +41 -51
- package/dist/components/scrollable/scrollable-content.svelte.d.ts +1 -6
- package/dist/components/scrollable/scrollable-root.svelte +100 -120
- package/dist/components/scrollable/scrollable-root.svelte.d.ts +3 -19
- package/dist/components/scrollable/scrollable-thumb.svelte +75 -86
- package/dist/components/scrollable/scrollable-thumb.svelte.d.ts +1 -7
- package/dist/components/scrollable/scrollable-track.svelte +59 -70
- package/dist/components/scrollable/scrollable-track.svelte.d.ts +1 -7
- package/dist/components/scrollable/types.d.ts +62 -0
- package/dist/components/scrollable/types.js +1 -0
- package/dist/components/sidebar/index.d.ts +1 -0
- package/dist/components/sidebar/index.js +1 -0
- package/dist/components/sidebar/sidebar-content.svelte +2 -16
- package/dist/components/sidebar/sidebar-content.svelte.d.ts +2 -9
- package/dist/components/sidebar/sidebar-root.svelte +4 -23
- package/dist/components/sidebar/sidebar-root.svelte.d.ts +2 -13
- package/dist/components/sidebar/types.d.ts +30 -0
- package/dist/components/sidebar/types.js +1 -0
- package/dist/components/stack/stack-item.svelte +5 -1
- package/dist/components/stack/stack-root.svelte +5 -1
- package/dist/components/stack/stack-root.svelte.d.ts +2 -19
- package/dist/components/stack/types.d.ts +12 -0
- package/dist/components/stack/types.js +1 -0
- package/dist/components/tabs/index.d.ts +1 -0
- package/dist/components/tabs/index.js +1 -0
- package/dist/components/tabs/tab/tab-body.svelte +52 -61
- package/dist/components/tabs/tab/tab-body.svelte.d.ts +2 -8
- package/dist/components/tabs/tab/tab-description.svelte +41 -50
- package/dist/components/tabs/tab/tab-description.svelte.d.ts +2 -8
- package/dist/components/tabs/tab/tab-header.svelte +71 -81
- package/dist/components/tabs/tab/tab-header.svelte.d.ts +2 -11
- package/dist/components/tabs/tab/tab-root.svelte +86 -81
- package/dist/components/tabs/tabs-body.svelte +1 -1
- package/dist/components/tabs/tabs-header.svelte +1 -1
- package/dist/components/tabs/tabs-root.svelte +1 -1
- package/dist/components/tabs/types.d.ts +55 -0
- package/dist/components/tabs/types.js +1 -0
- package/dist/components/textarea/index.d.ts +1 -0
- package/dist/components/textarea/index.js +1 -0
- package/dist/components/textarea/textarea-input.svelte +2 -1
- package/dist/components/textarea/types.d.ts +28 -0
- package/dist/components/textarea/types.js +1 -0
- package/dist/components/toast/index.d.ts +1 -0
- package/dist/components/toast/index.js +1 -0
- package/dist/components/toast/toast-description.svelte +38 -44
- package/dist/components/toast/toast-description.svelte.d.ts +8 -34
- package/dist/components/toast/toast-root.svelte +61 -74
- package/dist/components/toast/toast-root.svelte.d.ts +4 -43
- package/dist/components/toast/toast-title.svelte +35 -43
- package/dist/components/toast/toast-title.svelte.d.ts +2 -34
- package/dist/components/toast/types.d.ts +40 -0
- package/dist/components/toast/types.js +1 -0
- package/dist/components/tooltip/types.d.ts +13 -0
- package/dist/components/tooltip/types.js +1 -0
- package/dist/components/tree/index.d.ts +1 -0
- package/dist/components/tree/index.js +1 -0
- package/dist/components/tree/tree-body.svelte +39 -50
- package/dist/components/tree/tree-body.svelte.d.ts +2 -10
- package/dist/components/tree/tree-header.svelte +54 -66
- package/dist/components/tree/tree-header.svelte.d.ts +3 -29
- package/dist/components/tree/tree-indicator.svelte +40 -50
- package/dist/components/tree/tree-indicator.svelte.d.ts +3 -9
- package/dist/components/tree/tree-root.svelte +65 -80
- package/dist/components/tree/tree-root.svelte.d.ts +2 -12
- package/dist/components/tree/types.d.ts +59 -0
- package/dist/components/tree/types.js +1 -0
- package/dist/components/virtual/types.d.ts +23 -0
- package/dist/components/virtual/types.js +1 -0
- package/dist/components/virtual/virtual-root.svelte +239 -258
- package/dist/components/virtual/virtual-root.svelte.d.ts +1 -18
- package/dist/context/preset.svelte.d.ts +1 -1
- package/llm/composition.md +395 -395
- package/llm/crafting.md +838 -838
- package/llm/motion.md +970 -970
- package/llm/philosophy.md +23 -23
- package/llm/preset-variant-integration.md +516 -516
- package/llm/preset.md +383 -383
- package/llm/styling.md +216 -216
- package/llm/usage.md +46 -46
- package/llm/variants.md +712 -712
- package/package.json +437 -437
- package/dist/components/input/input-value.svelte.d.ts +0 -19
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
<script lang="ts" generics="T">
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
let {
|
|
6
|
-
open = $bindable(false),
|
|
7
|
-
value = $bindable(),
|
|
8
|
-
values = $bindable(),
|
|
9
|
-
multiple = false,
|
|
10
|
-
disabled = false,
|
|
11
|
-
placements = ['bottom-start', 'bottom-end', 'top-start', 'top-end'],
|
|
12
|
-
placement = 'bottom-start',
|
|
13
|
-
offset = 4,
|
|
14
|
-
keys = [],
|
|
15
|
-
factory = _factory,
|
|
16
|
-
children = undefined,
|
|
17
|
-
onquerychange = undefined,
|
|
18
|
-
...restProps
|
|
19
|
-
} = $props();
|
|
20
|
-
|
|
21
|
-
const bondProps = defineState<DropdownStateProps>(
|
|
22
|
-
[
|
|
23
|
-
defineProperty(
|
|
24
|
-
'open',
|
|
25
|
-
() => open,
|
|
26
|
-
(v) => {
|
|
27
|
-
open = v;
|
|
28
|
-
}
|
|
29
|
-
),
|
|
30
|
-
defineProperty(
|
|
31
|
-
'values',
|
|
32
|
-
() => (multiple ? values : [value].filter(Boolean)),
|
|
33
|
-
(v) => {
|
|
34
|
-
values = v;
|
|
35
|
-
value = v[0];
|
|
36
|
-
}
|
|
37
|
-
),
|
|
38
|
-
defineProperty('multiple', () => multiple),
|
|
39
|
-
defineProperty('disabled', () => disabled),
|
|
40
|
-
defineProperty('placement', () => placement),
|
|
41
|
-
defineProperty('offset', () => offset),
|
|
42
|
-
defineProperty('placements', () => placements ?? []),
|
|
43
|
-
defineProperty('keys', () => keys ?? [])
|
|
44
|
-
],
|
|
45
|
-
() => ({ onquerychange })
|
|
46
|
-
);
|
|
47
|
-
const bond = factory(bondProps).share();
|
|
48
|
-
|
|
49
|
-
function _factory(props: typeof bondProps) {
|
|
50
|
-
const bondState = new DropdownBondState<T>(() => props);
|
|
51
|
-
return new DropdownBond(bondState);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export function getBond() {
|
|
55
|
-
return bond;
|
|
56
|
-
}
|
|
57
|
-
</script>
|
|
58
|
-
|
|
59
|
-
{@render children?.({ dropdown: bond })}
|
|
1
|
+
<script lang="ts" generics="T">
|
|
2
|
+
import { defineProperty, defineState } from '../../utils';
|
|
3
|
+
import { DropdownBond, DropdownBondState, type DropdownStateProps } from './bond.svelte';
|
|
4
|
+
|
|
5
|
+
let {
|
|
6
|
+
open = $bindable(false),
|
|
7
|
+
value = $bindable(),
|
|
8
|
+
values = $bindable(),
|
|
9
|
+
multiple = false,
|
|
10
|
+
disabled = false,
|
|
11
|
+
placements = ['bottom-start', 'bottom-end', 'top-start', 'top-end'],
|
|
12
|
+
placement = 'bottom-start',
|
|
13
|
+
offset = 4,
|
|
14
|
+
keys = [],
|
|
15
|
+
factory = _factory,
|
|
16
|
+
children = undefined,
|
|
17
|
+
onquerychange = undefined,
|
|
18
|
+
...restProps
|
|
19
|
+
} = $props();
|
|
20
|
+
|
|
21
|
+
const bondProps = defineState<DropdownStateProps>(
|
|
22
|
+
[
|
|
23
|
+
defineProperty(
|
|
24
|
+
'open',
|
|
25
|
+
() => open,
|
|
26
|
+
(v) => {
|
|
27
|
+
open = v;
|
|
28
|
+
}
|
|
29
|
+
),
|
|
30
|
+
defineProperty(
|
|
31
|
+
'values',
|
|
32
|
+
() => (multiple ? values : [value].filter(Boolean)),
|
|
33
|
+
(v) => {
|
|
34
|
+
values = v;
|
|
35
|
+
value = v[0];
|
|
36
|
+
}
|
|
37
|
+
),
|
|
38
|
+
defineProperty('multiple', () => multiple),
|
|
39
|
+
defineProperty('disabled', () => disabled),
|
|
40
|
+
defineProperty('placement', () => placement),
|
|
41
|
+
defineProperty('offset', () => offset),
|
|
42
|
+
defineProperty('placements', () => placements ?? []),
|
|
43
|
+
defineProperty('keys', () => keys ?? [])
|
|
44
|
+
],
|
|
45
|
+
() => ({ onquerychange })
|
|
46
|
+
);
|
|
47
|
+
const bond = factory(bondProps).share();
|
|
48
|
+
|
|
49
|
+
function _factory(props: typeof bondProps) {
|
|
50
|
+
const bondState = new DropdownBondState<T>(() => props);
|
|
51
|
+
return new DropdownBond(bondState);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export function getBond() {
|
|
55
|
+
return bond;
|
|
56
|
+
}
|
|
57
|
+
</script>
|
|
58
|
+
|
|
59
|
+
{@render children?.({ dropdown: bond })}
|
|
@@ -1,52 +1,41 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
{bond}
|
|
41
|
-
|
|
42
|
-
class={['relative flex h-auto min-h-10 flex-wrap items-center', '$preset', klass]}
|
|
43
|
-
onmount={onmount?.bind(bond.state)}
|
|
44
|
-
ondestroy={ondestroy?.bind(bond.state)}
|
|
45
|
-
enter={enter?.bind(bond.state)}
|
|
46
|
-
exit={exit?.bind(bond.state)}
|
|
47
|
-
initial={initial?.bind(bond.state)}
|
|
48
|
-
animate={animate?.bind(bond.state)}
|
|
49
|
-
{...restProps}
|
|
50
|
-
>
|
|
51
|
-
{@render children?.({ dropdown: bond })}
|
|
52
|
-
</Trigger>
|
|
1
|
+
<script lang="ts" generics="T extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
+
import { Trigger } from '../popover/atoms';
|
|
3
|
+
import type { Base } from '../atom';
|
|
4
|
+
import { DropdownBond } from './bond.svelte';
|
|
5
|
+
import type { DropdownTriggerProps } from './types';
|
|
6
|
+
|
|
7
|
+
const bond = DropdownBond.get();
|
|
8
|
+
|
|
9
|
+
if (!bond) {
|
|
10
|
+
throw new Error('dropdown atom was not found');
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
let {
|
|
14
|
+
class: klass = '',
|
|
15
|
+
as = 'button' as T,
|
|
16
|
+
children = undefined,
|
|
17
|
+
onmount = undefined,
|
|
18
|
+
ondestroy = undefined,
|
|
19
|
+
animate = undefined,
|
|
20
|
+
enter = undefined,
|
|
21
|
+
exit = undefined,
|
|
22
|
+
initial = undefined,
|
|
23
|
+
...restProps
|
|
24
|
+
}: DropdownTriggerProps<T, B> = $props();
|
|
25
|
+
</script>
|
|
26
|
+
|
|
27
|
+
<Trigger
|
|
28
|
+
{as}
|
|
29
|
+
{bond}
|
|
30
|
+
preset="dropdown.trigger"
|
|
31
|
+
class={['border-border relative flex h-auto min-h-10 flex-wrap items-center', '$preset', klass]}
|
|
32
|
+
onmount={onmount?.bind(bond.state)}
|
|
33
|
+
ondestroy={ondestroy?.bind(bond.state)}
|
|
34
|
+
enter={enter?.bind(bond.state)}
|
|
35
|
+
exit={exit?.bind(bond.state)}
|
|
36
|
+
initial={initial?.bind(bond.state)}
|
|
37
|
+
animate={animate?.bind(bond.state)}
|
|
38
|
+
{...restProps}
|
|
39
|
+
>
|
|
40
|
+
{@render children?.({ dropdown: bond })}
|
|
41
|
+
</Trigger>
|
|
@@ -1,12 +1,5 @@
|
|
|
1
|
-
import type { PopoverTriggerProps } from '../popover/popover-trigger.svelte';
|
|
2
|
-
export type DropdownTriggerProps<T extends keyof HTMLElementTagNameMap, B extends Base = Base> = PopoverTriggerProps<T, B> & {
|
|
3
|
-
children?: Snippet<[{
|
|
4
|
-
dropdown?: DropdownBond;
|
|
5
|
-
}]>;
|
|
6
|
-
};
|
|
7
|
-
import type { Snippet } from 'svelte';
|
|
8
|
-
import { DropdownBond } from './bond.svelte';
|
|
9
1
|
import type { Base } from '../atom';
|
|
2
|
+
import type { DropdownTriggerProps } from './types';
|
|
10
3
|
declare function $$render<T extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
|
|
11
4
|
props: DropdownTriggerProps<T, B>;
|
|
12
5
|
exports: {};
|
|
@@ -1,62 +1,60 @@
|
|
|
1
|
-
<script lang="ts" generics="T extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
const bond = DropdownBond.get();
|
|
8
|
-
|
|
9
|
-
if (!bond) {
|
|
10
|
-
throw new Error('DropdownValue must be used within a Dropdown');
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
let {
|
|
14
|
-
class: klass = '',
|
|
15
|
-
as = 'div' as T,
|
|
16
|
-
value,
|
|
17
|
-
children,
|
|
18
|
-
onmount = undefined,
|
|
19
|
-
ondestroy = undefined,
|
|
20
|
-
animate = undefined,
|
|
21
|
-
enter = undefined,
|
|
22
|
-
exit = undefined,
|
|
23
|
-
initial = undefined,
|
|
24
|
-
...restProps
|
|
25
|
-
} = $props();
|
|
26
|
-
|
|
27
|
-
function handleClick(ev: Event) {
|
|
28
|
-
ev.preventDefault();
|
|
29
|
-
ev.stopPropagation();
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
{
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
{
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
>
|
|
60
|
-
|
|
61
|
-
</button>
|
|
62
|
-
</HtmlAtom>
|
|
1
|
+
<script lang="ts" generics="T extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
+
import { Icon } from '../icon';
|
|
3
|
+
import { HtmlAtom, type Base } from '../atom';
|
|
4
|
+
import CloseIcon from '../../icons/icon-close.svelte';
|
|
5
|
+
import { DropdownBond } from './bond.svelte';
|
|
6
|
+
|
|
7
|
+
const bond = DropdownBond.get();
|
|
8
|
+
|
|
9
|
+
if (!bond) {
|
|
10
|
+
throw new Error('DropdownValue must be used within a Dropdown');
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
let {
|
|
14
|
+
class: klass = '',
|
|
15
|
+
as = 'div' as T,
|
|
16
|
+
value,
|
|
17
|
+
children,
|
|
18
|
+
onmount = undefined,
|
|
19
|
+
ondestroy = undefined,
|
|
20
|
+
animate = undefined,
|
|
21
|
+
enter = undefined,
|
|
22
|
+
exit = undefined,
|
|
23
|
+
initial = undefined,
|
|
24
|
+
...restProps
|
|
25
|
+
} = $props();
|
|
26
|
+
|
|
27
|
+
function handleClick(ev: Event) {
|
|
28
|
+
ev.preventDefault();
|
|
29
|
+
ev.stopPropagation();
|
|
30
|
+
|
|
31
|
+
bond?.state.unselect([value]);
|
|
32
|
+
}
|
|
33
|
+
</script>
|
|
34
|
+
|
|
35
|
+
<HtmlAtom
|
|
36
|
+
{as}
|
|
37
|
+
{bond}
|
|
38
|
+
preset="dropdown.value"
|
|
39
|
+
class={[
|
|
40
|
+
'dropdown-value border-border bg-foreground/5 inline-flex flex-nowrap items-center gap-1 rounded-xs px-1 whitespace-nowrap',
|
|
41
|
+
'$preset',
|
|
42
|
+
klass
|
|
43
|
+
]}
|
|
44
|
+
onmount={onmount?.bind(bond.state)}
|
|
45
|
+
ondestroy={ondestroy?.bind(bond.state)}
|
|
46
|
+
enter={enter?.bind(bond.state)}
|
|
47
|
+
exit={exit?.bind(bond.state)}
|
|
48
|
+
initial={initial?.bind(bond.state)}
|
|
49
|
+
animate={animate?.bind(bond.state)}
|
|
50
|
+
{...restProps}
|
|
51
|
+
>
|
|
52
|
+
{@render children?.()}
|
|
53
|
+
|
|
54
|
+
<button
|
|
55
|
+
class="bg-foreground/5 flex aspect-square h-4 cursor-pointer items-center justify-center rounded-xs p-0"
|
|
56
|
+
onclick={handleClick}
|
|
57
|
+
>
|
|
58
|
+
<Icon class="h-3" src={CloseIcon} />
|
|
59
|
+
</button>
|
|
60
|
+
</HtmlAtom>
|
|
@@ -19,6 +19,10 @@ export declare class DropdownItemBond<T = unknown> extends Bond<DropdownItemBond
|
|
|
19
19
|
mount(): () => void;
|
|
20
20
|
unmount(): void;
|
|
21
21
|
share(): this;
|
|
22
|
+
root(): {
|
|
23
|
+
[x: symbol]: (node: HTMLElement) => void;
|
|
24
|
+
'data-selected': boolean;
|
|
25
|
+
};
|
|
22
26
|
static get(): DropdownItemBond | undefined;
|
|
23
27
|
static set(bond: DropdownItemBond): DropdownItemBond;
|
|
24
28
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getContext, setContext } from 'svelte';
|
|
2
2
|
import { Bond, BondState } from '../../../shared/bond.svelte';
|
|
3
3
|
import { DropdownBond, DropdownBondState } from '../bond.svelte';
|
|
4
|
+
import { createAttachmentKey } from 'svelte/attachments';
|
|
4
5
|
export class DropdownItemBond extends Bond {
|
|
5
6
|
static CONTEXT_KEY = '@atoms/context/dropdown/item';
|
|
6
7
|
#dropdown;
|
|
@@ -31,6 +32,14 @@ export class DropdownItemBond extends Bond {
|
|
|
31
32
|
share() {
|
|
32
33
|
return DropdownItemBond.set(this);
|
|
33
34
|
}
|
|
35
|
+
root() {
|
|
36
|
+
return {
|
|
37
|
+
'data-selected': this.state.isSelected,
|
|
38
|
+
[createAttachmentKey()]: (node) => {
|
|
39
|
+
this.elements.root = node;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
34
43
|
static get() {
|
|
35
44
|
return getContext(DropdownItemBond.CONTEXT_KEY);
|
|
36
45
|
}
|
|
@@ -41,6 +41,11 @@
|
|
|
41
41
|
const unmount = bond.mount();
|
|
42
42
|
$effect(() => unmount);
|
|
43
43
|
|
|
44
|
+
const rootProps = $derived({
|
|
45
|
+
...bond?.root?.(),
|
|
46
|
+
...restProps
|
|
47
|
+
});
|
|
48
|
+
|
|
44
49
|
function _factory() {
|
|
45
50
|
const item = dropdown?.state.item(value);
|
|
46
51
|
|
|
@@ -56,7 +61,7 @@
|
|
|
56
61
|
return new DropdownItemBond(bondState);
|
|
57
62
|
}
|
|
58
63
|
|
|
59
|
-
function
|
|
64
|
+
function handleClick(ev: MouseEvent) {
|
|
60
65
|
onclick?.(ev);
|
|
61
66
|
|
|
62
67
|
if (ev.defaultPrevented) {
|
|
@@ -76,12 +81,11 @@
|
|
|
76
81
|
</script>
|
|
77
82
|
|
|
78
83
|
<Item
|
|
79
|
-
{@attach (node) => (bond.elements.root = node)}
|
|
80
84
|
{bond}
|
|
81
85
|
{preset}
|
|
82
86
|
class={[
|
|
83
|
-
bond.state.isHighlighted && 'bg-foreground/
|
|
84
|
-
bond.state.isSelected && 'bg-
|
|
87
|
+
bond.state.isHighlighted && 'bg-foreground/5',
|
|
88
|
+
bond.state.isSelected && 'bg-primary/5 hover:bg-primary/10 active:bg-primary/15',
|
|
85
89
|
'$preset',
|
|
86
90
|
klass
|
|
87
91
|
]}
|
|
@@ -91,8 +95,8 @@
|
|
|
91
95
|
animate={animate?.bind(bond.state)}
|
|
92
96
|
onmount={onmount?.bind(bond.state)}
|
|
93
97
|
ondestroy={ondestroy?.bind(bond.state)}
|
|
94
|
-
onclick={
|
|
95
|
-
{...
|
|
98
|
+
onclick={handleClick}
|
|
99
|
+
{...rootProps}
|
|
96
100
|
>
|
|
97
101
|
{@render children?.({ dropdownItem: bond })}
|
|
98
102
|
</Item>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
import type { HtmlAtomProps, Base } from '../atom';
|
|
3
|
+
import type { Factory, Override } from '../../types';
|
|
4
|
+
import type { DropdownBond } from './bond.svelte';
|
|
5
|
+
import type { PopoverTriggerProps } from '../popover';
|
|
6
|
+
/**
|
|
7
|
+
* Extend this interface to add custom dropdown properties in your application.
|
|
8
|
+
*/
|
|
9
|
+
export interface DropdownExtendProps {
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Extend this interface to add custom dropdown trigger properties in your application.
|
|
13
|
+
*/
|
|
14
|
+
export interface DropdownTriggerExtendProps {
|
|
15
|
+
}
|
|
16
|
+
export interface DropdownRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base, T = any> extends Omit<HtmlAtomProps<E, B>, 'children'>, DropdownExtendProps {
|
|
17
|
+
open?: boolean;
|
|
18
|
+
value?: T;
|
|
19
|
+
values?: T[];
|
|
20
|
+
multiple?: boolean;
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
placements?: string[];
|
|
23
|
+
placement?: string;
|
|
24
|
+
offset?: number;
|
|
25
|
+
keys?: string[];
|
|
26
|
+
factory?: Factory<DropdownBond>;
|
|
27
|
+
children?: Snippet<[{
|
|
28
|
+
dropdown: DropdownBond<any>;
|
|
29
|
+
}]>;
|
|
30
|
+
onquerychange?: (query: string) => void;
|
|
31
|
+
}
|
|
32
|
+
export interface DropdownTriggerProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<PopoverTriggerProps<E, B>, {
|
|
33
|
+
children?: Snippet<[{
|
|
34
|
+
dropdown?: DropdownBond;
|
|
35
|
+
}]>;
|
|
36
|
+
}>, DropdownTriggerExtendProps {
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,19 +1,7 @@
|
|
|
1
1
|
import type { HTMLAttributes } from 'svelte/elements';
|
|
2
|
-
import type { ElementType, HtmlElementTagName } from './types';
|
|
2
|
+
import type { ElementType, HtmlElementProps, HtmlElementTagName } from './types';
|
|
3
3
|
declare function $$render<T extends HtmlElementTagName>(): {
|
|
4
|
-
props:
|
|
5
|
-
[key: string]: unknown;
|
|
6
|
-
class?: import("../../utils").ClassValue | import("../../utils").ClassValue[];
|
|
7
|
-
as?: (string & {}) | T | undefined;
|
|
8
|
-
global?: boolean;
|
|
9
|
-
initial?: import("./types").NodeFunction<T> | undefined;
|
|
10
|
-
enter?: import("./types").TransitionFunction<T> | undefined;
|
|
11
|
-
exit?: import("./types").TransitionFunction<T> | undefined;
|
|
12
|
-
animate?: import("./types").NodeFunction<T> | undefined;
|
|
13
|
-
onmount?: import("./types").NodeFunction<T> | undefined;
|
|
14
|
-
ondestroy?: import("./types").NodeFunction<T> | undefined;
|
|
15
|
-
children?: import("svelte").Snippet;
|
|
16
|
-
} & Omit<HTMLAttributes<ElementType<T>>, string | number>;
|
|
4
|
+
props: HtmlElementProps<T> & Omit<HTMLAttributes<ElementType<T>>, keyof HtmlElementProps<T>>;
|
|
17
5
|
exports: {};
|
|
18
6
|
bindings: "";
|
|
19
7
|
slots: {};
|
|
@@ -1,19 +1,7 @@
|
|
|
1
1
|
import type { SVGAttributes } from 'svelte/elements';
|
|
2
|
-
import type { ElementType, SvgElementTagName } from './types';
|
|
2
|
+
import type { ElementType, SvgElementProps, SvgElementTagName } from './types';
|
|
3
3
|
declare function $$render<T extends SvgElementTagName>(): {
|
|
4
|
-
props:
|
|
5
|
-
[key: string]: unknown;
|
|
6
|
-
class?: import("../../utils").ClassValue | import("../../utils").ClassValue[];
|
|
7
|
-
as?: (string & {}) | T | undefined;
|
|
8
|
-
global?: boolean;
|
|
9
|
-
initial?: import("./types").NodeFunction<T> | undefined;
|
|
10
|
-
enter?: import("./types").TransitionFunction<T> | undefined;
|
|
11
|
-
exit?: import("./types").TransitionFunction<T> | undefined;
|
|
12
|
-
animate?: import("./types").NodeFunction<T> | undefined;
|
|
13
|
-
onmount?: import("./types").NodeFunction<T> | undefined;
|
|
14
|
-
ondestroy?: import("./types").NodeFunction<T> | undefined;
|
|
15
|
-
children?: import("svelte").Snippet;
|
|
16
|
-
} & Omit<SVGAttributes<ElementType<T>>, string | number>;
|
|
4
|
+
props: SvgElementProps<T> & Omit<SVGAttributes<ElementType<T>>, keyof SvgElementProps<T>>;
|
|
17
5
|
exports: {};
|
|
18
6
|
bindings: "";
|
|
19
7
|
slots: {};
|
|
@@ -2,7 +2,7 @@ import type { Snippet } from 'svelte';
|
|
|
2
2
|
import type { HTMLAttributes, SVGAttributes } from 'svelte/elements';
|
|
3
3
|
import type { TransitionConfig } from 'svelte/transition';
|
|
4
4
|
import type { ClassValue } from '../../utils';
|
|
5
|
-
export
|
|
5
|
+
export interface ElementProps<T extends ElementTagName> extends Record<string, unknown> {
|
|
6
6
|
class?: ClassValue | ClassValue[];
|
|
7
7
|
as?: T | (string & {});
|
|
8
8
|
global?: boolean;
|
|
@@ -14,17 +14,24 @@ export type ElementProps<T extends ElementTagName> = Record<string, unknown> & {
|
|
|
14
14
|
ondestroy?: NodeFunction<T>;
|
|
15
15
|
children?: Snippet;
|
|
16
16
|
[key: string]: unknown;
|
|
17
|
-
}
|
|
17
|
+
}
|
|
18
18
|
export type HtmlElementTagName = keyof HTMLElementTagNameMap;
|
|
19
19
|
export type SvgElementTagName = keyof SVGElementTagNameMap;
|
|
20
20
|
export type MathMLElementTagName = keyof MathMLElementTagNameMap;
|
|
21
|
-
export
|
|
22
|
-
|
|
23
|
-
export
|
|
21
|
+
export interface HtmlElementProps<T extends HtmlElementTagName = 'div'> extends ElementProps<T> {
|
|
22
|
+
}
|
|
23
|
+
export interface SvgElementProps<T extends SvgElementTagName = 'g'> extends ElementProps<T> {
|
|
24
|
+
}
|
|
25
|
+
export interface MathMLElementProps<T extends MathMLElementTagName> extends ElementProps<T> {
|
|
26
|
+
}
|
|
24
27
|
export type ElementTagName = HtmlElementTagName | SvgElementTagName | MathMLElementTagName;
|
|
25
28
|
export type HtmlElementType<T extends HtmlElementTagName> = HTMLElementTagNameMap[T];
|
|
26
29
|
export type SvgElementType<T extends SvgElementTagName> = SVGElementTagNameMap[T];
|
|
27
30
|
export type ElementType<T> = T extends HtmlElementTagName ? HTMLElementTagNameMap[T] : T extends SvgElementTagName ? SVGElementTagNameMap[T] : T extends MathMLElementTagName ? MathMLElementTagNameMap[T] : never;
|
|
28
31
|
export type ElementAttributes<T extends ElementTagName> = T extends HtmlElementTagName ? HTMLAttributes<ElementType<T>> : T extends SvgElementTagName ? SVGAttributes<ElementType<T>> : never;
|
|
29
|
-
export
|
|
30
|
-
|
|
32
|
+
export interface TransitionFunction<T extends ElementTagName> {
|
|
33
|
+
(node: ElementType<T>): Partial<TransitionConfig>;
|
|
34
|
+
}
|
|
35
|
+
export interface NodeFunction<T extends ElementTagName> {
|
|
36
|
+
(node: ElementType<T>, ...args: any[]): any;
|
|
37
|
+
}
|
|
@@ -25,6 +25,10 @@ export type FieldStateProps<Extension extends Record<string, unknown> = Record<s
|
|
|
25
25
|
readonly: boolean;
|
|
26
26
|
name?: string;
|
|
27
27
|
value?: Value;
|
|
28
|
+
files?: File[];
|
|
29
|
+
date?: Date | null;
|
|
30
|
+
number?: number;
|
|
31
|
+
checked?: boolean;
|
|
28
32
|
schema?: Schema;
|
|
29
33
|
validator?: ValidationAdapter<Schema, Value>;
|
|
30
34
|
onvalidation?: (errors: ValidationError[]) => void;
|
|
@@ -68,6 +72,10 @@ export declare class FieldBondState<Props extends FieldStateProps = FieldStatePr
|
|
|
68
72
|
#private;
|
|
69
73
|
constructor(props: () => Props);
|
|
70
74
|
get value(): unknown;
|
|
75
|
+
get files(): File[] | undefined;
|
|
76
|
+
get date(): Date | null | undefined;
|
|
77
|
+
get number(): number | undefined;
|
|
78
|
+
get checked(): boolean | undefined;
|
|
71
79
|
get errors(): ValidationError[];
|
|
72
80
|
get isValidating(): boolean;
|
|
73
81
|
validate(): ValidationResult;
|
|
@@ -101,7 +101,7 @@ export class FieldBondState extends BondState {
|
|
|
101
101
|
#form;
|
|
102
102
|
constructor(props) {
|
|
103
103
|
super(props);
|
|
104
|
-
this.#form = FormBond.get()
|
|
104
|
+
this.#form = FormBond.get()?.state;
|
|
105
105
|
if (!this.#form) {
|
|
106
106
|
throw new Error('Form Context is undefined, FieldAtom must be used within a FormAtom context');
|
|
107
107
|
}
|
|
@@ -109,6 +109,18 @@ export class FieldBondState extends BondState {
|
|
|
109
109
|
get value() {
|
|
110
110
|
return this.props.value;
|
|
111
111
|
}
|
|
112
|
+
get files() {
|
|
113
|
+
return this.props.files;
|
|
114
|
+
}
|
|
115
|
+
get date() {
|
|
116
|
+
return this.props.date;
|
|
117
|
+
}
|
|
118
|
+
get number() {
|
|
119
|
+
return this.props.number;
|
|
120
|
+
}
|
|
121
|
+
get checked() {
|
|
122
|
+
return this.props.checked;
|
|
123
|
+
}
|
|
112
124
|
get errors() {
|
|
113
125
|
return [...this.#errors];
|
|
114
126
|
}
|