@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
|
@@ -5,12 +5,76 @@ export type RecordPageProps = {
|
|
|
5
5
|
columns: Column[];
|
|
6
6
|
/** Breadcrumb label + back button target (e.g. "Companies"). */
|
|
7
7
|
collection?: string;
|
|
8
|
+
/** Partial override of the chrome strings; see `recordPageLabels`. */
|
|
9
|
+
labels?: RecordPageLabelsInput;
|
|
8
10
|
onBack?: () => void;
|
|
9
11
|
/** When provided, shows a maximise/minimise button in the top bar. */
|
|
10
12
|
onToggleFull?: () => void;
|
|
11
13
|
full?: boolean;
|
|
12
14
|
className?: string;
|
|
13
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* Every chrome string RecordPage renders. Supplied as a PARTIAL map, so
|
|
18
|
+
* translating one control does not mean restating the other fifty; anything
|
|
19
|
+
* omitted keeps its English default from `recordPageLabels`.
|
|
20
|
+
*
|
|
21
|
+
* The record's own field labels and values are NOT here — those arrive through
|
|
22
|
+
* `record` and `columns`, and are the consumer's data. What this covers is the
|
|
23
|
+
* surface crisp draws around them: the tab strip, the Highlights stats (a fixed
|
|
24
|
+
* set measured from Attio, not consumer data), the action bar and the feed.
|
|
25
|
+
*/
|
|
26
|
+
export type RecordPageLabels = {
|
|
27
|
+
breadcrumb: string;
|
|
28
|
+
editRecord: string;
|
|
29
|
+
recordActions: string;
|
|
30
|
+
addToFavourites: string;
|
|
31
|
+
removeFromFavourites: string;
|
|
32
|
+
copyRecordLink: string;
|
|
33
|
+
deleteRecord: string;
|
|
34
|
+
linkRecords: string;
|
|
35
|
+
logANote: string;
|
|
36
|
+
createATask: string;
|
|
37
|
+
fullScreen: string;
|
|
38
|
+
exitFullScreen: string;
|
|
39
|
+
resizeDetails: string;
|
|
40
|
+
composeEmail: string;
|
|
41
|
+
askAttio: string;
|
|
42
|
+
addToList: string;
|
|
43
|
+
highlights: string;
|
|
44
|
+
recordDetails: string;
|
|
45
|
+
searchFields: string;
|
|
46
|
+
closeSearch: string;
|
|
47
|
+
searchPlaceholder: string;
|
|
48
|
+
viewAllValues: string;
|
|
49
|
+
setAValue: string;
|
|
50
|
+
viewAll: string;
|
|
51
|
+
showLess: string;
|
|
52
|
+
viewLess: string;
|
|
53
|
+
newNote: string;
|
|
54
|
+
newTask: string;
|
|
55
|
+
cancel: string;
|
|
56
|
+
noNotesYet: string;
|
|
57
|
+
noTasksYet: string;
|
|
58
|
+
nothingHereYet: string;
|
|
59
|
+
you: string;
|
|
60
|
+
justNow: string;
|
|
61
|
+
/** Tab names, keyed by tab. */
|
|
62
|
+
tabs: Record<"overview" | "activity" | "emails" | "calls" | "team" | "lists" | "notes" | "tasks" | "files", string>;
|
|
63
|
+
/** Highlight stat names and their empty states, keyed by stat. */
|
|
64
|
+
highlightLabels: Record<"connectionStrength" | "nextInteraction" | "team" | "estimatedArr" | "fundingRaised" | "employeeRange" | "associatedDeals", string>;
|
|
65
|
+
highlightEmpty: Record<"connectionStrength" | "nextInteraction" | "team" | "estimatedArr" | "fundingRaised" | "employeeRange" | "associatedDeals", string>;
|
|
66
|
+
/** Activity line for a changed domain, given the new value. */
|
|
67
|
+
domainSetTo: (value: React.ReactNode) => React.ReactNode;
|
|
68
|
+
/** Activity line for added categories, given how many. */
|
|
69
|
+
taggedCategories: (count: number) => React.ReactNode;
|
|
70
|
+
};
|
|
71
|
+
export declare const recordPageLabels: RecordPageLabels;
|
|
72
|
+
/** Partial override of any chrome string; the keyed maps nest. */
|
|
73
|
+
export type RecordPageLabelsInput = Partial<Omit<RecordPageLabels, "tabs" | "highlightLabels" | "highlightEmpty">> & {
|
|
74
|
+
tabs?: Partial<RecordPageLabels["tabs"]>;
|
|
75
|
+
highlightLabels?: Partial<RecordPageLabels["highlightLabels"]>;
|
|
76
|
+
highlightEmpty?: Partial<RecordPageLabels["highlightEmpty"]>;
|
|
77
|
+
};
|
|
14
78
|
/**
|
|
15
79
|
* The full-page company record view — the page Attio opens when you click into a
|
|
16
80
|
* record (as opposed to the peek [RecordPanel]). A top breadcrumb bar with
|
|
@@ -19,7 +83,7 @@ export type RecordPageProps = {
|
|
|
19
83
|
* Emails sections (Notes & Tasks are live — add and check things off). Drop it
|
|
20
84
|
* into the app's main content area.
|
|
21
85
|
*/
|
|
22
|
-
export declare function RecordPage({ record, columns, collection, onBack, onToggleFull, full, className, }: RecordPageProps): React.JSX.Element;
|
|
86
|
+
export declare function RecordPage({ record, columns, collection, labels, onBack, onToggleFull, full, className, }: RecordPageProps): React.JSX.Element;
|
|
23
87
|
export declare namespace RecordPage {
|
|
24
88
|
var displayName: string;
|
|
25
89
|
}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { type Column, type Row } from "../recordstable";
|
|
3
|
-
export type RecordPanelProps = {
|
|
3
|
+
export type RecordPanelProps = Omit<React.ComponentPropsWithoutRef<"div">, "children" | "title"> & {
|
|
4
4
|
/** The record to show; render nothing when null. */
|
|
5
|
+
/** Label for the close control. */
|
|
6
|
+
closeLabel?: string;
|
|
7
|
+
/** Heading above the field list. */
|
|
8
|
+
detailsLabel?: React.ReactNode;
|
|
9
|
+
/** Shown in place of a field that has no value. */
|
|
10
|
+
emptyLabel?: React.ReactNode;
|
|
5
11
|
record: Row | null;
|
|
6
12
|
columns: Column[];
|
|
7
13
|
onClose: () => void;
|
|
@@ -13,7 +19,7 @@ export type RecordPanelProps = {
|
|
|
13
19
|
* relative` container (e.g. the app main area); it slides in from the right and
|
|
14
20
|
* overlays the content.
|
|
15
21
|
*/
|
|
16
|
-
export declare function RecordPanel({ record, columns, onClose, className, }: RecordPanelProps): React.JSX.Element | null;
|
|
22
|
+
export declare function RecordPanel({ record, columns, onClose, className, closeLabel, detailsLabel, emptyLabel, ...rest }: RecordPanelProps): React.JSX.Element | null;
|
|
17
23
|
export declare namespace RecordPanel {
|
|
18
24
|
var displayName: string;
|
|
19
25
|
}
|
|
@@ -18,6 +18,9 @@ export type Column = {
|
|
|
18
18
|
key: string;
|
|
19
19
|
label: string;
|
|
20
20
|
type?: ColumnType;
|
|
21
|
+
/** Mark the column's values as AI-enriched — tints the cells the way Attio
|
|
22
|
+
* washes enriched values (#9b69ff at 4%). */
|
|
23
|
+
enriched?: boolean;
|
|
21
24
|
icon?: IconType;
|
|
22
25
|
width?: number;
|
|
23
26
|
/** Currency symbol for `currency` columns (default "$"). */
|
|
@@ -71,6 +74,8 @@ export type Row = {
|
|
|
71
74
|
id: string;
|
|
72
75
|
} & Record<string, any>;
|
|
73
76
|
export type RecordsTableProps = {
|
|
77
|
+
/** Partial override of the chrome strings; see `recordsTableLabels`. */
|
|
78
|
+
labels?: RecordsTableLabelsInput;
|
|
74
79
|
columns?: Column[];
|
|
75
80
|
rows?: Row[];
|
|
76
81
|
/** Controlled selection — omit for self-managed selection state. */
|
|
@@ -92,6 +97,90 @@ export type RecordsTableProps = {
|
|
|
92
97
|
className?: string;
|
|
93
98
|
};
|
|
94
99
|
export declare function tagTone(t: string): string;
|
|
100
|
+
type Agg = "none" | "count" | "filled" | "sum" | "avg" | "min" | "max";
|
|
101
|
+
/**
|
|
102
|
+
* Every chrome string RecordsTable renders. Supplied as a PARTIAL map, so
|
|
103
|
+
* translating one menu item does not mean restating the other fifty; anything
|
|
104
|
+
* omitted keeps its English default from `recordsTableLabels`.
|
|
105
|
+
*
|
|
106
|
+
* The interpolated ones are formatters rather than templates because word
|
|
107
|
+
* order does not survive translation — "Sorted by Name +2" has no stable
|
|
108
|
+
* arrangement of its parts across languages (the same reason TableToolbar's
|
|
109
|
+
* triggers take formatters, #77).
|
|
110
|
+
*/
|
|
111
|
+
export type RecordsTableLabels = {
|
|
112
|
+
selectAll: string;
|
|
113
|
+
sort: string;
|
|
114
|
+
sortField: string;
|
|
115
|
+
sortDirection: string;
|
|
116
|
+
removeSort: string;
|
|
117
|
+
reorderSort: string;
|
|
118
|
+
addSort: string;
|
|
119
|
+
ascending: string;
|
|
120
|
+
descending: string;
|
|
121
|
+
noSorts: string;
|
|
122
|
+
learnSorting: string;
|
|
123
|
+
filter: string;
|
|
124
|
+
addFilter: string;
|
|
125
|
+
filterByField: string;
|
|
126
|
+
filterByPlaceholder: string;
|
|
127
|
+
filterValuePlaceholder: string;
|
|
128
|
+
selectCondition: string;
|
|
129
|
+
clearFilter: string;
|
|
130
|
+
addColumn: string;
|
|
131
|
+
columnLabel: string;
|
|
132
|
+
editColumnLabel: string;
|
|
133
|
+
hideFromView: string;
|
|
134
|
+
moveLeft: string;
|
|
135
|
+
moveRight: string;
|
|
136
|
+
sortAscending: string;
|
|
137
|
+
sortDescending: string;
|
|
138
|
+
newRecord: string;
|
|
139
|
+
createRecord: string;
|
|
140
|
+
createMore: string;
|
|
141
|
+
newButton: string;
|
|
142
|
+
more: string;
|
|
143
|
+
moreActions: string;
|
|
144
|
+
recordActions: string;
|
|
145
|
+
copy: string;
|
|
146
|
+
duplicate: string;
|
|
147
|
+
addToList: string;
|
|
148
|
+
inAList: string;
|
|
149
|
+
delete: string;
|
|
150
|
+
sendEmail: string;
|
|
151
|
+
exportCsv: string;
|
|
152
|
+
runWorkflow: string;
|
|
153
|
+
calculate: string;
|
|
154
|
+
emptyPlaceholder: string;
|
|
155
|
+
setRecordPlaceholder: string;
|
|
156
|
+
noRecords: string;
|
|
157
|
+
untitled: string;
|
|
158
|
+
/** Aggregation names, keyed by the aggregation. */
|
|
159
|
+
agg: Record<Agg, string>;
|
|
160
|
+
/** Filter operator names, keyed by the operator. */
|
|
161
|
+
op: Record<FilterOp, string>;
|
|
162
|
+
/** Title of the create dialog, given the entity column's label. */
|
|
163
|
+
newRecordTitle: (entity: string) => string;
|
|
164
|
+
/** Placeholder for a create-dialog field, given the field's label. */
|
|
165
|
+
setFieldPlaceholder: (field: string) => string;
|
|
166
|
+
/** Label for a newly added column, given how many columns exist. */
|
|
167
|
+
newColumnLabel: (index: number) => string;
|
|
168
|
+
/** The sort trigger, given the first sorted column and how many more. */
|
|
169
|
+
sortedBy: (first: string, extra: number) => string;
|
|
170
|
+
/** The filter trigger, given how many filters are active. */
|
|
171
|
+
filterCount: (active: number) => string;
|
|
172
|
+
/** The row count under the table. */
|
|
173
|
+
recordCount: (n: number) => string;
|
|
174
|
+
/** Heading above a filter chip's condition editor. */
|
|
175
|
+
conditionTitle: (field: string) => string;
|
|
176
|
+
};
|
|
177
|
+
export declare const recordsTableLabels: RecordsTableLabels;
|
|
178
|
+
/** Partial override of any chrome string; the two keyed maps nest. */
|
|
179
|
+
export type RecordsTableLabelsInput = Partial<Omit<RecordsTableLabels, "agg" | "op">> & {
|
|
180
|
+
agg?: Partial<Record<Agg, string>>;
|
|
181
|
+
op?: Partial<Record<FilterOp, string>>;
|
|
182
|
+
};
|
|
183
|
+
type FilterOp = "contains" | "is" | "isnot" | "empty" | "notempty";
|
|
95
184
|
/**
|
|
96
185
|
* Attio-style record grid — fully featured. Toolbar (search / sort status /
|
|
97
186
|
* count / New), sticky checkbox + entity columns, 36px rows, typed cells,
|
|
@@ -100,7 +189,7 @@ export declare function tagTone(t: string): string;
|
|
|
100
189
|
* and a floating bulk-action bar (delete / deselect) when rows are selected.
|
|
101
190
|
* Selection can be controlled via `selectedIds`/`onSelectionChange`.
|
|
102
191
|
*/
|
|
103
|
-
export declare function RecordsTable({ columns: columnsProp, rows: rowsProp, selectedIds, onSelectionChange, showNew, allowAddColumn, onOpenRecord, onOpenRecordPage, avatarTone, className, }: RecordsTableProps): React.JSX.Element;
|
|
192
|
+
export declare function RecordsTable({ labels, columns: columnsProp, rows: rowsProp, selectedIds, onSelectionChange, showNew, allowAddColumn, onOpenRecord, onOpenRecordPage, avatarTone, className, }: RecordsTableProps): React.JSX.Element;
|
|
104
193
|
export declare const defaultColumns: Column[];
|
|
105
194
|
export declare const defaultRows: Row[];
|
|
106
195
|
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The record tag/chip, measured from Attio: 22px tall, `padding: 0 4px`,
|
|
3
|
+
* `border-radius: ${c.radius.chip}`, 14px/20px at weight 500, and a 1px inset ring in the
|
|
4
|
+
* tone's colour.
|
|
5
|
+
*
|
|
6
|
+
* Shared because RecordsTable and RecordPanel render the *same* chip. It used
|
|
7
|
+
* to be pasted into both recipes, and the two copies had already started to
|
|
8
|
+
* drift — adding the measured inset ring meant patching the same rules twice.
|
|
9
|
+
*/
|
|
10
|
+
export declare const recordTagCss: string;
|
|
@@ -4,6 +4,10 @@ export type RichTextValue = {
|
|
|
4
4
|
html: string;
|
|
5
5
|
};
|
|
6
6
|
export type RichTextEditorProps = {
|
|
7
|
+
/** Accessible name for the title field. */
|
|
8
|
+
titleLabel?: string;
|
|
9
|
+
/** Accessible name for the body editor. */
|
|
10
|
+
bodyLabel?: string;
|
|
7
11
|
defaultTitle?: string;
|
|
8
12
|
/** Initial body HTML. */
|
|
9
13
|
defaultHtml?: string;
|
|
@@ -18,7 +22,7 @@ export type RichTextEditorProps = {
|
|
|
18
22
|
* that appears over a text selection. Built on contentEditable, dependency-free.
|
|
19
23
|
* Uncontrolled: seed with `defaultTitle`/`defaultHtml`, read via `onChange`.
|
|
20
24
|
*/
|
|
21
|
-
export declare function RichTextEditor({ defaultTitle, defaultHtml, titlePlaceholder, placeholder, onChange, className, }: RichTextEditorProps): React.JSX.Element;
|
|
25
|
+
export declare function RichTextEditor({ defaultTitle, defaultHtml, titlePlaceholder, placeholder, onChange, className, titleLabel, bodyLabel, }: RichTextEditorProps): React.JSX.Element;
|
|
22
26
|
export declare namespace RichTextEditor {
|
|
23
27
|
var displayName: string;
|
|
24
28
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type * as React from "react";
|
|
2
|
-
export type SettingsSectionProps = {
|
|
2
|
+
export type SettingsSectionProps = Omit<React.ComponentPropsWithoutRef<"section">, "title"> & {
|
|
3
3
|
title: React.ReactNode;
|
|
4
4
|
description?: React.ReactNode;
|
|
5
5
|
/** Trailing action on the title row (e.g. a Button). */
|
|
@@ -12,7 +12,7 @@ export type SettingsSectionProps = {
|
|
|
12
12
|
* subtitle and trailing action, then a gapped stack of rows (pair with
|
|
13
13
|
* FormField). Compose several inside a settings content pane.
|
|
14
14
|
*/
|
|
15
|
-
export declare function SettingsSection({ title, description, action, children, className, }: SettingsSectionProps): React.JSX.Element;
|
|
15
|
+
export declare function SettingsSection({ title, description, action, children, className, ...rest }: SettingsSectionProps): React.JSX.Element;
|
|
16
16
|
export declare namespace SettingsSection {
|
|
17
17
|
var displayName: string;
|
|
18
18
|
}
|
|
@@ -9,8 +9,12 @@ export type SettingsNavGroup = {
|
|
|
9
9
|
label?: React.ReactNode;
|
|
10
10
|
items: SettingsNavItem[];
|
|
11
11
|
};
|
|
12
|
-
export type SettingsShellProps = {
|
|
12
|
+
export type SettingsShellProps = Omit<React.ComponentPropsWithoutRef<"div">, "title" | "onSelect"> & {
|
|
13
13
|
/** Back-header title (default "Settings"). */
|
|
14
|
+
/** Accessible name for the settings nav. */
|
|
15
|
+
navLabel?: string;
|
|
16
|
+
/** Shown when the search matches nothing. */
|
|
17
|
+
emptyLabel?: React.ReactNode;
|
|
14
18
|
title?: React.ReactNode;
|
|
15
19
|
onBack?: () => void;
|
|
16
20
|
groups: SettingsNavGroup[];
|
|
@@ -28,7 +32,7 @@ export type SettingsShellProps = {
|
|
|
28
32
|
* search, grouped items) beside a scrolling content pane. The search filters the
|
|
29
33
|
* nav by label. Fills the height its container gives it.
|
|
30
34
|
*/
|
|
31
|
-
export declare function SettingsShell({ title, onBack, groups, activeItem, onSelect, searchable, searchPlaceholder, children, className, }: SettingsShellProps): React.JSX.Element;
|
|
35
|
+
export declare function SettingsShell({ title, onBack, groups, activeItem, onSelect, searchable, searchPlaceholder, children, className, navLabel, emptyLabel, ...rest }: SettingsShellProps): React.JSX.Element;
|
|
32
36
|
export declare namespace SettingsShell {
|
|
33
37
|
var displayName: string;
|
|
34
38
|
}
|
|
@@ -48,6 +48,10 @@ export type SidebarFooter = {
|
|
|
48
48
|
trialActionLabel: string;
|
|
49
49
|
};
|
|
50
50
|
export type SidebarProps = React.ComponentPropsWithoutRef<"nav"> & {
|
|
51
|
+
/** Label for the collapse control. */
|
|
52
|
+
collapseLabel?: string;
|
|
53
|
+
/** Label for the inbox quick-action. */
|
|
54
|
+
inboxLabel?: string;
|
|
51
55
|
asChild?: boolean;
|
|
52
56
|
/** Called when the collapse-panel button in the header is pressed. */
|
|
53
57
|
onToggleCollapse?: () => void;
|
|
@@ -77,6 +81,10 @@ export declare const ATTIO_SIDEBAR_CHATS_SECTION: SidebarSection;
|
|
|
77
81
|
/** The measured Attio footer copy — the default `footer` prop. */
|
|
78
82
|
export declare const ATTIO_SIDEBAR_FOOTER: SidebarFooter;
|
|
79
83
|
export declare const Sidebar: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
|
|
84
|
+
/** Label for the collapse control. */
|
|
85
|
+
collapseLabel?: string;
|
|
86
|
+
/** Label for the inbox quick-action. */
|
|
87
|
+
inboxLabel?: string;
|
|
80
88
|
asChild?: boolean;
|
|
81
89
|
/** Called when the collapse-panel button in the header is pressed. */
|
|
82
90
|
onToggleCollapse?: () => void;
|
|
@@ -15,6 +15,10 @@ export type TaskGroup = {
|
|
|
15
15
|
tasks: Task[];
|
|
16
16
|
};
|
|
17
17
|
export type TaskListProps = {
|
|
18
|
+
/** Label for a task's checkbox while the task is open. */
|
|
19
|
+
completeLabel?: string;
|
|
20
|
+
/** Label for a task's checkbox once it is done. */
|
|
21
|
+
incompleteLabel?: string;
|
|
18
22
|
/** Flat list of tasks (use `groups` for grouped sections). */
|
|
19
23
|
tasks?: Task[];
|
|
20
24
|
/** Grouped sections, each with a header + count. */
|
|
@@ -30,7 +34,7 @@ export type TaskListProps = {
|
|
|
30
34
|
* count, then rows of a round complete-checkbox + title + trailing meta.
|
|
31
35
|
* Completed rows strike through; overdue dates go red.
|
|
32
36
|
*/
|
|
33
|
-
export declare function TaskList({ tasks, groups, onToggle, emptyLabel, className, }: TaskListProps): React.JSX.Element;
|
|
37
|
+
export declare function TaskList({ tasks, groups, onToggle, emptyLabel, className, completeLabel, incompleteLabel, }: TaskListProps): React.JSX.Element;
|
|
34
38
|
export declare namespace TaskList {
|
|
35
39
|
var displayName: string;
|
|
36
40
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type * as React from "react";
|
|
2
|
-
export type TrialBannerProps = {
|
|
2
|
+
export type TrialBannerProps = Omit<React.ComponentPropsWithoutRef<"div">, "children" | "title"> & {
|
|
3
3
|
/** Leading icon. */
|
|
4
4
|
icon?: React.ReactNode;
|
|
5
5
|
/** The message (children). */
|
|
@@ -15,7 +15,7 @@ export type TrialBannerProps = {
|
|
|
15
15
|
* A compact trial / upgrade banner — measured from Attio's sidebar footer.
|
|
16
16
|
* Icon + message + an optional small action pill (soft-glow outlined button).
|
|
17
17
|
*/
|
|
18
|
-
export declare function TrialBanner({ icon, children, action, onAction, tone, className, }: TrialBannerProps): React.JSX.Element;
|
|
18
|
+
export declare function TrialBanner({ icon, children, action, onAction, tone, className, ...rest }: TrialBannerProps): React.JSX.Element;
|
|
19
19
|
export declare namespace TrialBanner {
|
|
20
20
|
var displayName: string;
|
|
21
21
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as React from "react";
|
|
2
2
|
export type ViewToggleOption<T extends string = string> = {
|
|
3
3
|
value: T;
|
|
4
4
|
/** Icon shown in the tile. */
|
|
@@ -6,10 +6,16 @@ export type ViewToggleOption<T extends string = string> = {
|
|
|
6
6
|
/** Accessible label. */
|
|
7
7
|
label: string;
|
|
8
8
|
};
|
|
9
|
-
export type ViewToggleProps<T extends string = string> = {
|
|
9
|
+
export type ViewToggleProps<T extends string = string> = Omit<React.ComponentPropsWithoutRef<"div">, "onChange"> & {
|
|
10
10
|
options: ViewToggleOption<T>[];
|
|
11
|
-
value
|
|
12
|
-
|
|
11
|
+
/** Controlled value. Omit to let ViewToggle manage it (see defaultValue). */
|
|
12
|
+
value?: T;
|
|
13
|
+
/** Initially selected value, when uncontrolled. Defaults to the first option. */
|
|
14
|
+
defaultValue?: T;
|
|
15
|
+
/** Fires with the next value on every pick, controlled or not.
|
|
16
|
+
* Named `onChange` rather than the house `onValueChange` for historical
|
|
17
|
+
* reasons; renaming it would break consumers. */
|
|
18
|
+
onChange?: (value: T) => void;
|
|
13
19
|
"aria-label"?: string;
|
|
14
20
|
className?: string;
|
|
15
21
|
};
|
|
@@ -18,7 +24,7 @@ export type ViewToggleProps<T extends string = string> = {
|
|
|
18
24
|
* of icon tiles; the selected tile is raised. Use for view-mode switches (list ⇄
|
|
19
25
|
* grid) or any small mutually-exclusive icon choice.
|
|
20
26
|
*/
|
|
21
|
-
export declare function ViewToggle<T extends string = string>({ options, value, onChange, "aria-label": ariaLabel, className, }: ViewToggleProps<T>): React.JSX.Element;
|
|
27
|
+
export declare function ViewToggle<T extends string = string>({ options, value: valueProp, defaultValue, onChange, "aria-label": ariaLabel, className, ...rest }: ViewToggleProps<T>): React.JSX.Element;
|
|
22
28
|
export declare namespace ViewToggle {
|
|
23
29
|
var displayName: string;
|
|
24
30
|
}
|
|
@@ -4,6 +4,7 @@ export declare const contract: MapLeafNodes<{
|
|
|
4
4
|
bgBrandSolid: "brand600";
|
|
5
5
|
bgBrandSolidPressed: "brand700";
|
|
6
6
|
fgOnBrand: "white";
|
|
7
|
+
fgOnTone: "ink";
|
|
7
8
|
bgSurface: "gray00";
|
|
8
9
|
bgRaised: "gray50";
|
|
9
10
|
borderDefault: "line200";
|
|
@@ -23,17 +24,27 @@ export declare const contract: MapLeafNodes<{
|
|
|
23
24
|
fgPrimary: "gray900";
|
|
24
25
|
fgMuted: "gray400";
|
|
25
26
|
bgDanger: "red600";
|
|
27
|
+
bgDangerSolid: "red700";
|
|
28
|
+
strokeFieldFocus: "fieldFocus";
|
|
29
|
+
fgDisabled: "disabledFg";
|
|
30
|
+
bgNeutralWeak: "neutralWeak";
|
|
31
|
+
bgNeutralInverted: "neutralInverted";
|
|
32
|
+
fgOnNeutralInverted: "onNeutralInverted";
|
|
33
|
+
fgNeutralSubtle: "neutralSubtle";
|
|
34
|
+
fgNeutralMuted: "neutralMuted";
|
|
35
|
+
strokeFocusRing: "focusRing";
|
|
26
36
|
bgSuccess: "green600";
|
|
27
37
|
bgWarning: "amber600";
|
|
28
38
|
bgOrange: "orange600";
|
|
29
39
|
bgCyan: "cyan600";
|
|
30
40
|
bgPurple: "purple600";
|
|
31
41
|
bgSidebar: "graySidebar";
|
|
42
|
+
bgSubtle: "graySidebar";
|
|
32
43
|
}, `var(--${string})`> & {
|
|
33
44
|
space: Record<"0.5" | "1" | "1.5" | "2" | "2.5" | "3" | "4" | "5" | "6" | "8" | "px", `var(--${string})`>;
|
|
34
|
-
radius: Record<"2xl" | "full" | "lg" | "md" | "sm" | "xl", `var(--${string})`>;
|
|
35
|
-
size: Record<"header" | "icon" | "row" | "tableRow", `var(--${string})`>;
|
|
45
|
+
radius: Record<"2xl" | "chip" | "full" | "lg" | "md" | "sm" | "xl", `var(--${string})`>;
|
|
46
|
+
size: Record<"calendarCell" | "calendarPill" | "chip" | "header" | "icon" | "menuRow" | "row" | "tableHeader" | "tableRow", `var(--${string})`>;
|
|
36
47
|
font: Record<"sans", `var(--${string})`>;
|
|
37
48
|
text: Record<"lg" | "md" | "sm" | "xl" | "xs", `var(--${string})`>;
|
|
38
|
-
weight: Record<"medium" | "regular" | "semibold", `var(--${string})`>;
|
|
49
|
+
weight: Record<"bold" | "medium" | "regular" | "semibold", `var(--${string})`>;
|
|
39
50
|
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Attio's measured elevation recipes, written **once**.
|
|
3
|
+
*
|
|
4
|
+
* The whole product runs on two elevation tiers plus one control shadow
|
|
5
|
+
* (measured live — see `docs/study/attio-panels.md` §4). Before this module each
|
|
6
|
+
* surface carried its own copy of the string: the tier-1 stack appeared in 9
|
|
7
|
+
* places, the control shadow in 12. Copies drift, and every drift was a real
|
|
8
|
+
* bug — `Drawer`/`RecordPanel` grew invented directional shadows, `BulkBar`'s
|
|
9
|
+
* copy used raw literals and so never darkened in dark mode (AUTHORING.md
|
|
10
|
+
* Lesson 30). Reference the constant; never re-type the value.
|
|
11
|
+
*/
|
|
12
|
+
export declare const elevation: {
|
|
13
|
+
/**
|
|
14
|
+
* Tier 1 — anything floating and *attached*: menus, popovers, dropdowns,
|
|
15
|
+
* hover-preview cards, the floating sidebar, the record peek, drawers, the
|
|
16
|
+
* bulk bar. Pairs with a 10–12px radius and, for panels, an 8px gutter.
|
|
17
|
+
*/
|
|
18
|
+
readonly floating: `inset 0 0 0 1px var(--${string}), 0 0 0 1px var(--${string}), 0 4px 8px -4px var(--${string}), 0 4px 12px -2px var(--${string})`;
|
|
19
|
+
/**
|
|
20
|
+
* Tier 2 — the modal frosted bezel (Dialog, Command). Sits on the
|
|
21
|
+
* `bgOverlayFrost` 60% + `blur(15px)` surface at radius 16, wrapping an inner
|
|
22
|
+
* card at radius 12. Attio dims nothing behind it; the blur does the work.
|
|
23
|
+
*/
|
|
24
|
+
readonly modal: `0 8px 28px -6px var(--${string}), 0 18px 88px -4px var(--${string}), 0 0 1px var(--${string})`;
|
|
25
|
+
/**
|
|
26
|
+
* The neutral/outlined control shadow — buttons, inputs, textareas, the
|
|
27
|
+
* sidebar search, record-page actions.
|
|
28
|
+
*
|
|
29
|
+
* The two raw values **are** the measured Attio value (Lessons 22 and 29) and
|
|
30
|
+
* must stay raw. `rgba(0,0,0,0.04)` equals `tileActiveShadow`'s light value by
|
|
31
|
+
* coincidence, not by meaning; tokenizing it would delete a measured layer in
|
|
32
|
+
* dark mode. Only the ring is theme-aware, via `ringNeutral`.
|
|
33
|
+
*/
|
|
34
|
+
readonly field: `inset 0 0 0 1px var(--${string}), 0 0 2px rgba(28,40,64,0.18), 0 1px 3px rgba(0,0,0,0.04)`;
|
|
35
|
+
/**
|
|
36
|
+
* The same control shadow **without** the theme-aware ring. Lesson 29 added
|
|
37
|
+
* the ring to the neutral-button family but deliberately left `trialbanner`
|
|
38
|
+
* and `viewtoggle` alone pending their own re-measurement — this constant
|
|
39
|
+
* exists so those surfaces share the value without silently acquiring a ring
|
|
40
|
+
* nobody measured for them.
|
|
41
|
+
*/
|
|
42
|
+
readonly fieldNoRing: `0 0 2px rgba(28,40,64,0.18), 0 1px 3px rgba(0,0,0,0.04)`;
|
|
43
|
+
};
|
|
44
|
+
export type ElevationKey = keyof typeof elevation;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { contract, type Theme } from "./contract";
|
|
2
|
+
export { type ElevationKey, elevation } from "./elevation";
|
|
2
3
|
export { palette } from "./palette";
|
|
3
4
|
export { type FontKey, font, type RadiusKey, radius, type SizeKey, type SpaceKey, size, space, type TextKey, text, type WeightKey, weight, } from "./scale";
|
|
4
5
|
export type { Tokens } from "./semantic";
|
|
@@ -7,6 +7,10 @@ export declare const palette: {
|
|
|
7
7
|
readonly light: "#ffffff";
|
|
8
8
|
readonly dark: "#ffffff";
|
|
9
9
|
};
|
|
10
|
+
readonly ink: {
|
|
11
|
+
readonly light: "#101112";
|
|
12
|
+
readonly dark: "#101112";
|
|
13
|
+
};
|
|
10
14
|
readonly gray50: {
|
|
11
15
|
readonly light: "#f4f4f5";
|
|
12
16
|
readonly dark: "#101112";
|
|
@@ -87,6 +91,42 @@ export declare const palette: {
|
|
|
87
91
|
readonly light: "#e5484d";
|
|
88
92
|
readonly dark: "#ff5a5f";
|
|
89
93
|
};
|
|
94
|
+
readonly red700: {
|
|
95
|
+
readonly light: "#ba2525";
|
|
96
|
+
readonly dark: "#ba2525";
|
|
97
|
+
};
|
|
98
|
+
readonly fieldFocus: {
|
|
99
|
+
readonly light: "#1a1c20";
|
|
100
|
+
readonly dark: "#f3f4f5";
|
|
101
|
+
};
|
|
102
|
+
readonly disabledFg: {
|
|
103
|
+
readonly light: "#d1d3d8";
|
|
104
|
+
readonly dark: "#5b606a";
|
|
105
|
+
};
|
|
106
|
+
readonly neutralWeak: {
|
|
107
|
+
readonly light: "#f3f4f5";
|
|
108
|
+
readonly dark: "#1d2025";
|
|
109
|
+
};
|
|
110
|
+
readonly neutralInverted: {
|
|
111
|
+
readonly light: "#2a3038";
|
|
112
|
+
readonly dark: "#f3f4f5";
|
|
113
|
+
};
|
|
114
|
+
readonly onNeutralInverted: {
|
|
115
|
+
readonly light: "#ffffff";
|
|
116
|
+
readonly dark: "#16171b";
|
|
117
|
+
};
|
|
118
|
+
readonly neutralSubtle: {
|
|
119
|
+
readonly light: "#868b94";
|
|
120
|
+
readonly dark: "#b0b3ba";
|
|
121
|
+
};
|
|
122
|
+
readonly neutralMuted: {
|
|
123
|
+
readonly light: "#555d6d";
|
|
124
|
+
readonly dark: "#dcdee3";
|
|
125
|
+
};
|
|
126
|
+
readonly focusRing: {
|
|
127
|
+
readonly light: "#1e82eb";
|
|
128
|
+
readonly dark: "#5e98fe";
|
|
129
|
+
};
|
|
90
130
|
readonly green600: {
|
|
91
131
|
readonly light: "#1f9d57";
|
|
92
132
|
readonly dark: "#2ea968";
|
|
@@ -12,6 +12,7 @@ export declare const space: {
|
|
|
12
12
|
readonly "8": "32px";
|
|
13
13
|
};
|
|
14
14
|
export declare const radius: {
|
|
15
|
+
readonly chip: "7px";
|
|
15
16
|
readonly sm: "6px";
|
|
16
17
|
readonly md: "8px";
|
|
17
18
|
readonly lg: "9px";
|
|
@@ -21,9 +22,14 @@ export declare const radius: {
|
|
|
21
22
|
};
|
|
22
23
|
export declare const size: {
|
|
23
24
|
readonly icon: "16px";
|
|
25
|
+
readonly chip: "22px";
|
|
24
26
|
readonly row: "28px";
|
|
27
|
+
readonly menuRow: "32px";
|
|
25
28
|
readonly tableRow: "36px";
|
|
29
|
+
readonly tableHeader: "40px";
|
|
26
30
|
readonly header: "48px";
|
|
31
|
+
readonly calendarCell: "48px";
|
|
32
|
+
readonly calendarPill: "42px";
|
|
27
33
|
};
|
|
28
34
|
export declare const font: {
|
|
29
35
|
readonly sans: '"Inter", system-ui, -apple-system, "Segoe UI", sans-serif';
|
|
@@ -39,6 +45,7 @@ export declare const weight: {
|
|
|
39
45
|
readonly regular: "400";
|
|
40
46
|
readonly medium: "500";
|
|
41
47
|
readonly semibold: "600";
|
|
48
|
+
readonly bold: "700";
|
|
42
49
|
};
|
|
43
50
|
export type SpaceKey = keyof typeof space;
|
|
44
51
|
export type RadiusKey = keyof typeof radius;
|
|
@@ -2,6 +2,7 @@ export declare const semantic: {
|
|
|
2
2
|
bgBrandSolid: "brand600";
|
|
3
3
|
bgBrandSolidPressed: "brand700";
|
|
4
4
|
fgOnBrand: "white";
|
|
5
|
+
fgOnTone: "ink";
|
|
5
6
|
bgSurface: "gray00";
|
|
6
7
|
bgRaised: "gray50";
|
|
7
8
|
borderDefault: "line200";
|
|
@@ -21,11 +22,29 @@ export declare const semantic: {
|
|
|
21
22
|
fgPrimary: "gray900";
|
|
22
23
|
fgMuted: "gray400";
|
|
23
24
|
bgDanger: "red600";
|
|
25
|
+
/** Fill for a SOLID destructive control that carries white text. */
|
|
26
|
+
bgDangerSolid: "red700";
|
|
27
|
+
/** The 2px ring a text field shows while focused. */
|
|
28
|
+
strokeFieldFocus: "fieldFocus";
|
|
29
|
+
/** Unavailable/disabled content: unselected wheel rows, unpickable dates. */
|
|
30
|
+
fgDisabled: "disabledFg";
|
|
31
|
+
/** Weak neutral fill: the wheel's band, the calendar's today pill and range bridge. */
|
|
32
|
+
bgNeutralWeak: "neutralWeak";
|
|
33
|
+
/** The selected calendar day's fill, and the text on it. */
|
|
34
|
+
bgNeutralInverted: "neutralInverted";
|
|
35
|
+
fgOnNeutralInverted: "onNeutralInverted";
|
|
36
|
+
/** Weekday header row. */
|
|
37
|
+
fgNeutralSubtle: "neutralSubtle";
|
|
38
|
+
/** Date numerals. */
|
|
39
|
+
fgNeutralMuted: "neutralMuted";
|
|
40
|
+
/** Keyboard focus ring, for controls that show one inside themselves. */
|
|
41
|
+
strokeFocusRing: "focusRing";
|
|
24
42
|
bgSuccess: "green600";
|
|
25
43
|
bgWarning: "amber600";
|
|
26
44
|
bgOrange: "orange600";
|
|
27
45
|
bgCyan: "cyan600";
|
|
28
46
|
bgPurple: "purple600";
|
|
29
47
|
bgSidebar: "graySidebar";
|
|
48
|
+
bgSubtle: "graySidebar";
|
|
30
49
|
};
|
|
31
50
|
export type Tokens = typeof semantic;
|
package/dist/viewtoggle.css
CHANGED
|
@@ -5,9 +5,17 @@
|
|
|
5
5
|
|
|
6
6
|
& .viewtoggle-tile { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px;
|
|
7
7
|
padding: 0; margin: 0; border: none; border-radius: var(--radius-md); background: none; color: var(--fg-muted);
|
|
8
|
-
cursor: pointer; transition: background-color .12s, color .12s, box-shadow .12s; }
|
|
8
|
+
font-family: inherit; cursor: pointer; transition: background-color .12s, color .12s, box-shadow .12s; }
|
|
9
9
|
& .viewtoggle-tile:hover { color: var(--fg-primary); }
|
|
10
10
|
& .viewtoggle-tile[data-active] { background: var(--bg-tile-active); color: var(--fg-primary);
|
|
11
11
|
box-shadow: 0 1px 2px -1px var(--shadow-tile-active); }
|
|
12
12
|
& .viewtoggle-tile:focus-visible { outline: 2px solid var(--bg-brand-solid); outline-offset: 1px; }
|
|
13
13
|
}
|
|
14
|
+
|
|
15
|
+
@media (prefers-reduced-motion: reduce) {
|
|
16
|
+
.viewtoggle, .viewtoggle * {
|
|
17
|
+
animation-duration: 0.01ms !important;
|
|
18
|
+
animation-iteration-count: 1 !important;
|
|
19
|
+
transition-duration: 0.01ms !important;
|
|
20
|
+
}
|
|
21
|
+
}
|