@crisp-ui-kit/crisp 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/dist/accordion.css +9 -1
- package/dist/appshell.css +12 -4
- package/dist/authshell.css +57 -0
- package/dist/authshell.d.ts +7 -0
- package/dist/avatargroup.css +2 -2
- package/dist/badge.css +4 -4
- package/dist/barchart.css +13 -5
- package/dist/board.css +9 -1
- package/dist/bulkbar.css +11 -3
- package/dist/button.css +15 -1
- package/dist/button.d.ts +2 -1
- package/dist/card.css +8 -0
- package/dist/checkbox.css +17 -1
- package/dist/cjs/components/accordion/accordion.js +69 -0
- package/dist/cjs/components/accordion/accordion.recipe.js +26 -0
- package/dist/cjs/components/accordion/index.js +7 -0
- package/dist/cjs/components/avatar/avatar.js +44 -0
- package/dist/cjs/components/avatar/avatar.recipe.js +42 -0
- package/dist/cjs/components/avatar/index.js +7 -0
- package/dist/cjs/components/avatargroup/avatargroup.js +52 -0
- package/dist/cjs/components/avatargroup/avatargroup.recipe.js +18 -0
- package/dist/cjs/components/avatargroup/index.js +7 -0
- package/dist/cjs/components/badge/badge.js +44 -0
- package/dist/cjs/components/badge/badge.recipe.js +68 -0
- package/dist/cjs/components/badge/index.js +7 -0
- package/dist/cjs/components/barchart/barchart.js +45 -0
- package/dist/cjs/components/barchart/barchart.recipe.js +34 -0
- package/dist/cjs/components/barchart/index.js +7 -0
- package/dist/cjs/components/breadcrumb/breadcrumb.js +53 -0
- package/dist/cjs/components/breadcrumb/breadcrumb.recipe.js +21 -0
- package/dist/cjs/components/breadcrumb/index.js +7 -0
- package/dist/cjs/components/bulkbar/bulkbar.js +53 -0
- package/dist/cjs/components/bulkbar/bulkbar.recipe.js +31 -0
- package/dist/cjs/components/bulkbar/index.js +8 -0
- package/dist/cjs/components/button/button.js +62 -0
- package/dist/cjs/components/button/button.recipe.js +58 -0
- package/dist/cjs/components/button/index.js +7 -0
- package/dist/cjs/components/callout/callout.js +25 -0
- package/dist/cjs/components/callout/callout.recipe.js +29 -0
- package/dist/cjs/components/callout/index.js +7 -0
- package/dist/cjs/components/card/card.js +54 -0
- package/dist/cjs/components/card/card.recipe.js +31 -0
- package/dist/cjs/components/card/index.js +10 -0
- package/dist/cjs/components/checkbox/checkbox.js +56 -0
- package/dist/cjs/components/checkbox/checkbox.recipe.js +34 -0
- package/dist/cjs/components/checkbox/index.js +7 -0
- package/dist/cjs/components/columncalc/columncalc.js +139 -0
- package/dist/cjs/components/columncalc/columncalc.recipe.js +33 -0
- package/dist/cjs/components/columncalc/index.js +10 -0
- package/dist/cjs/components/contextmenu/contextmenu.js +78 -0
- package/dist/cjs/components/contextmenu/contextmenu.recipe.js +24 -0
- package/dist/cjs/components/contextmenu/index.js +7 -0
- package/dist/cjs/components/datatable/datatable.js +508 -0
- package/dist/cjs/components/datatable/datatable.recipe.js +113 -0
- package/dist/cjs/components/datatable/index.js +7 -0
- package/dist/cjs/components/datepicker/datepicker.js +153 -0
- package/dist/cjs/components/datepicker/datepicker.recipe.js +180 -0
- package/dist/cjs/components/datepicker/index.js +19 -0
- package/dist/cjs/components/datepickerfield/datepickerfield.js +85 -0
- package/dist/cjs/components/datepickerfield/datepickerfield.recipe.js +44 -0
- package/dist/cjs/components/datepickerfield/index.js +7 -0
- package/dist/cjs/components/dialog/dialog.js +86 -0
- package/dist/cjs/components/dialog/dialog.recipe.js +35 -0
- package/dist/cjs/components/dialog/index.js +9 -0
- package/dist/cjs/components/divider/divider.js +10 -0
- package/dist/cjs/components/divider/divider.recipe.js +17 -0
- package/dist/cjs/components/divider/index.js +7 -0
- package/dist/cjs/components/donutchart/donutchart.js +41 -0
- package/dist/cjs/components/donutchart/donutchart.recipe.js +30 -0
- package/dist/cjs/components/donutchart/index.js +7 -0
- package/dist/cjs/components/drawer/drawer.js +80 -0
- package/dist/cjs/components/drawer/drawer.recipe.js +30 -0
- package/dist/cjs/components/drawer/index.js +9 -0
- package/dist/cjs/components/emptystate/emptystate.js +10 -0
- package/dist/cjs/components/emptystate/emptystate.recipe.js +34 -0
- package/dist/cjs/components/emptystate/index.js +7 -0
- package/dist/cjs/components/formfield/formfield.js +50 -0
- package/dist/cjs/components/formfield/formfield.recipe.js +22 -0
- package/dist/cjs/components/formfield/index.js +7 -0
- package/dist/cjs/components/input/index.js +7 -0
- package/dist/cjs/components/input/input.js +47 -0
- package/dist/cjs/components/input/input.recipe.js +59 -0
- package/dist/cjs/components/kbd/index.js +7 -0
- package/dist/cjs/components/kbd/kbd.js +44 -0
- package/dist/cjs/components/kbd/kbd.recipe.js +23 -0
- package/dist/cjs/components/linechart/index.js +7 -0
- package/dist/cjs/components/linechart/linechart.js +57 -0
- package/dist/cjs/components/linechart/linechart.recipe.js +35 -0
- package/dist/cjs/components/menu/index.js +14 -0
- package/dist/cjs/components/menu/menu-keyboard.js +117 -0
- package/dist/cjs/components/menu/menu.js +144 -0
- package/dist/cjs/components/menu/menu.recipe.js +54 -0
- package/dist/cjs/components/multiselect/index.js +7 -0
- package/dist/cjs/components/multiselect/multiselect.js +161 -0
- package/dist/cjs/components/multiselect/multiselect.recipe.js +71 -0
- package/dist/cjs/components/popover/index.js +7 -0
- package/dist/cjs/components/popover/popover.js +106 -0
- package/dist/cjs/components/popover/popover.recipe.js +21 -0
- package/dist/cjs/components/progress/index.js +7 -0
- package/dist/cjs/components/progress/progress.js +26 -0
- package/dist/cjs/components/progress/progress.recipe.js +20 -0
- package/dist/cjs/components/radiogroup/index.js +8 -0
- package/dist/cjs/components/radiogroup/radiogroup.js +83 -0
- package/dist/cjs/components/radiogroup/radiogroup.recipe.js +40 -0
- package/dist/cjs/components/resizablepanel/index.js +12 -0
- package/dist/cjs/components/resizablepanel/resizablepanel.js +176 -0
- package/dist/cjs/components/resizablepanel/resizablepanel.recipe.js +69 -0
- package/dist/cjs/components/segmented/index.js +7 -0
- package/dist/cjs/components/segmented/segmented.js +95 -0
- package/dist/cjs/components/segmented/segmented.recipe.js +23 -0
- package/dist/cjs/components/select/index.js +7 -0
- package/dist/cjs/components/select/select.js +180 -0
- package/dist/cjs/components/select/select.recipe.js +79 -0
- package/dist/cjs/components/skeleton/index.js +7 -0
- package/dist/cjs/components/skeleton/skeleton.js +13 -0
- package/dist/cjs/components/skeleton/skeleton.recipe.js +17 -0
- package/dist/cjs/components/spinner/index.js +7 -0
- package/dist/cjs/components/spinner/spinner.js +15 -0
- package/dist/cjs/components/spinner/spinner.recipe.js +16 -0
- package/dist/cjs/components/stagebar/index.js +7 -0
- package/dist/cjs/components/stagebar/stagebar.js +26 -0
- package/dist/cjs/components/stagebar/stagebar.recipe.js +17 -0
- package/dist/cjs/components/statcard/index.js +7 -0
- package/dist/cjs/components/statcard/statcard.js +15 -0
- package/dist/cjs/components/statcard/statcard.recipe.js +37 -0
- package/dist/cjs/components/switch/index.js +7 -0
- package/dist/cjs/components/switch/switch.js +58 -0
- package/dist/cjs/components/switch/switch.recipe.js +29 -0
- package/dist/cjs/components/table/index.js +14 -0
- package/dist/cjs/components/table/table.js +66 -0
- package/dist/cjs/components/table/table.recipe.js +43 -0
- package/dist/cjs/components/tabletoolbar/index.js +20 -0
- package/dist/cjs/components/tabletoolbar/tabletoolbar.chrome.js +84 -0
- package/dist/cjs/components/tabletoolbar/tabletoolbar.js +237 -0
- package/dist/cjs/components/tabletoolbar/tabletoolbar.recipe.js +26 -0
- package/dist/cjs/components/tabs/index.js +7 -0
- package/dist/cjs/components/tabs/tabs.js +106 -0
- package/dist/cjs/components/tabs/tabs.recipe.js +36 -0
- package/dist/cjs/components/textarea/index.js +7 -0
- package/dist/cjs/components/textarea/textarea.js +56 -0
- package/dist/cjs/components/textarea/textarea.recipe.js +46 -0
- package/dist/cjs/components/toast/index.js +8 -0
- package/dist/cjs/components/toast/toast.js +95 -0
- package/dist/cjs/components/toast/toast.recipe.js +31 -0
- package/dist/cjs/components/tooltip/index.js +7 -0
- package/dist/cjs/components/tooltip/tooltip.js +95 -0
- package/dist/cjs/components/tooltip/tooltip.recipe.js +16 -0
- package/dist/cjs/components/wheelpicker/index.js +7 -0
- package/dist/cjs/components/wheelpicker/wheelpicker.js +134 -0
- package/dist/cjs/components/wheelpicker/wheelpicker.recipe.js +95 -0
- package/dist/cjs/core/cx.js +8 -0
- package/dist/cjs/core/define.js +6 -0
- package/dist/cjs/core/index.js +11 -0
- package/dist/cjs/core/primitive.js +49 -0
- package/dist/cjs/core/resolve.js +44 -0
- package/dist/cjs/core/types.js +2 -0
- package/dist/cjs/index.js +92 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/product/appshell/appshell.js +104 -0
- package/dist/cjs/product/appshell/appshell.recipe.js +30 -0
- package/dist/cjs/product/appshell/index.js +7 -0
- package/dist/cjs/product/authshell/authshell.js +21 -0
- package/dist/cjs/product/authshell/authshell.recipe.js +67 -0
- package/dist/cjs/product/authshell/index.js +7 -0
- package/dist/cjs/product/board/board.js +78 -0
- package/dist/cjs/product/board/board.recipe.js +31 -0
- package/dist/cjs/product/board/index.js +7 -0
- package/dist/cjs/product/command/command.js +238 -0
- package/dist/cjs/product/command/command.recipe.js +47 -0
- package/dist/cjs/product/command/index.js +8 -0
- package/dist/cjs/product/entitycard/entitycard.js +14 -0
- package/dist/cjs/product/entitycard/entitycard.recipe.js +32 -0
- package/dist/cjs/product/entitycard/index.js +7 -0
- package/dist/cjs/product/flowcanvas/flowcanvas.js +121 -0
- package/dist/cjs/product/flowcanvas/flowcanvas.recipe.js +28 -0
- package/dist/cjs/product/flowcanvas/index.js +7 -0
- package/dist/cjs/product/inbox/inbox.js +16 -0
- package/dist/cjs/product/inbox/inbox.recipe.js +46 -0
- package/dist/cjs/product/inbox/index.js +7 -0
- package/dist/cjs/product/listpage/index.js +8 -0
- package/dist/cjs/product/listpage/listpage.js +25 -0
- package/dist/cjs/product/listpage/listpage.recipe.js +46 -0
- package/dist/cjs/product/navitem/index.js +5 -0
- package/dist/cjs/product/navitem/navitem.js +44 -0
- package/dist/cjs/product/navitem/navitem.recipe.js +36 -0
- package/dist/cjs/product/onboarding/index.js +7 -0
- package/dist/cjs/product/onboarding/onboarding.js +17 -0
- package/dist/cjs/product/onboarding/onboarding.recipe.js +44 -0
- package/dist/cjs/product/recordpage/index.js +7 -0
- package/dist/cjs/product/recordpage/recordpage.js +409 -0
- package/dist/cjs/product/recordpage/recordpage.recipe.js +162 -0
- package/dist/cjs/product/recordpanel/index.js +7 -0
- package/dist/cjs/product/recordpanel/recordpanel.js +83 -0
- package/dist/cjs/product/recordpanel/recordpanel.recipe.js +51 -0
- package/dist/cjs/product/recordstable/company-logos.js +29 -0
- package/dist/cjs/product/recordstable/index.js +10 -0
- package/dist/cjs/product/recordstable/recordstable.js +1092 -0
- package/dist/cjs/product/recordstable/recordstable.recipe.js +152 -0
- package/dist/cjs/product/recordstable/recordstable.tag.js +21 -0
- package/dist/cjs/product/richtext/index.js +7 -0
- package/dist/cjs/product/richtext/richtext.js +147 -0
- package/dist/cjs/product/richtext/richtext.recipe.js +43 -0
- package/dist/cjs/product/settingssection/index.js +7 -0
- package/dist/cjs/product/settingssection/settingssection.js +14 -0
- package/dist/cjs/product/settingssection/settingssection.recipe.js +23 -0
- package/dist/cjs/product/settingsshell/index.js +7 -0
- package/dist/cjs/product/settingsshell/settingsshell.js +59 -0
- package/dist/cjs/product/settingsshell/settingsshell.recipe.js +46 -0
- package/dist/cjs/product/sidebar/index.js +13 -0
- package/dist/cjs/product/sidebar/sidebar.js +148 -0
- package/dist/cjs/product/sidebar/sidebar.recipe.js +46 -0
- package/dist/cjs/product/tasklist/index.js +7 -0
- package/dist/cjs/product/tasklist/tasklist.js +19 -0
- package/dist/cjs/product/tasklist/tasklist.recipe.js +38 -0
- package/dist/cjs/product/trialbanner/index.js +7 -0
- package/dist/cjs/product/trialbanner/trialbanner.js +13 -0
- package/dist/cjs/product/trialbanner/trialbanner.recipe.js +32 -0
- package/dist/cjs/product/viewtoggle/index.js +7 -0
- package/dist/cjs/product/viewtoggle/viewtoggle.js +55 -0
- package/dist/cjs/product/viewtoggle/viewtoggle.recipe.js +27 -0
- package/dist/cjs/tokens/contract.js +21 -0
- package/dist/cjs/tokens/elevation.js +47 -0
- package/dist/cjs/tokens/index.js +18 -0
- package/dist/cjs/tokens/palette.js +63 -0
- package/dist/cjs/tokens/scale.js +70 -0
- package/dist/cjs/tokens/semantic.js +57 -0
- package/dist/columncalc.css +26 -0
- package/dist/columncalc.d.ts +7 -0
- package/dist/command.css +34 -1
- package/dist/contextmenu.css +10 -2
- package/dist/datatable.css +60 -14
- package/dist/datepicker.css +165 -19
- package/dist/datepicker.d.ts +2 -2
- package/dist/datepickerfield.css +27 -0
- package/dist/datepickerfield.d.ts +7 -0
- package/dist/dialog.css +10 -2
- package/dist/donutchart.css +8 -0
- package/dist/drawer.css +13 -5
- package/dist/entitycard.css +10 -2
- package/dist/esm/components/accordion/accordion.js +17 -16
- package/dist/esm/components/accordion/accordion.recipe.js +1 -1
- package/dist/esm/components/avatargroup/avatargroup.js +2 -2
- package/dist/esm/components/avatargroup/avatargroup.recipe.js +2 -2
- package/dist/esm/components/badge/badge.recipe.js +4 -4
- package/dist/esm/components/barchart/barchart.js +15 -2
- package/dist/esm/components/barchart/barchart.recipe.js +10 -5
- package/dist/esm/components/breadcrumb/breadcrumb.js +2 -2
- package/dist/esm/components/bulkbar/bulkbar.js +2 -2
- package/dist/esm/components/bulkbar/bulkbar.recipe.js +4 -4
- package/dist/esm/components/button/button.js +13 -2
- package/dist/esm/components/button/button.recipe.js +20 -4
- package/dist/esm/components/callout/callout.js +2 -2
- package/dist/esm/components/checkbox/checkbox.recipe.js +9 -1
- package/dist/esm/components/columncalc/columncalc.js +100 -0
- package/dist/esm/components/columncalc/columncalc.recipe.js +30 -0
- package/dist/esm/components/columncalc/index.js +1 -0
- package/dist/esm/components/contextmenu/contextmenu.recipe.js +4 -4
- package/dist/esm/components/datatable/datatable.js +276 -49
- package/dist/esm/components/datatable/datatable.recipe.js +54 -16
- package/dist/esm/components/datepicker/datepicker.js +104 -53
- package/dist/esm/components/datepicker/datepicker.recipe.js +170 -25
- package/dist/esm/components/datepicker/index.js +1 -1
- package/dist/esm/components/datepickerfield/datepickerfield.js +49 -0
- package/dist/esm/components/datepickerfield/datepickerfield.recipe.js +41 -0
- package/dist/esm/components/datepickerfield/index.js +2 -0
- package/dist/esm/components/dialog/dialog.js +2 -2
- package/dist/esm/components/dialog/dialog.recipe.js +4 -4
- package/dist/esm/components/divider/divider.js +2 -2
- package/dist/esm/components/donutchart/donutchart.js +2 -2
- package/dist/esm/components/drawer/drawer.js +2 -2
- package/dist/esm/components/drawer/drawer.recipe.js +6 -6
- package/dist/esm/components/emptystate/emptystate.js +2 -2
- package/dist/esm/components/formfield/formfield.js +2 -2
- package/dist/esm/components/input/input.js +6 -3
- package/dist/esm/components/input/input.recipe.js +38 -5
- package/dist/esm/components/linechart/linechart.js +15 -2
- package/dist/esm/components/linechart/linechart.recipe.js +10 -5
- package/dist/esm/components/menu/index.js +1 -0
- package/dist/esm/components/menu/menu-keyboard.js +80 -0
- package/dist/esm/components/menu/menu.js +27 -60
- package/dist/esm/components/menu/menu.recipe.js +5 -5
- package/dist/esm/components/multiselect/multiselect.js +10 -3
- package/dist/esm/components/multiselect/multiselect.recipe.js +8 -8
- package/dist/esm/components/popover/popover.js +2 -2
- package/dist/esm/components/popover/popover.recipe.js +2 -2
- package/dist/esm/components/progress/progress.js +3 -3
- package/dist/esm/components/radiogroup/radiogroup.js +2 -2
- package/dist/esm/components/radiogroup/radiogroup.recipe.js +1 -1
- package/dist/esm/components/resizablepanel/index.js +2 -0
- package/dist/esm/components/resizablepanel/resizablepanel.js +135 -0
- package/dist/esm/components/resizablepanel/resizablepanel.recipe.js +66 -0
- package/dist/esm/components/segmented/segmented.js +2 -2
- package/dist/esm/components/select/select.js +2 -2
- package/dist/esm/components/select/select.recipe.js +6 -6
- package/dist/esm/components/skeleton/skeleton.js +5 -2
- package/dist/esm/components/spinner/spinner.js +3 -2
- package/dist/esm/components/stagebar/stagebar.js +2 -2
- package/dist/esm/components/statcard/statcard.js +2 -2
- package/dist/esm/components/table/table.recipe.js +6 -6
- package/dist/esm/components/tabletoolbar/tabletoolbar.chrome.js +3 -3
- package/dist/esm/components/tabletoolbar/tabletoolbar.js +21 -13
- package/dist/esm/components/tabs/tabs.js +2 -2
- package/dist/esm/components/tabs/tabs.recipe.js +4 -4
- package/dist/esm/components/textarea/textarea.js +5 -5
- package/dist/esm/components/textarea/textarea.recipe.js +16 -4
- package/dist/esm/components/toast/toast.js +4 -4
- package/dist/esm/components/toast/toast.recipe.js +2 -2
- package/dist/esm/components/tooltip/tooltip.js +21 -7
- package/dist/esm/components/wheelpicker/index.js +2 -0
- package/dist/esm/components/wheelpicker/wheelpicker.js +98 -0
- package/dist/esm/components/wheelpicker/wheelpicker.recipe.js +92 -0
- package/dist/esm/index.js +5 -0
- package/dist/esm/product/appshell/appshell.js +33 -9
- package/dist/esm/product/appshell/appshell.recipe.js +4 -4
- package/dist/esm/product/authshell/authshell.js +18 -0
- package/dist/esm/product/authshell/authshell.recipe.js +64 -0
- package/dist/esm/product/authshell/index.js +2 -0
- package/dist/esm/product/board/board.js +2 -2
- package/dist/esm/product/board/board.recipe.js +1 -1
- package/dist/esm/product/command/command.js +19 -6
- package/dist/esm/product/command/command.recipe.js +27 -2
- package/dist/esm/product/entitycard/entitycard.js +2 -2
- package/dist/esm/product/entitycard/entitycard.recipe.js +2 -2
- package/dist/esm/product/flowcanvas/flowcanvas.js +4 -4
- package/dist/esm/product/inbox/inbox.recipe.js +1 -1
- package/dist/esm/product/listpage/listpage.recipe.js +3 -3
- package/dist/esm/product/navitem/navitem.recipe.js +13 -1
- package/dist/esm/product/onboarding/onboarding.js +2 -2
- package/dist/esm/product/onboarding/onboarding.recipe.js +2 -2
- package/dist/esm/product/recordpage/recordpage.js +133 -47
- package/dist/esm/product/recordpage/recordpage.recipe.js +19 -17
- package/dist/esm/product/recordpanel/recordpanel.js +4 -4
- package/dist/esm/product/recordpanel/recordpanel.recipe.js +12 -16
- package/dist/esm/product/recordstable/recordstable.js +157 -66
- package/dist/esm/product/recordstable/recordstable.recipe.js +23 -23
- package/dist/esm/product/recordstable/recordstable.tag.js +18 -0
- package/dist/esm/product/richtext/richtext.js +3 -3
- package/dist/esm/product/richtext/richtext.recipe.js +3 -3
- package/dist/esm/product/settingssection/settingssection.js +2 -2
- package/dist/esm/product/settingsshell/settingsshell.js +2 -2
- package/dist/esm/product/settingsshell/settingsshell.recipe.js +7 -2
- package/dist/esm/product/sidebar/sidebar.js +2 -2
- package/dist/esm/product/sidebar/sidebar.recipe.js +27 -2
- package/dist/esm/product/tasklist/tasklist.js +4 -4
- package/dist/esm/product/trialbanner/trialbanner.js +2 -2
- package/dist/esm/product/trialbanner/trialbanner.recipe.js +2 -2
- package/dist/esm/product/viewtoggle/viewtoggle.js +10 -2
- package/dist/esm/product/viewtoggle/viewtoggle.recipe.js +1 -1
- package/dist/esm/tokens/elevation.js +44 -0
- package/dist/esm/tokens/index.js +1 -0
- package/dist/esm/tokens/palette.js +30 -0
- package/dist/esm/tokens/scale.js +7 -0
- package/dist/esm/tokens/semantic.js +24 -0
- package/dist/inbox.css +9 -1
- package/dist/input.css +32 -4
- package/dist/linechart.css +5 -5
- package/dist/listpage.css +11 -3
- package/dist/menu.css +11 -3
- package/dist/multiselect.css +14 -6
- package/dist/native/tokens.d.ts +16 -0
- package/dist/native/tokens.js +221 -0
- package/dist/navitem.css +21 -1
- package/dist/onboarding.css +10 -2
- package/dist/popover.css +8 -0
- package/dist/progress.css +8 -0
- package/dist/radiogroup.css +9 -1
- package/dist/recordpage.css +22 -12
- package/dist/recordpanel.css +25 -15
- package/dist/recordstable.css +37 -23
- package/dist/resizablepanel.css +53 -0
- package/dist/resizablepanel.d.ts +7 -0
- package/dist/richtext.css +11 -3
- package/dist/segmented.css +8 -0
- package/dist/select.css +12 -4
- package/dist/settingsshell.css +15 -2
- package/dist/sidebar.css +34 -1
- package/dist/skeleton.css +8 -0
- package/dist/spinner.css +8 -0
- package/dist/stagebar.css +8 -0
- package/dist/styles.css +2051 -1111
- package/dist/switch.css +8 -0
- package/dist/table.css +14 -6
- package/dist/tabletoolbar.css +8 -0
- package/dist/tabs.css +12 -4
- package/dist/tasklist.css +8 -0
- package/dist/textarea.css +23 -3
- package/dist/toast.css +10 -2
- package/dist/tokens.css +29 -0
- package/dist/tokens.json +217 -0
- package/dist/tooltip.css +8 -0
- package/dist/trialbanner.css +8 -0
- package/dist/types/components/accordion/accordion.d.ts +10 -8
- package/dist/types/components/avatargroup/avatargroup.d.ts +2 -2
- package/dist/types/components/barchart/barchart.d.ts +4 -2
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +2 -2
- package/dist/types/components/bulkbar/bulkbar.d.ts +4 -2
- package/dist/types/components/button/button.d.ts +8 -0
- package/dist/types/components/button/button.recipe.d.ts +12 -0
- package/dist/types/components/callout/callout.d.ts +2 -2
- package/dist/types/components/columncalc/columncalc.d.ts +49 -0
- package/dist/types/components/columncalc/columncalc.recipe.d.ts +3 -0
- package/dist/types/components/columncalc/index.d.ts +1 -0
- package/dist/types/components/datatable/datatable.d.ts +58 -3
- package/dist/types/components/datepicker/datepicker.d.ts +41 -18
- package/dist/types/components/datepicker/datepicker.recipe.d.ts +25 -2
- package/dist/types/components/datepicker/index.d.ts +1 -1
- package/dist/types/components/datepickerfield/datepickerfield.d.ts +35 -0
- package/dist/types/components/datepickerfield/datepickerfield.recipe.d.ts +5 -0
- package/dist/types/components/datepickerfield/index.d.ts +2 -0
- package/dist/types/components/dialog/dialog.d.ts +3 -1
- package/dist/types/components/divider/divider.d.ts +2 -2
- package/dist/types/components/donutchart/donutchart.d.ts +2 -2
- package/dist/types/components/drawer/drawer.d.ts +3 -1
- package/dist/types/components/emptystate/emptystate.d.ts +2 -2
- package/dist/types/components/formfield/formfield.d.ts +7 -4
- package/dist/types/components/input/input.d.ts +8 -2
- package/dist/types/components/linechart/linechart.d.ts +4 -2
- package/dist/types/components/menu/index.d.ts +1 -0
- package/dist/types/components/menu/menu-keyboard.d.ts +33 -0
- package/dist/types/components/menu/menu.d.ts +7 -1
- package/dist/types/components/multiselect/multiselect.d.ts +8 -4
- package/dist/types/components/popover/popover.d.ts +4 -1
- package/dist/types/components/progress/progress.d.ts +2 -2
- package/dist/types/components/radiogroup/radiogroup.d.ts +2 -2
- package/dist/types/components/resizablepanel/index.d.ts +2 -0
- package/dist/types/components/resizablepanel/resizablepanel.d.ts +75 -0
- package/dist/types/components/resizablepanel/resizablepanel.recipe.d.ts +3 -0
- package/dist/types/components/segmented/segmented.d.ts +2 -2
- package/dist/types/components/select/select.d.ts +2 -2
- package/dist/types/components/skeleton/skeleton.d.ts +2 -2
- package/dist/types/components/spinner/spinner.d.ts +2 -2
- package/dist/types/components/stagebar/stagebar.d.ts +2 -2
- package/dist/types/components/statcard/statcard.d.ts +2 -2
- package/dist/types/components/tabletoolbar/tabletoolbar.d.ts +28 -2
- package/dist/types/components/tabs/tabs.d.ts +2 -2
- package/dist/types/components/toast/toast.d.ts +7 -1
- package/dist/types/components/tooltip/tooltip.d.ts +8 -1
- package/dist/types/components/wheelpicker/index.d.ts +2 -0
- package/dist/types/components/wheelpicker/wheelpicker.d.ts +37 -0
- package/dist/types/components/wheelpicker/wheelpicker.recipe.d.ts +26 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/product/appshell/appshell.d.ts +16 -2
- package/dist/types/product/authshell/authshell.d.ts +28 -0
- package/dist/types/product/authshell/authshell.recipe.d.ts +3 -0
- package/dist/types/product/authshell/index.d.ts +2 -0
- package/dist/types/product/board/board.d.ts +2 -2
- package/dist/types/product/command/command.d.ts +25 -1
- package/dist/types/product/entitycard/entitycard.d.ts +2 -2
- package/dist/types/product/flowcanvas/flowcanvas.d.ts +9 -1
- package/dist/types/product/onboarding/onboarding.d.ts +7 -1
- package/dist/types/product/recordpage/recordpage.d.ts +65 -1
- package/dist/types/product/recordpanel/recordpanel.d.ts +8 -2
- package/dist/types/product/recordstable/recordstable.d.ts +90 -1
- package/dist/types/product/recordstable/recordstable.tag.d.ts +10 -0
- package/dist/types/product/richtext/richtext.d.ts +5 -1
- package/dist/types/product/settingssection/settingssection.d.ts +2 -2
- package/dist/types/product/settingsshell/settingsshell.d.ts +6 -2
- package/dist/types/product/sidebar/sidebar.d.ts +8 -0
- package/dist/types/product/tasklist/tasklist.d.ts +5 -1
- package/dist/types/product/trialbanner/trialbanner.d.ts +2 -2
- package/dist/types/product/viewtoggle/viewtoggle.d.ts +11 -5
- package/dist/types/tokens/contract.d.ts +14 -3
- package/dist/types/tokens/elevation.d.ts +44 -0
- package/dist/types/tokens/index.d.ts +1 -0
- package/dist/types/tokens/palette.d.ts +40 -0
- package/dist/types/tokens/scale.d.ts +7 -0
- package/dist/types/tokens/semantic.d.ts +19 -0
- package/dist/viewtoggle.css +9 -1
- package/dist/wheelpicker.css +68 -0
- package/dist/wheelpicker.d.ts +7 -0
- package/package.json +160 -68
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Dimensional scale — the single source of raw px for spacing, radius, and
|
|
3
|
+
// component sizing. Theme-invariant (identical in light/dark), so it is emitted
|
|
4
|
+
// once into :root, unlike the color tokens which flip per theme.
|
|
5
|
+
//
|
|
6
|
+
// Derived by measuring the live Attio app (not taste): its spacing is a
|
|
7
|
+
// 2px-granular / 4px-base scale — the values 1,2,4,6,8,10,12,16 account for
|
|
8
|
+
// nearly every gap/pad/margin in the sidebar. Radii cluster at 6/8/9 + a pill.
|
|
9
|
+
// Recipes MUST reference these through the contract (`c.space[...]`), never a
|
|
10
|
+
// literal px — this file is the only exception.
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.weight = exports.text = exports.font = exports.size = exports.radius = exports.space = void 0;
|
|
13
|
+
// Spacing: gaps, padding, margins. Keys follow the Tailwind step convention
|
|
14
|
+
// (0.5 = half a 4px step = 2px) so the numbers stay legible to consumers.
|
|
15
|
+
exports.space = {
|
|
16
|
+
px: "1px", // hairline — the 1px gap between rows in a dense nav list
|
|
17
|
+
"0.5": "2px",
|
|
18
|
+
"1": "4px",
|
|
19
|
+
"1.5": "6px",
|
|
20
|
+
"2": "8px",
|
|
21
|
+
"2.5": "10px",
|
|
22
|
+
"3": "12px",
|
|
23
|
+
"4": "16px",
|
|
24
|
+
"5": "20px",
|
|
25
|
+
"6": "24px",
|
|
26
|
+
"8": "32px", // overlay / empty-state padding
|
|
27
|
+
};
|
|
28
|
+
// Corner radius. sm/md/lg are the three Attio uses on stacked surfaces
|
|
29
|
+
// (inputs, rows, tiles); full is the pill.
|
|
30
|
+
exports.radius = {
|
|
31
|
+
chip: "7px", // tag / chip corner — the single most used radius in Attio
|
|
32
|
+
sm: "6px", // chips, badges
|
|
33
|
+
md: "8px", // inputs, search box
|
|
34
|
+
lg: "9px", // rows, tiles, list items
|
|
35
|
+
xl: "12px", // overlay items (command rows)
|
|
36
|
+
"2xl": "16px", // overlay panels (command surface)
|
|
37
|
+
full: "999px", // pills
|
|
38
|
+
};
|
|
39
|
+
// Component sizing — recurring measured dimensions that are neither spacing nor
|
|
40
|
+
// radius (row height, header height, the nav icon box).
|
|
41
|
+
exports.size = {
|
|
42
|
+
icon: "16px", // nav / control glyph box
|
|
43
|
+
chip: "22px", // tag / chip height — Attio's most repeated small control
|
|
44
|
+
row: "28px", // nav item · search · control height
|
|
45
|
+
menuRow: "32px", // overlay row: menu item, select option, bulk-bar button
|
|
46
|
+
tableRow: "36px", // data-grid row height
|
|
47
|
+
tableHeader: "40px", // data-grid header row height
|
|
48
|
+
header: "48px", // workspace-switcher header height
|
|
49
|
+
calendarCell: "48px", // calendar day cell / header rhythm (seed x12)
|
|
50
|
+
calendarPill: "42px", // round day highlight inside a calendar cell
|
|
51
|
+
};
|
|
52
|
+
// Typography — Attio's UI runs entirely on Inter. Sizes measured in the sidebar
|
|
53
|
+
// collapse onto 11/12/13/14/16 (lg = 14px is the default body/label size);
|
|
54
|
+
// weights are 400/500/600 with 500 the UI default.
|
|
55
|
+
exports.font = {
|
|
56
|
+
sans: '"Inter", system-ui, -apple-system, "Segoe UI", sans-serif',
|
|
57
|
+
};
|
|
58
|
+
exports.text = {
|
|
59
|
+
xs: "11px",
|
|
60
|
+
sm: "12px",
|
|
61
|
+
md: "13px",
|
|
62
|
+
lg: "14px", // default body / nav-label size
|
|
63
|
+
xl: "16px",
|
|
64
|
+
};
|
|
65
|
+
exports.weight = {
|
|
66
|
+
regular: "400",
|
|
67
|
+
medium: "500", // default UI weight
|
|
68
|
+
semibold: "600",
|
|
69
|
+
bold: "700", // seed-design's font-weight-bold, for the seed-styled calendar
|
|
70
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.semantic = void 0;
|
|
4
|
+
exports.semantic = {
|
|
5
|
+
bgBrandSolid: "brand600",
|
|
6
|
+
bgBrandSolidPressed: "brand700",
|
|
7
|
+
fgOnBrand: "white",
|
|
8
|
+
// text on a solid success/warning/danger fill. Those tone tokens BRIGHTEN in
|
|
9
|
+
// dark (they are tuned for tinted backgrounds and coloured text), so white on
|
|
10
|
+
// them drops to 2.42:1 -- dark ink clears AA on every tone in both themes.
|
|
11
|
+
fgOnTone: "ink",
|
|
12
|
+
bgSurface: "gray00",
|
|
13
|
+
bgRaised: "gray50",
|
|
14
|
+
borderDefault: "line200",
|
|
15
|
+
borderSubtle: "line100",
|
|
16
|
+
ringNeutral: "ringNeutral",
|
|
17
|
+
bgTileActive: "tileActive",
|
|
18
|
+
shadowTileActive: "tileActiveShadow",
|
|
19
|
+
bgOverlayFrost: "overlayFrost",
|
|
20
|
+
shadowOverlay1: "shadowOverlay1",
|
|
21
|
+
shadowOverlay2: "shadowOverlay2",
|
|
22
|
+
shadowOverlay3: "shadowOverlay3",
|
|
23
|
+
bgPopover: "popoverBg",
|
|
24
|
+
ringPopover: "ringPopover",
|
|
25
|
+
shadowPopover1: "shadowPopover1",
|
|
26
|
+
shadowPopover2: "shadowPopover2",
|
|
27
|
+
shadowPopover3: "shadowPopover3",
|
|
28
|
+
fgPrimary: "gray900",
|
|
29
|
+
fgMuted: "gray400",
|
|
30
|
+
bgDanger: "red600",
|
|
31
|
+
/** Fill for a SOLID destructive control that carries white text. */
|
|
32
|
+
bgDangerSolid: "red700",
|
|
33
|
+
/** The 2px ring a text field shows while focused. */
|
|
34
|
+
strokeFieldFocus: "fieldFocus",
|
|
35
|
+
/** Unavailable/disabled content: unselected wheel rows, unpickable dates. */
|
|
36
|
+
fgDisabled: "disabledFg",
|
|
37
|
+
/** Weak neutral fill: the wheel's band, the calendar's today pill and range bridge. */
|
|
38
|
+
bgNeutralWeak: "neutralWeak",
|
|
39
|
+
/** The selected calendar day's fill, and the text on it. */
|
|
40
|
+
bgNeutralInverted: "neutralInverted",
|
|
41
|
+
fgOnNeutralInverted: "onNeutralInverted",
|
|
42
|
+
/** Weekday header row. */
|
|
43
|
+
fgNeutralSubtle: "neutralSubtle",
|
|
44
|
+
/** Date numerals. */
|
|
45
|
+
fgNeutralMuted: "neutralMuted",
|
|
46
|
+
/** Keyboard focus ring, for controls that show one inside themselves. */
|
|
47
|
+
strokeFocusRing: "focusRing",
|
|
48
|
+
bgSuccess: "green600",
|
|
49
|
+
bgWarning: "amber600",
|
|
50
|
+
bgOrange: "orange600",
|
|
51
|
+
bgCyan: "cyan600",
|
|
52
|
+
bgPurple: "purple600",
|
|
53
|
+
bgSidebar: "graySidebar",
|
|
54
|
+
// #fbfbfb — Attio's subtle raised fill; the active tab pill uses the same
|
|
55
|
+
// value as the sidebar, so it shares the palette entry under a neutral name.
|
|
56
|
+
bgSubtle: "graySidebar",
|
|
57
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
.columncalc {
|
|
2
|
+
display: flex; align-items: stretch; width: 100%; height: 100%; font-family: var(--font-sans);
|
|
3
|
+
/* Menu wraps its trigger in a flex div that sizes to content, which would
|
|
4
|
+
shrink the button back to its text. Make the wrapper fill too, so the
|
|
5
|
+
whole cell stays clickable. */
|
|
6
|
+
& .menu { width: 100%; height: 100%; }
|
|
7
|
+
/* Attio's hit target is the WHOLE summary cell -- measured 246x37 with
|
|
8
|
+
padding 0 12px, not a content-sized chip. Clicking anywhere in the cell
|
|
9
|
+
opens the aggregation menu. */
|
|
10
|
+
& .columncalc-trigger { display: flex; align-items: center; gap: var(--space-1); width: 100%; height: 100%; min-height: var(--size-tableRow); margin: 0; padding: 0 var(--space-3); border: none; border-radius: var(--radius-md); background: transparent; color: var(--fg-muted); font-family: inherit; font-size: var(--text-md); font-weight: var(--weight-medium); white-space: nowrap; cursor: pointer; transition: background-color .12s, color .12s; }
|
|
11
|
+
& .columncalc-trigger:hover { background: color-mix(in srgb, var(--fg-primary) 4%, transparent); color: var(--fg-primary); }
|
|
12
|
+
& .columncalc-trigger svg { flex-shrink: 0; opacity: 0.7; }
|
|
13
|
+
& .columncalc-trigger[data-align="right"] { justify-content: flex-end; }
|
|
14
|
+
& .columncalc-placeholder { overflow: hidden; text-overflow: ellipsis; }
|
|
15
|
+
& .columncalc-value { color: var(--fg-primary); font-variant-numeric: tabular-nums; }
|
|
16
|
+
& .columncalc-op { color: var(--fg-muted); }
|
|
17
|
+
& .columncalc-section { padding: var(--space-1-5) var(--space-2) var(--space-1); font-size: var(--text-sm); font-weight: var(--weight-medium); color: var(--fg-muted); }
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@media (prefers-reduced-motion: reduce) {
|
|
21
|
+
.columncalc, .columncalc * {
|
|
22
|
+
animation-duration: 0.01ms !important;
|
|
23
|
+
animation-iteration-count: 1 !important;
|
|
24
|
+
transition-duration: 0.01ms !important;
|
|
25
|
+
}
|
|
26
|
+
}
|
package/dist/command.css
CHANGED
|
@@ -1,3 +1,36 @@
|
|
|
1
1
|
.command {
|
|
2
|
-
display: contents; font-family: var(--font-sans)
|
|
2
|
+
display: contents; font-family: var(--font-sans)
|
|
3
|
+
; & .command-content, & .command-card { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
|
|
4
|
+
& .command-backdrop { position: fixed; inset: 0; z-index: 50; background: transparent; }
|
|
5
|
+
& .command-positioner { position: fixed; inset: 0; z-index: 51; display: flex; align-items: flex-start; justify-content: center; padding: 15vh var(--space-4) var(--space-4); }
|
|
6
|
+
& .command-content { position: relative; display: flex; flex-direction: column; box-sizing: border-box; width: 90vw; max-width: 748px; max-height: 70vh; padding: var(--space-1); border-radius: var(--radius-2xl); background: color-mix(in srgb, var(--bg-overlay-frost) 60%, transparent); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); box-shadow: 0 8px 28px -6px var(--shadow-overlay1), 0 18px 88px -4px var(--shadow-overlay2), 0 0 1px var(--shadow-overlay3); opacity: 1; transform: scale(1); transition: opacity 0.2s ease, transform 0.2s ease; @starting-style { opacity: 0; transform: scale(0.97); } }
|
|
7
|
+
& .command-card { display: flex; flex-direction: column; flex: 1; min-height: 0; box-sizing: border-box; border-radius: var(--radius-xl); background: var(--bg-surface); box-shadow: 0 0 0 1px color-mix(in srgb, var(--fg-primary) 8%, transparent); overflow: hidden; }
|
|
8
|
+
& .command-control { display: flex; align-items: center; gap: var(--space-2-5); height: 52px; flex-shrink: 0; padding: 0 var(--space-4); border-bottom: 1px solid var(--border-subtle); color: var(--fg-muted); }
|
|
9
|
+
& .command-control svg { flex-shrink: 0; }
|
|
10
|
+
& .command-input { flex: 1; min-width: 0; border: none; outline: none; background: transparent; font-family: var(--font-sans); font-size: var(--text-xl); color: var(--fg-primary); }
|
|
11
|
+
& .command-input::placeholder { color: var(--fg-muted); }
|
|
12
|
+
& .command-list { flex: 1; min-height: 0; overflow-y: auto; padding: var(--space-1) var(--space-2-5); display: flex; flex-direction: column; gap: var(--space-px); }
|
|
13
|
+
& .command-empty { padding: var(--space-8) var(--space-3); text-align: center; font-size: var(--text-md); color: var(--fg-muted); }
|
|
14
|
+
& .command-item { box-sizing: border-box; display: flex; align-items: center; gap: var(--space-2); height: 36px; padding-inline: var(--space-2-5); border-radius: var(--radius-xl); font-size: var(--text-lg); color: var(--fg-primary); cursor: pointer; }
|
|
15
|
+
& .command-item svg { flex-shrink: 0; color: var(--fg-muted); }
|
|
16
|
+
& .command-item[data-highlighted] { background: color-mix(in srgb, var(--fg-primary) 4%, transparent); }
|
|
17
|
+
& .command-item-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
18
|
+
& .command-item-shortcut { margin-inline-start: auto; flex-shrink: 0; display: flex; align-items: center; gap: var(--space-0-5); }
|
|
19
|
+
& .command-group-label { padding: var(--space-2) var(--space-2-5) var(--space-1); font-size: var(--text-sm); font-weight: var(--weight-medium); color: color-mix(in srgb, var(--fg-primary) 63%, transparent); }
|
|
20
|
+
& .command-list > .command-group-label:first-child { padding-top: var(--space-1); }
|
|
21
|
+
& .command-footer { display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; height: 44px; padding: 0 var(--space-2-5); border-top: 1px solid var(--border-subtle); }
|
|
22
|
+
& .command-footer-nav { display: flex; align-items: center; gap: var(--space-1-5); font-size: var(--text-sm); color: var(--fg-muted); }
|
|
23
|
+
& .command-footer-action { display: flex; align-items: center; gap: var(--space-2); height: 28px; max-width: 60%; padding: 0 var(--space-1) 0 var(--space-2-5); border: none; border-radius: var(--radius-md); background: var(--bg-brand-solid); color: var(--fg-on-brand); font-family: inherit; font-size: var(--text-md); font-weight: var(--weight-medium); cursor: pointer; }
|
|
24
|
+
& .command-footer-action:disabled { opacity: 0.5; cursor: default; }
|
|
25
|
+
& .command-footer-action-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
26
|
+
& .command-footer-key { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 var(--space-1); border-radius: var(--radius-sm); background: rgba(255,255,255,0.22); font-size: var(--text-xs); }
|
|
27
|
+
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@media (prefers-reduced-motion: reduce) {
|
|
31
|
+
.command, .command * {
|
|
32
|
+
animation-duration: 0.01ms !important;
|
|
33
|
+
animation-iteration-count: 1 !important;
|
|
34
|
+
transition-duration: 0.01ms !important;
|
|
35
|
+
}
|
|
3
36
|
}
|
package/dist/contextmenu.css
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
.contextmenu {
|
|
2
2
|
display: contents; font-family: var(--font-sans);
|
|
3
3
|
& .contextmenu-content { position: fixed; z-index: 60; min-width: 200px; box-sizing: border-box; padding: var(--space-1); border-radius: var(--radius-xl); background: var(--bg-popover); box-shadow: inset 0 0 0 1px var(--ring-popover), 0 0 0 1px var(--shadow-popover1), 0 4px 8px -4px var(--shadow-popover2), 0 4px 12px -2px var(--shadow-popover3); opacity: 1; transform: none; transition: opacity .08s ease, transform .08s ease; transform-origin: top left; @starting-style { opacity: 0; transform: scale(0.97) translateY(-1px); } }
|
|
4
|
-
& .contextmenu-item { display: flex; align-items: center; gap: var(--space-2); width: 100%; height:
|
|
4
|
+
& .contextmenu-item { display: flex; align-items: center; gap: var(--space-2); width: 100%; height: var(--size-menuRow); box-sizing: border-box; padding: 0 var(--space-2); margin: 0; border: none; border-radius: var(--radius-md); background: none; color: var(--fg-primary); font-family: inherit; font-size: var(--text-lg); text-align: start; white-space: nowrap; cursor: pointer; }
|
|
5
5
|
& .contextmenu-item svg { flex-shrink: 0; color: var(--fg-muted); }
|
|
6
6
|
& .contextmenu-item:hover { background: color-mix(in srgb, var(--fg-primary) 6%, transparent); }
|
|
7
7
|
& .contextmenu-item--danger { color: var(--bg-danger); }
|
|
8
8
|
& .contextmenu-item--danger svg { color: var(--bg-danger); }
|
|
9
9
|
& .contextmenu-item--danger:hover { background: color-mix(in srgb, var(--bg-danger) 10%, transparent); }
|
|
10
|
-
& .contextmenu-shortcut { margin-
|
|
10
|
+
& .contextmenu-shortcut { margin-inline-start: auto; padding-inline-start: var(--space-3); color: var(--fg-muted); font-size: var(--text-sm); }
|
|
11
11
|
& .contextmenu-sep { height: 1px; margin: var(--space-1) 0; border: none; background: var(--border-subtle); }
|
|
12
12
|
}
|
|
13
|
+
|
|
14
|
+
@media (prefers-reduced-motion: reduce) {
|
|
15
|
+
.contextmenu, .contextmenu * {
|
|
16
|
+
animation-duration: 0.01ms !important;
|
|
17
|
+
animation-iteration-count: 1 !important;
|
|
18
|
+
transition-duration: 0.01ms !important;
|
|
19
|
+
}
|
|
20
|
+
}
|
package/dist/datatable.css
CHANGED
|
@@ -2,26 +2,51 @@
|
|
|
2
2
|
display: flex; flex-direction: column; gap: var(--space-2-5); font-family: var(--font-sans);
|
|
3
3
|
& .datatable-toolbar { display: flex; align-items: center; gap: var(--space-2); }
|
|
4
4
|
& .datatable-search { position: relative; flex: 1; max-width: 280px; display: inline-flex; align-items: center; }
|
|
5
|
-
& .datatable-search svg { position: absolute;
|
|
6
|
-
& .datatable-search input { width: 100%; height: 32px; padding: 0 var(--space-2) 0 var(--space-6); border: none; border-radius: var(--radius-md); background: var(--bg-surface); box-shadow: 0 0 2px rgba(28,40,64,0.18), 0 1px 3px rgba(0,0,0,0.04); font-family: inherit; font-size: var(--text-lg); color: var(--fg-primary); outline: none; transition: box-shadow .15s; }
|
|
5
|
+
& .datatable-search svg { position: absolute; inset-inline-start: var(--space-2); color: var(--fg-muted); pointer-events: none; }
|
|
6
|
+
& .datatable-search input { width: 100%; height: 32px; padding: 0 var(--space-2) 0 var(--space-6); border: none; border-radius: var(--radius-md); background: var(--bg-surface); box-shadow: inset 0 0 0 1px var(--ring-neutral), 0 0 2px rgba(28,40,64,0.18), 0 1px 3px rgba(0,0,0,0.04); font-family: inherit; font-size: var(--text-lg); color: var(--fg-primary); outline: none; transition: box-shadow .15s; }
|
|
7
7
|
& .datatable-search input::placeholder { color: var(--fg-muted); }
|
|
8
8
|
& .datatable-search input:focus { box-shadow: inset 0 0 0 1px var(--bg-brand-solid); }
|
|
9
|
-
& .datatable-count { margin-
|
|
10
|
-
|
|
9
|
+
& .datatable-count { margin-inline-start: auto; font-size: var(--text-md); color: var(--fg-muted); }
|
|
10
|
+
/* Attio's header cell has no padding of its own -- the button owns the
|
|
11
|
+
full cell so the whole header is clickable (its own inset is 12px).
|
|
12
|
+
Mirrors the summary-row fix. */
|
|
13
|
+
& th { padding: 0; }
|
|
14
|
+
/* Same wrapper trap as AUTHORING.md Lesson 40 (ColumnCalc's summary trigger):
|
|
15
|
+
Menu wraps its trigger in a flex div that sizes to its content, so a
|
|
16
|
+
long header grew past the column instead of filling it -- with nothing
|
|
17
|
+
left to squeeze, the label's own ellipsis CSS (below) had no properly
|
|
18
|
+
-sized box to truncate against, and the th's own overflow hard-clipped
|
|
19
|
+
it with no "...". Fill the wrapper, scoped to th so Menu's default
|
|
20
|
+
(correct everywhere else) is untouched. */
|
|
21
|
+
& th .menu { width: 100%; height: 100%; }
|
|
22
|
+
& .datatable-th-inner { display: inline-flex; align-items: center; gap: var(--space-1-5); width: 100%; min-width: 0; height: 100%; }
|
|
11
23
|
& .datatable-th-inner > svg { flex-shrink: 0; color: var(--fg-muted); }
|
|
12
|
-
|
|
13
|
-
|
|
24
|
+
/* Attio's summary cell has NO padding of its own -- the calculation trigger
|
|
25
|
+
owns the whole 246x37 area so a click anywhere in the cell opens the
|
|
26
|
+
menu. Zero the cell's inset and let ColumnCalc supply the 12px. */
|
|
27
|
+
& tfoot td { padding: 0; }
|
|
28
|
+
/* Group heading row -- Attio groups a view under a subtle label with the
|
|
29
|
+
bucket's count beside it. */
|
|
30
|
+
& .datatable-viewsettings { display: inline-flex; align-items: center; gap: var(--space-1-5); height: var(--size-row); margin: 0; padding: 0 var(--space-2); border: none; border-radius: var(--radius-md); background: transparent; color: var(--fg-muted); font-family: inherit; font-size: var(--text-md); font-weight: var(--weight-medium); white-space: nowrap; cursor: pointer; transition: background-color .12s, color .12s; }
|
|
31
|
+
& .datatable-viewsettings:hover { background: color-mix(in srgb, var(--fg-primary) 4%, transparent); color: var(--fg-primary); }
|
|
32
|
+
& .datatable-group-label { padding: var(--space-1-5) var(--space-2) var(--space-1); font-size: var(--text-sm); font-weight: var(--weight-medium); color: var(--fg-muted); }
|
|
33
|
+
& .datatable-group { height: var(--size-menuRow); padding: 0 var(--space-3); background: var(--bg-subtle); border-bottom: 1px solid var(--border-subtle); font-size: var(--text-md); font-weight: var(--weight-medium); color: color-mix(in srgb, var(--fg-primary) 63%, transparent); }
|
|
34
|
+
& .datatable-group-count { margin-inline-start: var(--space-1-5); color: var(--fg-muted); font-variant-numeric: tabular-nums; }
|
|
35
|
+
& .datatable-th-rename { width: 100%; min-width: 0; height: var(--size-row); margin: 0; padding: 0 var(--space-1); border: none; border-radius: var(--radius-md); background: var(--bg-surface); box-shadow: inset 0 0 0 1px var(--bg-brand-solid); font-family: inherit; font-size: var(--text-lg); font-weight: var(--weight-medium); color: var(--fg-primary); outline: none; }
|
|
36
|
+
& .datatable-th-rename:focus { box-shadow: inset 0 0 0 1px var(--bg-brand-solid); }
|
|
37
|
+
& .datatable-th-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
|
|
38
|
+
& .datatable-sort { display: flex; align-items: center; gap: var(--space-1-5); width: 100%; min-width: 0; height: 100%; margin: 0; padding: 0 var(--space-2); border: none; background: none; font: inherit; letter-spacing: inherit; color: inherit; text-align: start; cursor: pointer; }
|
|
14
39
|
& th[data-align="right"] .datatable-sort { justify-content: flex-end; }
|
|
15
|
-
& .datatable-chevron { margin-
|
|
16
|
-
& th[data-align="right"] .datatable-chevron { margin-
|
|
40
|
+
& .datatable-chevron { margin-inline-start: auto; flex-shrink: 0; color: var(--fg-muted); opacity: 0; transition: opacity .12s; }
|
|
41
|
+
& th[data-align="right"] .datatable-chevron { margin-inline-start: 0; }
|
|
17
42
|
& .datatable-sort:hover .datatable-chevron { opacity: 0.6; }
|
|
18
43
|
& .datatable-sort[data-sorted] .datatable-chevron { opacity: 1; color: var(--fg-primary); }
|
|
19
44
|
/* sticky first column(s) + horizontal scroll shadow — RecordsTable's feel */
|
|
20
45
|
& th[data-sticky], & td[data-sticky] { position: sticky; z-index: 1; background: var(--bg-surface); }
|
|
21
46
|
& th[data-sticky] { z-index: 3; }
|
|
22
|
-
& tbody tr[data-selected] td[data-sticky] { background: color-mix(in srgb, var(--bg-brand-solid)
|
|
23
|
-
& tbody tr:hover td[data-sticky] { background: color-mix(in srgb, var(--fg-primary)
|
|
24
|
-
& .table-scroll[data-scrolled-x] [data-sticky-edge] { clip-path: inset(0 -
|
|
47
|
+
& tbody tr[data-selected] td[data-sticky] { background: color-mix(in srgb, var(--bg-brand-solid) 10%, var(--bg-surface)); }
|
|
48
|
+
& tbody tr:hover td[data-sticky] { background: color-mix(in srgb, var(--fg-primary) 4%, var(--bg-surface)); }
|
|
49
|
+
& .table-scroll[data-scrolled-x] [data-sticky-edge] { clip-path: inset(0 -38px 0 0); box-shadow: 6px 0 16px 4px rgba(0,0,0,0.12); }
|
|
25
50
|
/* add-row + summary footer */
|
|
26
51
|
& .datatable-addcell { padding: 0; border-top: none; }
|
|
27
52
|
& .datatable-addrow { display: flex; align-items: center; gap: var(--space-2); width: 100%; height: var(--size-tableRow); padding: 0 var(--space-2); border: none; border-top: 1px solid var(--border-subtle); background: var(--bg-surface); color: var(--fg-muted); font-family: inherit; font-size: var(--text-lg); cursor: pointer; transition: background-color .12s; }
|
|
@@ -29,10 +54,11 @@
|
|
|
29
54
|
& .datatable-addrow svg { flex-shrink: 0; }
|
|
30
55
|
& .datatable-check { display: flex; align-items: center; justify-content: center; }
|
|
31
56
|
& .datatable-col-check { width: 40px; padding: 0; text-align: center; }
|
|
32
|
-
& tbody tr[data-selected] td { background: color-mix(in srgb, var(--bg-brand-solid)
|
|
33
|
-
& tbody tr[data-selected]:hover td { background: color-mix(in srgb, var(--bg-brand-solid) 10%, var(--bg-surface)); }
|
|
57
|
+
& tbody tr[data-selected] td { background: color-mix(in srgb, var(--bg-brand-solid) 10%, var(--bg-surface)); }
|
|
58
|
+
& tbody tr[data-selected]:hover td { background: color-mix(in srgb, var(--fg-primary) 4%, color-mix(in srgb, var(--bg-brand-solid) 10%, var(--bg-surface))); }
|
|
34
59
|
& .datatable-editable:hover { background: color-mix(in srgb, var(--fg-primary) 4%, var(--bg-surface)); cursor: text; }
|
|
35
60
|
& .datatable-edit { width: 100%; height: 28px; margin: 0; padding: 0 var(--space-1-5); border: none; border-radius: var(--radius-sm); background: var(--bg-surface); box-shadow: inset 0 0 0 1px var(--bg-brand-solid); font-family: inherit; font-size: var(--text-lg); color: var(--fg-primary); outline: none; vertical-align: middle; }
|
|
61
|
+
& .datatable-edit:focus { box-shadow: inset 0 0 0 1px var(--bg-brand-solid); }
|
|
36
62
|
& .datatable-empty { padding: var(--space-8) var(--space-3); text-align: center; color: var(--fg-muted); font-size: var(--text-lg); }
|
|
37
63
|
/* fixed layout so column widths (and resize) are exact — like RecordsTable */
|
|
38
64
|
& table { table-layout: fixed; }
|
|
@@ -47,7 +73,7 @@
|
|
|
47
73
|
& .datatable-avatar[data-tone="success"] { background: var(--bg-success); } & .datatable-avatar[data-tone="warning"] { background: var(--bg-warning); } & .datatable-avatar[data-tone="danger"] { background: var(--bg-danger); } & .datatable-avatar[data-tone="purple"] { background: var(--bg-purple); } & .datatable-avatar[data-tone="cyan"] { background: var(--bg-cyan); } & .datatable-avatar[data-tone="orange"] { background: var(--bg-orange); }
|
|
48
74
|
& .datatable-avatar img { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; }
|
|
49
75
|
& .datatable-tags { display: flex; align-items: center; gap: var(--space-1); overflow: hidden; }
|
|
50
|
-
& .datatable-tag { display: inline-flex; align-items: center; height:
|
|
76
|
+
& .datatable-tag { display: inline-flex; align-items: center; height: var(--size-chip); padding: 0 var(--space-1); border-radius: var(--radius-chip); font-size: var(--text-lg); line-height: 20px; font-weight: var(--weight-medium); white-space: nowrap; background: color-mix(in srgb, var(--fg-primary) 6%, transparent); color: color-mix(in srgb, var(--fg-primary) 82%, transparent); }
|
|
51
77
|
& .datatable-tag[data-tone="brand"] { background: color-mix(in srgb, var(--bg-brand-solid) 14%, transparent); color: color-mix(in srgb, var(--bg-brand-solid) 82%, var(--fg-primary)); }
|
|
52
78
|
& .datatable-tag[data-tone="success"] { background: color-mix(in srgb, var(--bg-success) 16%, transparent); color: color-mix(in srgb, var(--bg-success) 78%, var(--fg-primary)); }
|
|
53
79
|
& .datatable-tag[data-tone="warning"] { background: color-mix(in srgb, var(--bg-warning) 18%, transparent); color: color-mix(in srgb, var(--bg-warning) 82%, var(--fg-primary)); }
|
|
@@ -57,4 +83,24 @@
|
|
|
57
83
|
& .datatable-tag[data-tone="orange"] { background: color-mix(in srgb, var(--bg-orange) 16%, transparent); color: color-mix(in srgb, var(--bg-orange) 82%, var(--fg-primary)); }
|
|
58
84
|
& .datatable-num { font-variant-numeric: tabular-nums; }
|
|
59
85
|
& .datatable-muted { color: var(--fg-muted); }
|
|
86
|
+
/* row drag-to-reorder -- Attio's Settings > Objects > Attributes measures
|
|
87
|
+
a leading 20px grip column, a 16px grip icon, and the row's own
|
|
88
|
+
hairline doubling as the drop indicator (it tints toward the brand
|
|
89
|
+
colour as the active drop target). The affordance + geometry are
|
|
90
|
+
measured; the drag MECHANISM is crisp's existing house idiom -- HTML5
|
|
91
|
+
draggable + dataTransfer, the same one column reorder already uses
|
|
92
|
+
(RecordsTable's reorderColumn) -- not Attio's own proprietary
|
|
93
|
+
pointer-events implementation. */
|
|
94
|
+
& .datatable-col-grip { width: 20px; padding: 0; text-align: center; }
|
|
95
|
+
& .datatable-grip { display: inline-flex; align-items: center; justify-content: center; width: 100%; height: 100%; margin: 0; border: none; border-radius: 0; background: none; font-family: inherit; color: var(--fg-muted); cursor: grab; }
|
|
96
|
+
& .datatable-grip:active { cursor: grabbing; }
|
|
97
|
+
& tbody tr[data-drop-target] td, & tbody tr[data-drop-target] th { box-shadow: inset 0 2px 0 0 var(--bg-brand-solid); transition: box-shadow .12s; }
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
@media (prefers-reduced-motion: reduce) {
|
|
101
|
+
.datatable, .datatable * {
|
|
102
|
+
animation-duration: 0.01ms !important;
|
|
103
|
+
animation-iteration-count: 1 !important;
|
|
104
|
+
transition-duration: 0.01ms !important;
|
|
105
|
+
}
|
|
60
106
|
}
|
package/dist/datepicker.css
CHANGED
|
@@ -1,21 +1,167 @@
|
|
|
1
1
|
.datepicker {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
& .datepicker-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
& .datepicker-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
& .datepicker-
|
|
2
|
+
|
|
3
|
+
position: relative; box-sizing: border-box; width: 100%; min-width: 0;
|
|
4
|
+
font-family: var(--font-sans); color: var(--fg-neutral-muted); background: var(--bg-surface);
|
|
5
|
+
|
|
6
|
+
& .datepicker-header {
|
|
7
|
+
display: flex; align-items: center; justify-content: space-between;
|
|
8
|
+
height: var(--size-calendarCell);
|
|
9
|
+
}
|
|
10
|
+
& .datepicker-header-label {
|
|
11
|
+
display: inline-flex; align-items: center; gap: var(--space-1);
|
|
12
|
+
height: 100%; min-width: 0; border: 0; padding: 0 var(--space-1);
|
|
13
|
+
border-radius: var(--radius-md); background: transparent; cursor: pointer;
|
|
14
|
+
color: var(--fg-primary); font-family: inherit;
|
|
15
|
+
font-size: var(--text-xl); line-height: 22px; font-weight: var(--weight-bold);
|
|
16
|
+
white-space: nowrap;
|
|
17
|
+
outline: 2px solid transparent; outline-offset: -2px;
|
|
18
|
+
transition: outline-color .2s ease;
|
|
19
|
+
}
|
|
20
|
+
& .datepicker-header-label:focus-visible { outline-color: var(--stroke-focus-ring); }
|
|
21
|
+
& .datepicker-header-chevron { display: inline-flex; transition: transform .2s ease; }
|
|
22
|
+
& .datepicker-header-chevron[data-open] { transform: rotate(180deg); }
|
|
23
|
+
|
|
24
|
+
& .datepicker-nav { display: flex; align-items: center; }
|
|
25
|
+
& .datepicker-nav-button {
|
|
26
|
+
display: inline-flex; align-items: center; justify-content: center;
|
|
27
|
+
width: var(--size-menuRow); height: var(--size-menuRow); padding: 0;
|
|
28
|
+
border: none; border-radius: var(--radius-md); background: none;
|
|
29
|
+
color: var(--fg-muted); font-family: inherit; cursor: pointer;
|
|
30
|
+
outline: 2px solid transparent; outline-offset: -2px;
|
|
31
|
+
transition: background-color .12s, outline-color .2s ease;
|
|
32
|
+
}
|
|
33
|
+
& .datepicker-nav-button:hover { background: var(--bg-raised); }
|
|
34
|
+
& .datepicker-nav-button:focus-visible { outline-color: var(--stroke-focus-ring); }
|
|
35
|
+
& .datepicker-nav-button:disabled { opacity: .4; cursor: not-allowed; }
|
|
36
|
+
|
|
37
|
+
& .datepicker-weekday-row {
|
|
38
|
+
display: grid; grid-template-columns: repeat(7, minmax(0, 1fr));
|
|
39
|
+
position: relative; z-index: 2; background: var(--bg-surface);
|
|
40
|
+
}
|
|
41
|
+
& .datepicker-weekday {
|
|
42
|
+
display: flex; align-items: center; justify-content: center;
|
|
43
|
+
height: var(--size-calendarCell); color: var(--fg-neutral-subtle);
|
|
44
|
+
font-size: var(--text-lg); line-height: 19px; font-weight: var(--weight-medium);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
& .datepicker-months { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; min-width: 0; }
|
|
48
|
+
& .datepicker-months[data-wheel-open] { visibility: hidden; }
|
|
49
|
+
& .datepicker-month { min-width: 0; }
|
|
50
|
+
& .datepicker-month-label {
|
|
51
|
+
display: flex; align-items: center; height: var(--size-calendarCell);
|
|
52
|
+
color: var(--fg-primary); font-size: var(--text-xl); line-height: 22px;
|
|
53
|
+
font-weight: var(--weight-bold);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
& .datepicker-grid { display: grid; min-width: 0; }
|
|
57
|
+
& .datepicker-week-row { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
|
|
58
|
+
|
|
59
|
+
& .datepicker-cell {
|
|
60
|
+
position: relative; min-width: 0; min-height: var(--size-calendarCell);
|
|
61
|
+
isolation: isolate;
|
|
62
|
+
}
|
|
63
|
+
& .datepicker-empty-cell { min-height: var(--size-calendarCell); }
|
|
64
|
+
|
|
65
|
+
/* the bridge joining days inside a completed range */
|
|
66
|
+
& .datepicker-cell[data-range-complete][data-in-range]::before {
|
|
67
|
+
content: ""; position: absolute; z-index: -1; inset-inline: 0;
|
|
68
|
+
top: calc((var(--size-calendarCell) - var(--size-calendarPill)) / 2); height: var(--size-calendarPill); background: var(--bg-neutral-weak);
|
|
69
|
+
}
|
|
70
|
+
& .datepicker-cell[data-range-complete][data-range-start]:not([data-range-end])::before {
|
|
71
|
+
inset-inline-start: 50%;
|
|
72
|
+
}
|
|
73
|
+
& .datepicker-cell[data-range-complete][data-range-end]:not([data-range-start])::before {
|
|
74
|
+
inset-inline-end: 50%;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
& .datepicker-date {
|
|
78
|
+
position: relative; display: flex; width: 100%; height: 100%;
|
|
79
|
+
min-height: var(--size-calendarCell); min-width: 0;
|
|
80
|
+
align-items: flex-start; justify-content: center;
|
|
81
|
+
border: 0; padding: 0; background: transparent; cursor: pointer;
|
|
82
|
+
color: var(--fg-neutral-muted); font: inherit; outline: none;
|
|
83
|
+
isolation: isolate;
|
|
84
|
+
}
|
|
85
|
+
/* the round day highlight, behind the numeral */
|
|
86
|
+
& .datepicker-date::before {
|
|
87
|
+
content: ""; position: absolute; z-index: -1; top: calc((var(--size-calendarCell) - var(--size-calendarPill)) / 2); left: 50%;
|
|
88
|
+
width: var(--size-calendarPill); height: var(--size-calendarPill);
|
|
89
|
+
border-radius: var(--radius-full);
|
|
90
|
+
background: transparent; transform: translateX(-50%);
|
|
91
|
+
}
|
|
92
|
+
& .datepicker-date[data-today]::before { background: var(--bg-neutral-weak); }
|
|
93
|
+
& .datepicker-date[data-selected]::before { background: var(--bg-neutral-inverted); }
|
|
94
|
+
& .datepicker-date[data-selected] { color: var(--fg-on-neutral-inverted); }
|
|
95
|
+
& .datepicker-date[data-in-range] { color: var(--fg-neutral-muted); }
|
|
96
|
+
& .datepicker-date[data-in-range]::before { background: transparent; }
|
|
97
|
+
& .datepicker-date[data-unavailable] { color: var(--fg-disabled); }
|
|
98
|
+
& .datepicker-date:disabled { color: var(--fg-disabled); cursor: not-allowed; }
|
|
99
|
+
& .datepicker-date:focus-visible::after {
|
|
100
|
+
content: ""; position: absolute; top: calc((var(--size-calendarCell) - var(--size-calendarPill)) / 2); left: 50%;
|
|
101
|
+
width: var(--size-calendarPill); height: var(--size-calendarPill);
|
|
102
|
+
transform: translateX(-50%); border-radius: var(--radius-full);
|
|
103
|
+
outline: 2px solid var(--stroke-focus-ring); outline-offset: -2px;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
& .datepicker-date-content {
|
|
107
|
+
position: relative; z-index: 1; display: flex; width: 100%;
|
|
108
|
+
min-height: var(--size-calendarCell); min-width: 0; box-sizing: border-box;
|
|
109
|
+
flex-direction: column; align-items: center; gap: 3px;
|
|
110
|
+
padding-top: calc((var(--size-calendarCell) - var(--size-calendarPill)) / 2); color: inherit;
|
|
111
|
+
font-size: var(--text-xl); line-height: 22px; font-weight: var(--weight-medium);
|
|
112
|
+
font-variant-numeric: tabular-nums;
|
|
113
|
+
}
|
|
114
|
+
/* The numeral is its own 42px flex box so it centres on the 42px pill.
|
|
115
|
+
Without this the content column top-aligns the glyph and the pill reads
|
|
116
|
+
as offset — the cell is 48px, the pill 42px inset 3px, and only a
|
|
117
|
+
42px-tall numeral box shares the pill's centre line. */
|
|
118
|
+
& .datepicker-date-content > [data-date-picker-day] {
|
|
119
|
+
display: flex; min-height: var(--size-calendarPill); flex-shrink: 0;
|
|
120
|
+
align-items: center; justify-content: center;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/* the year/month wheel, laid over the grid it replaces */
|
|
124
|
+
& .datepicker-wheel-container {
|
|
125
|
+
position: absolute; z-index: 1; inset-inline: 0;
|
|
126
|
+
top: var(--size-calendarCell); bottom: 0;
|
|
127
|
+
display: flex; align-items: center; overflow: hidden;
|
|
128
|
+
background: var(--bg-surface);
|
|
129
|
+
}
|
|
130
|
+
& .datepicker-wheel { width: 100%; }
|
|
131
|
+
|
|
132
|
+
& .datepicker-continuous-scroll {
|
|
133
|
+
height: 100%; min-height: 0; overflow-y: auto;
|
|
134
|
+
overscroll-behavior: contain; scrollbar-width: none;
|
|
135
|
+
}
|
|
136
|
+
& .datepicker-continuous-scroll::-webkit-scrollbar { display: none; }
|
|
137
|
+
& .datepicker-continuous-content { display: flex; flex-direction: column; }
|
|
138
|
+
|
|
139
|
+
/* announced, never drawn */
|
|
140
|
+
& .datepicker-live-region {
|
|
141
|
+
position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
|
|
142
|
+
overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
}
|
|
146
|
+
.datepicker--visibleRange_month {
|
|
147
|
+
|
|
148
|
+
}
|
|
149
|
+
.datepicker--visibleRange_twoMonths {
|
|
150
|
+
& .datepicker-months { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-6); }
|
|
151
|
+
& .datepicker-two-month-header { display: flex; align-items: center; justify-content: space-between; height: var(--size-calendarCell); }
|
|
152
|
+
& .datepicker-two-month-label { color: var(--fg-primary); font-size: var(--text-xl); line-height: 22px; font-weight: var(--weight-bold); }
|
|
153
|
+
}
|
|
154
|
+
.datepicker--visibleRange_week {
|
|
155
|
+
|
|
156
|
+
}
|
|
157
|
+
.datepicker--visibleRange_continuous {
|
|
158
|
+
& .datepicker-weekday-row { position: sticky; top: 0; }
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
@media (prefers-reduced-motion: reduce) {
|
|
162
|
+
.datepicker, .datepicker * {
|
|
163
|
+
animation-duration: 0.01ms !important;
|
|
164
|
+
animation-iteration-count: 1 !important;
|
|
165
|
+
transition-duration: 0.01ms !important;
|
|
166
|
+
}
|
|
21
167
|
}
|
package/dist/datepicker.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { RecipeFn } from "../core/types";
|
|
2
2
|
|
|
3
3
|
export interface DatepickerVariants {
|
|
4
|
-
|
|
4
|
+
visibleRange?: "month" | "twoMonths" | "week" | "continuous";
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
export declare const datepickerRecipe: RecipeFn<{
|
|
7
|
+
export declare const datepickerRecipe: RecipeFn<{ visibleRange: { month: string; twoMonths: string; week: string; continuous: string } }>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
.datepickerfield {
|
|
2
|
+
|
|
3
|
+
display: inline-flex; font-family: var(--font-sans);
|
|
4
|
+
|
|
5
|
+
& .datepickerfield-trigger {
|
|
6
|
+
display: inline-flex; align-items: center; gap: var(--space-2);
|
|
7
|
+
box-sizing: border-box; height: 32px; padding: 0 var(--space-2-5); margin: 0;
|
|
8
|
+
border: none; border-radius: var(--radius-md); background: transparent;
|
|
9
|
+
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--fg-primary) 7%, transparent);
|
|
10
|
+
color: var(--fg-primary); font-family: inherit; font-size: var(--text-lg);
|
|
11
|
+
white-space: nowrap; cursor: pointer;
|
|
12
|
+
}
|
|
13
|
+
& .datepickerfield-trigger[data-ghost] { background: transparent; box-shadow: none; }
|
|
14
|
+
& .datepickerfield-trigger[data-ghost]:hover { background: color-mix(in srgb, var(--fg-primary) 4%, transparent); }
|
|
15
|
+
& .datepickerfield-trigger[data-placeholder] { color: var(--fg-muted); }
|
|
16
|
+
& .datepickerfield-trigger svg { flex-shrink: 0; color: var(--fg-muted); }
|
|
17
|
+
|
|
18
|
+
& .datepickerfield-panel { padding: var(--space-2); width: 300px; }
|
|
19
|
+
& .datepickerfield-presets { display: flex; flex-wrap: wrap; gap: var(--space-1); margin-top: var(--space-2); }
|
|
20
|
+
& .datepickerfield-preset {
|
|
21
|
+
height: var(--size-chip); padding: 0 var(--space-2); border: none;
|
|
22
|
+
border-radius: var(--radius-chip); background: var(--bg-raised); color: var(--fg-primary);
|
|
23
|
+
font-family: inherit; font-size: var(--text-sm); cursor: pointer;
|
|
24
|
+
}
|
|
25
|
+
& .datepickerfield-preset:hover { background: color-mix(in srgb, var(--fg-primary) 8%, transparent); }
|
|
26
|
+
|
|
27
|
+
}
|
package/dist/dialog.css
CHANGED
|
@@ -7,13 +7,21 @@
|
|
|
7
7
|
& .dialog-header { display: flex; align-items: center; gap: var(--space-2); flex-shrink: 0; height: 52px; padding: 0 var(--space-2) 0 var(--space-4); border-bottom: 1px solid var(--border-subtle); }
|
|
8
8
|
& .dialog-header svg { flex-shrink: 0; color: var(--fg-muted); }
|
|
9
9
|
& .dialog-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--text-lg); font-weight: var(--weight-medium); color: var(--fg-primary); }
|
|
10
|
-
& .dialog-close { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 28px; height: 28px; margin: 0; padding: 0; border: none; border-radius: var(--radius-md); background: none; color: var(--fg-muted); cursor: pointer; }
|
|
10
|
+
& .dialog-close { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 28px; height: 28px; margin: 0; padding: 0; border: none; border-radius: var(--radius-md); background: none; color: var(--fg-muted); font-family: inherit; cursor: pointer; }
|
|
11
11
|
& .dialog-close:hover { background: color-mix(in srgb, var(--fg-primary) 6%, transparent); color: var(--fg-primary); }
|
|
12
12
|
& .dialog-body { flex: 1; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-5) var(--space-4); }
|
|
13
13
|
& .dialog-footer { display: flex; align-items: center; justify-content: flex-end; gap: var(--space-3); flex-shrink: 0; min-height: 56px; padding: 0 var(--space-4); border-top: 1px solid var(--border-subtle); }
|
|
14
14
|
& .dialog-field { display: flex; flex-direction: column; gap: var(--space-1-5); }
|
|
15
15
|
& .dialog-field-label { font-size: var(--text-sm); font-weight: var(--weight-medium); color: color-mix(in srgb, var(--fg-primary) 50%, transparent); }
|
|
16
|
-
& .dialog-more { display: inline-flex; align-items: center; gap: var(--space-2); margin-
|
|
16
|
+
& .dialog-more { display: inline-flex; align-items: center; gap: var(--space-2); margin-inline-end: auto; border: none; background: none; padding: 0; font-family: inherit; font-size: var(--text-md); color: var(--fg-muted); cursor: pointer; }
|
|
17
17
|
& .dialog-submit { display: inline-flex; align-items: center; gap: var(--space-2); height: 28px; padding: 0 var(--space-1) 0 var(--space-2-5); border: none; border-radius: var(--radius-md); background: var(--bg-brand-solid); color: var(--fg-on-brand); font-family: inherit; font-size: var(--text-md); font-weight: var(--weight-medium); cursor: pointer; }
|
|
18
18
|
& .dialog-submit-key { display: inline-flex; align-items: center; justify-content: center; height: 18px; padding: 0 var(--space-1); border-radius: var(--radius-sm); background: rgba(255,255,255,0.22); font-size: var(--text-xs); }
|
|
19
19
|
}
|
|
20
|
+
|
|
21
|
+
@media (prefers-reduced-motion: reduce) {
|
|
22
|
+
.dialog, .dialog * {
|
|
23
|
+
animation-duration: 0.01ms !important;
|
|
24
|
+
animation-iteration-count: 1 !important;
|
|
25
|
+
transition-duration: 0.01ms !important;
|
|
26
|
+
}
|
|
27
|
+
}
|