@qijenchen/design-system 0.1.0-beta.10
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 +163 -0
- package/dist/components/Accordion/accordion.d.ts +37 -0
- package/dist/components/Accordion/accordion.d.ts.map +1 -0
- package/dist/components/Accordion/accordion.js +78 -0
- package/dist/components/Accordion/accordion.js.map +1 -0
- package/dist/components/Alert/alert.d.ts +47 -0
- package/dist/components/Alert/alert.d.ts.map +1 -0
- package/dist/components/Alert/alert.js +132 -0
- package/dist/components/Alert/alert.js.map +1 -0
- package/dist/components/AppShell/_demo-helpers.d.ts +49 -0
- package/dist/components/AppShell/_demo-helpers.d.ts.map +1 -0
- package/dist/components/AppShell/app-shell.d.ts +76 -0
- package/dist/components/AppShell/app-shell.d.ts.map +1 -0
- package/dist/components/AppShell/app-shell.js +214 -0
- package/dist/components/AppShell/app-shell.js.map +1 -0
- package/dist/components/AspectRatio/aspect-ratio.d.ts +40 -0
- package/dist/components/AspectRatio/aspect-ratio.d.ts.map +1 -0
- package/dist/components/AspectRatio/aspect-ratio.js +23 -0
- package/dist/components/AspectRatio/aspect-ratio.js.map +1 -0
- package/dist/components/Avatar/avatar.d.ts +85 -0
- package/dist/components/Avatar/avatar.d.ts.map +1 -0
- package/dist/components/Avatar/avatar.js +195 -0
- package/dist/components/Avatar/avatar.js.map +1 -0
- package/dist/components/Badge/badge.d.ts +43 -0
- package/dist/components/Badge/badge.d.ts.map +1 -0
- package/dist/components/Badge/badge.js +69 -0
- package/dist/components/Badge/badge.js.map +1 -0
- package/dist/components/Breadcrumb/breadcrumb.d.ts +163 -0
- package/dist/components/Breadcrumb/breadcrumb.d.ts.map +1 -0
- package/dist/components/Breadcrumb/breadcrumb.js +300 -0
- package/dist/components/Breadcrumb/breadcrumb.js.map +1 -0
- package/dist/components/BulkActionBar/bulk-action-bar.d.ts +46 -0
- package/dist/components/BulkActionBar/bulk-action-bar.d.ts.map +1 -0
- package/dist/components/BulkActionBar/bulk-action-bar.js +78 -0
- package/dist/components/BulkActionBar/bulk-action-bar.js.map +1 -0
- package/dist/components/Button/button-group.d.ts +49 -0
- package/dist/components/Button/button-group.d.ts.map +1 -0
- package/dist/components/Button/button-group.js +46 -0
- package/dist/components/Button/button-group.js.map +1 -0
- package/dist/components/Button/button.d.ts +203 -0
- package/dist/components/Button/button.d.ts.map +1 -0
- package/dist/components/Button/button.js +309 -0
- package/dist/components/Button/button.js.map +1 -0
- package/dist/components/Calendar/calendar.d.ts +81 -0
- package/dist/components/Calendar/calendar.d.ts.map +1 -0
- package/dist/components/Calendar/calendar.js +282 -0
- package/dist/components/Calendar/calendar.js.map +1 -0
- package/dist/components/Carousel/carousel.d.ts +61 -0
- package/dist/components/Carousel/carousel.d.ts.map +1 -0
- package/dist/components/Carousel/carousel.js +276 -0
- package/dist/components/Carousel/carousel.js.map +1 -0
- package/dist/components/Chart/chart.d.ts +94 -0
- package/dist/components/Chart/chart.d.ts.map +1 -0
- package/dist/components/Chart/chart.js +233 -0
- package/dist/components/Chart/chart.js.map +1 -0
- package/dist/components/Checkbox/checkbox-group.d.ts +58 -0
- package/dist/components/Checkbox/checkbox-group.d.ts.map +1 -0
- package/dist/components/Checkbox/checkbox-group.js +28 -0
- package/dist/components/Checkbox/checkbox-group.js.map +1 -0
- package/dist/components/Checkbox/checkbox.d.ts +73 -0
- package/dist/components/Checkbox/checkbox.d.ts.map +1 -0
- package/dist/components/Checkbox/checkbox.js +125 -0
- package/dist/components/Checkbox/checkbox.js.map +1 -0
- package/dist/components/Chip/chip.d.ts +54 -0
- package/dist/components/Chip/chip.d.ts.map +1 -0
- package/dist/components/Chip/chip.js +224 -0
- package/dist/components/Chip/chip.js.map +1 -0
- package/dist/components/CircularProgress/circular-progress.d.ts +40 -0
- package/dist/components/CircularProgress/circular-progress.d.ts.map +1 -0
- package/dist/components/CircularProgress/circular-progress.js +118 -0
- package/dist/components/CircularProgress/circular-progress.js.map +1 -0
- package/dist/components/Coachmark/coachmark.d.ts +100 -0
- package/dist/components/Coachmark/coachmark.d.ts.map +1 -0
- package/dist/components/Coachmark/coachmark.js +107 -0
- package/dist/components/Coachmark/coachmark.js.map +1 -0
- package/dist/components/Combobox/combobox.d.ts +150 -0
- package/dist/components/Combobox/combobox.d.ts.map +1 -0
- package/dist/components/Combobox/combobox.js +595 -0
- package/dist/components/Combobox/combobox.js.map +1 -0
- package/dist/components/Command/command.d.ts +106 -0
- package/dist/components/Command/command.d.ts.map +1 -0
- package/dist/components/Command/command.js +123 -0
- package/dist/components/Command/command.js.map +1 -0
- package/dist/components/DataTable/active-editor-controller.d.ts +66 -0
- package/dist/components/DataTable/active-editor-controller.d.ts.map +1 -0
- package/dist/components/DataTable/cell-registry.d.ts +37 -0
- package/dist/components/DataTable/cell-registry.d.ts.map +1 -0
- package/dist/components/DataTable/cell-registry.js +377 -0
- package/dist/components/DataTable/cell-registry.js.map +1 -0
- package/dist/components/DataTable/column-types.d.ts +145 -0
- package/dist/components/DataTable/column-types.d.ts.map +1 -0
- package/dist/components/DataTable/column-types.js +17 -0
- package/dist/components/DataTable/column-types.js.map +1 -0
- package/dist/components/DataTable/data-table-column-visibility-panel.d.ts +49 -0
- package/dist/components/DataTable/data-table-column-visibility-panel.d.ts.map +1 -0
- package/dist/components/DataTable/data-table-filter-panel.d.ts +30 -0
- package/dist/components/DataTable/data-table-filter-panel.d.ts.map +1 -0
- package/dist/components/DataTable/data-table-interaction-layer.d.ts +78 -0
- package/dist/components/DataTable/data-table-interaction-layer.d.ts.map +1 -0
- package/dist/components/DataTable/data-table-interaction-layer.js +220 -0
- package/dist/components/DataTable/data-table-interaction-layer.js.map +1 -0
- package/dist/components/DataTable/data-table-sort-manager.d.ts +19 -0
- package/dist/components/DataTable/data-table-sort-manager.d.ts.map +1 -0
- package/dist/components/DataTable/data-table.d.ts +181 -0
- package/dist/components/DataTable/data-table.d.ts.map +1 -0
- package/dist/components/DataTable/data-table.js +1851 -0
- package/dist/components/DataTable/data-table.js.map +1 -0
- package/dist/components/DataTable/filter-operators.d.ts +116 -0
- package/dist/components/DataTable/filter-operators.d.ts.map +1 -0
- package/dist/components/DataTable/filter-tree.d.ts +66 -0
- package/dist/components/DataTable/filter-tree.d.ts.map +1 -0
- package/dist/components/DataTable/lib/column-meta.d.ts +49 -0
- package/dist/components/DataTable/lib/column-meta.d.ts.map +1 -0
- package/dist/components/DateGrid/date-grid.d.ts +61 -0
- package/dist/components/DateGrid/date-grid.d.ts.map +1 -0
- package/dist/components/DateGrid/date-grid.js +168 -0
- package/dist/components/DateGrid/date-grid.js.map +1 -0
- package/dist/components/DatePicker/date-picker.d.ts +119 -0
- package/dist/components/DatePicker/date-picker.d.ts.map +1 -0
- package/dist/components/DatePicker/date-picker.js +743 -0
- package/dist/components/DatePicker/date-picker.js.map +1 -0
- package/dist/components/DescriptionList/description-list.d.ts +60 -0
- package/dist/components/DescriptionList/description-list.d.ts.map +1 -0
- package/dist/components/DescriptionList/description-list.js +77 -0
- package/dist/components/DescriptionList/description-list.js.map +1 -0
- package/dist/components/Dialog/dialog.d.ts +54 -0
- package/dist/components/Dialog/dialog.d.ts.map +1 -0
- package/dist/components/Dialog/dialog.js +151 -0
- package/dist/components/Dialog/dialog.js.map +1 -0
- package/dist/components/DropdownMenu/dropdown-menu.d.ts +111 -0
- package/dist/components/DropdownMenu/dropdown-menu.d.ts.map +1 -0
- package/dist/components/DropdownMenu/dropdown-menu.js +288 -0
- package/dist/components/DropdownMenu/dropdown-menu.js.map +1 -0
- package/dist/components/Empty/empty.d.ts +40 -0
- package/dist/components/Empty/empty.d.ts.map +1 -0
- package/dist/components/Empty/empty.js +66 -0
- package/dist/components/Empty/empty.js.map +1 -0
- package/dist/components/Field/field-context.d.ts +77 -0
- package/dist/components/Field/field-context.d.ts.map +1 -0
- package/dist/components/Field/field-context.js +37 -0
- package/dist/components/Field/field-context.js.map +1 -0
- package/dist/components/Field/field-types.d.ts +5 -0
- package/dist/components/Field/field-types.d.ts.map +1 -0
- package/dist/components/Field/field-types.js +13 -0
- package/dist/components/Field/field-types.js.map +1 -0
- package/dist/components/Field/field-wrapper.d.ts +17 -0
- package/dist/components/Field/field-wrapper.d.ts.map +1 -0
- package/dist/components/Field/field-wrapper.js +252 -0
- package/dist/components/Field/field-wrapper.js.map +1 -0
- package/dist/components/Field/field.d.ts +127 -0
- package/dist/components/Field/field.d.ts.map +1 -0
- package/dist/components/Field/field.js +295 -0
- package/dist/components/Field/field.js.map +1 -0
- package/dist/components/FieldControlGroup/field-control-group.d.ts +74 -0
- package/dist/components/FieldControlGroup/field-control-group.d.ts.map +1 -0
- package/dist/components/FieldControlGroup/field-control-group.js +62 -0
- package/dist/components/FieldControlGroup/field-control-group.js.map +1 -0
- package/dist/components/FileItem/file-item.d.ts +44 -0
- package/dist/components/FileItem/file-item.d.ts.map +1 -0
- package/dist/components/FileItem/file-item.js +202 -0
- package/dist/components/FileItem/file-item.js.map +1 -0
- package/dist/components/FileUpload/file-upload.d.ts +97 -0
- package/dist/components/FileUpload/file-upload.d.ts.map +1 -0
- package/dist/components/FileUpload/file-upload.js +231 -0
- package/dist/components/FileUpload/file-upload.js.map +1 -0
- package/dist/components/FileViewer/file-viewer-types.d.ts +73 -0
- package/dist/components/FileViewer/file-viewer-types.d.ts.map +1 -0
- package/dist/components/FileViewer/file-viewer.d.ts +82 -0
- package/dist/components/FileViewer/file-viewer.d.ts.map +1 -0
- package/dist/components/FileViewer/file-viewer.js +752 -0
- package/dist/components/FileViewer/file-viewer.js.map +1 -0
- package/dist/components/FileViewer/image-renderer.d.ts +9 -0
- package/dist/components/FileViewer/image-renderer.d.ts.map +1 -0
- package/dist/components/FileViewer/image-renderer.js +165 -0
- package/dist/components/FileViewer/image-renderer.js.map +1 -0
- package/dist/components/HoverCard/hover-card.d.ts +30 -0
- package/dist/components/HoverCard/hover-card.d.ts.map +1 -0
- package/dist/components/HoverCard/hover-card.js +61 -0
- package/dist/components/HoverCard/hover-card.js.map +1 -0
- package/dist/components/Input/input.d.ts +72 -0
- package/dist/components/Input/input.d.ts.map +1 -0
- package/dist/components/Input/input.js +148 -0
- package/dist/components/Input/input.js.map +1 -0
- package/dist/components/LinkInput/link-input.d.ts +46 -0
- package/dist/components/LinkInput/link-input.d.ts.map +1 -0
- package/dist/components/LinkInput/link-input.js +215 -0
- package/dist/components/LinkInput/link-input.js.map +1 -0
- package/dist/components/Menu/menu-item.d.ts +83 -0
- package/dist/components/Menu/menu-item.d.ts.map +1 -0
- package/dist/components/Menu/menu-item.js +209 -0
- package/dist/components/Menu/menu-item.js.map +1 -0
- package/dist/components/NameCard/name-card.d.ts +85 -0
- package/dist/components/NameCard/name-card.d.ts.map +1 -0
- package/dist/components/NameCard/name-card.js +153 -0
- package/dist/components/NameCard/name-card.js.map +1 -0
- package/dist/components/Notice/notice.d.ts +69 -0
- package/dist/components/Notice/notice.d.ts.map +1 -0
- package/dist/components/Notice/notice.js +121 -0
- package/dist/components/Notice/notice.js.map +1 -0
- package/dist/components/NumberInput/number-input.d.ts +57 -0
- package/dist/components/NumberInput/number-input.d.ts.map +1 -0
- package/dist/components/NumberInput/number-input.js +131 -0
- package/dist/components/NumberInput/number-input.js.map +1 -0
- package/dist/components/OverflowIndicator/overflow-indicator.d.ts +23 -0
- package/dist/components/OverflowIndicator/overflow-indicator.d.ts.map +1 -0
- package/dist/components/OverflowIndicator/overflow-indicator.js +111 -0
- package/dist/components/OverflowIndicator/overflow-indicator.js.map +1 -0
- package/dist/components/PeoplePicker/avatar-stack-overflow.d.ts +57 -0
- package/dist/components/PeoplePicker/avatar-stack-overflow.d.ts.map +1 -0
- package/dist/components/PeoplePicker/avatar-stack-overflow.js +35 -0
- package/dist/components/PeoplePicker/avatar-stack-overflow.js.map +1 -0
- package/dist/components/PeoplePicker/people-picker-helpers.d.ts +7 -0
- package/dist/components/PeoplePicker/people-picker-helpers.d.ts.map +1 -0
- package/dist/components/PeoplePicker/people-picker-helpers.js +25 -0
- package/dist/components/PeoplePicker/people-picker-helpers.js.map +1 -0
- package/dist/components/PeoplePicker/people-picker.d.ts +77 -0
- package/dist/components/PeoplePicker/people-picker.d.ts.map +1 -0
- package/dist/components/PeoplePicker/people-picker.js +263 -0
- package/dist/components/PeoplePicker/people-picker.js.map +1 -0
- package/dist/components/PeoplePicker/person-display.d.ts +66 -0
- package/dist/components/PeoplePicker/person-display.d.ts.map +1 -0
- package/dist/components/PeoplePicker/person-display.js +203 -0
- package/dist/components/PeoplePicker/person-display.js.map +1 -0
- package/dist/components/Popover/popover.d.ts +50 -0
- package/dist/components/Popover/popover.d.ts.map +1 -0
- package/dist/components/Popover/popover.js +113 -0
- package/dist/components/Popover/popover.js.map +1 -0
- package/dist/components/ProgressBar/progress-bar.d.ts +37 -0
- package/dist/components/ProgressBar/progress-bar.d.ts.map +1 -0
- package/dist/components/ProgressBar/progress-bar.js +86 -0
- package/dist/components/ProgressBar/progress-bar.js.map +1 -0
- package/dist/components/RadioGroup/radio-group.d.ts +78 -0
- package/dist/components/RadioGroup/radio-group.d.ts.map +1 -0
- package/dist/components/RadioGroup/radio-group.js +153 -0
- package/dist/components/RadioGroup/radio-group.js.map +1 -0
- package/dist/components/Rating/rating.d.ts +46 -0
- package/dist/components/Rating/rating.d.ts.map +1 -0
- package/dist/components/Rating/rating.js +179 -0
- package/dist/components/Rating/rating.js.map +1 -0
- package/dist/components/ScrollArea/scroll-area.d.ts +45 -0
- package/dist/components/ScrollArea/scroll-area.d.ts.map +1 -0
- package/dist/components/ScrollArea/scroll-area.js +65 -0
- package/dist/components/ScrollArea/scroll-area.js.map +1 -0
- package/dist/components/SegmentedControl/segmented-control.d.ts +102 -0
- package/dist/components/SegmentedControl/segmented-control.d.ts.map +1 -0
- package/dist/components/SegmentedControl/segmented-control.js +171 -0
- package/dist/components/SegmentedControl/segmented-control.js.map +1 -0
- package/dist/components/Select/select.d.ts +102 -0
- package/dist/components/Select/select.d.ts.map +1 -0
- package/dist/components/Select/select.js +435 -0
- package/dist/components/Select/select.js.map +1 -0
- package/dist/components/SelectMenu/select-menu.d.ts +103 -0
- package/dist/components/SelectMenu/select-menu.d.ts.map +1 -0
- package/dist/components/SelectMenu/select-menu.js +239 -0
- package/dist/components/SelectMenu/select-menu.js.map +1 -0
- package/dist/components/SelectionControl/selection-item.d.ts +69 -0
- package/dist/components/SelectionControl/selection-item.d.ts.map +1 -0
- package/dist/components/SelectionControl/selection-item.js +142 -0
- package/dist/components/SelectionControl/selection-item.js.map +1 -0
- package/dist/components/Separator/separator.d.ts +17 -0
- package/dist/components/Separator/separator.d.ts.map +1 -0
- package/dist/components/Separator/separator.js +39 -0
- package/dist/components/Separator/separator.js.map +1 -0
- package/dist/components/Sheet/sheet.d.ts +56 -0
- package/dist/components/Sheet/sheet.d.ts.map +1 -0
- package/dist/components/Sheet/sheet.js +145 -0
- package/dist/components/Sheet/sheet.js.map +1 -0
- package/dist/components/Sidebar/sidebar.d.ts +195 -0
- package/dist/components/Sidebar/sidebar.d.ts.map +1 -0
- package/dist/components/Sidebar/sidebar.js +826 -0
- package/dist/components/Sidebar/sidebar.js.map +1 -0
- package/dist/components/Skeleton/skeleton.d.ts +16 -0
- package/dist/components/Skeleton/skeleton.d.ts.map +1 -0
- package/dist/components/Skeleton/skeleton.js +30 -0
- package/dist/components/Skeleton/skeleton.js.map +1 -0
- package/dist/components/Slider/slider.d.ts +48 -0
- package/dist/components/Slider/slider.d.ts.map +1 -0
- package/dist/components/Slider/slider.js +108 -0
- package/dist/components/Slider/slider.js.map +1 -0
- package/dist/components/Steps/steps.d.ts +71 -0
- package/dist/components/Steps/steps.d.ts.map +1 -0
- package/dist/components/Steps/steps.js +583 -0
- package/dist/components/Steps/steps.js.map +1 -0
- package/dist/components/Switch/switch.d.ts +112 -0
- package/dist/components/Switch/switch.d.ts.map +1 -0
- package/dist/components/Switch/switch.js +179 -0
- package/dist/components/Switch/switch.js.map +1 -0
- package/dist/components/Tabs/tabs.d.ts +104 -0
- package/dist/components/Tabs/tabs.d.ts.map +1 -0
- package/dist/components/Tabs/tabs.js +316 -0
- package/dist/components/Tabs/tabs.js.map +1 -0
- package/dist/components/Tag/tag.d.ts +86 -0
- package/dist/components/Tag/tag.d.ts.map +1 -0
- package/dist/components/Tag/tag.js +172 -0
- package/dist/components/Tag/tag.js.map +1 -0
- package/dist/components/Textarea/textarea.d.ts +74 -0
- package/dist/components/Textarea/textarea.d.ts.map +1 -0
- package/dist/components/Textarea/textarea.js +224 -0
- package/dist/components/Textarea/textarea.js.map +1 -0
- package/dist/components/TimePicker/time-columns.d.ts +46 -0
- package/dist/components/TimePicker/time-columns.d.ts.map +1 -0
- package/dist/components/TimePicker/time-columns.js +173 -0
- package/dist/components/TimePicker/time-columns.js.map +1 -0
- package/dist/components/TimePicker/time-picker.d.ts +94 -0
- package/dist/components/TimePicker/time-picker.d.ts.map +1 -0
- package/dist/components/TimePicker/time-picker.js +253 -0
- package/dist/components/TimePicker/time-picker.js.map +1 -0
- package/dist/components/Toast/toast.d.ts +61 -0
- package/dist/components/Toast/toast.d.ts.map +1 -0
- package/dist/components/Toast/toast.js +76 -0
- package/dist/components/Toast/toast.js.map +1 -0
- package/dist/components/Tooltip/tooltip.d.ts +20 -0
- package/dist/components/Tooltip/tooltip.d.ts.map +1 -0
- package/dist/components/Tooltip/tooltip.js +53 -0
- package/dist/components/Tooltip/tooltip.js.map +1 -0
- package/dist/components/TreeView/tree-view.d.ts +166 -0
- package/dist/components/TreeView/tree-view.d.ts.map +1 -0
- package/dist/components/TreeView/tree-view.js +617 -0
- package/dist/components/TreeView/tree-view.js.map +1 -0
- package/dist/hooks/use-controllable.d.ts +16 -0
- package/dist/hooks/use-controllable.d.ts.map +1 -0
- package/dist/hooks/use-controllable.js +26 -0
- package/dist/hooks/use-controllable.js.map +1 -0
- package/dist/hooks/use-is-narrow-viewport.d.ts +2 -0
- package/dist/hooks/use-is-narrow-viewport.d.ts.map +1 -0
- package/dist/hooks/use-is-narrow-viewport.js +19 -0
- package/dist/hooks/use-is-narrow-viewport.js.map +1 -0
- package/dist/hooks/use-is-touch-device.d.ts +8 -0
- package/dist/hooks/use-is-touch-device.d.ts.map +1 -0
- package/dist/hooks/use-is-touch-device.js +16 -0
- package/dist/hooks/use-is-touch-device.js.map +1 -0
- package/dist/hooks/use-overflow-items.d.ts +124 -0
- package/dist/hooks/use-overflow-items.d.ts.map +1 -0
- package/dist/hooks/use-overflow-items.js +97 -0
- package/dist/hooks/use-overflow-items.js.map +1 -0
- package/dist/index.d.ts +74 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +371 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/drag-visual.d.ts +158 -0
- package/dist/lib/drag-visual.d.ts.map +1 -0
- package/dist/lib/drag-visual.js +96 -0
- package/dist/lib/drag-visual.js.map +1 -0
- package/dist/lib/i18n/i18n-context.d.ts +105 -0
- package/dist/lib/i18n/i18n-context.d.ts.map +1 -0
- package/dist/lib/multi-select-ordering.d.ts +54 -0
- package/dist/lib/multi-select-ordering.d.ts.map +1 -0
- package/dist/lib/multi-select-ordering.js +13 -0
- package/dist/lib/multi-select-ordering.js.map +1 -0
- package/dist/lib/utils.d.ts +12 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +79 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/patterns/element-anatomy/item-anatomy.d.ts +370 -0
- package/dist/patterns/element-anatomy/item-anatomy.d.ts.map +1 -0
- package/dist/patterns/element-anatomy/item-anatomy.js +272 -0
- package/dist/patterns/element-anatomy/item-anatomy.js.map +1 -0
- package/dist/patterns/header-canonical/chrome-header.d.ts +80 -0
- package/dist/patterns/header-canonical/chrome-header.d.ts.map +1 -0
- package/dist/patterns/header-canonical/chrome-header.js +75 -0
- package/dist/patterns/header-canonical/chrome-header.js.map +1 -0
- package/dist/patterns/horizontal-overflow/horizontal-overflow.d.ts +101 -0
- package/dist/patterns/horizontal-overflow/horizontal-overflow.d.ts.map +1 -0
- package/dist/patterns/horizontal-overflow/horizontal-overflow.js +105 -0
- package/dist/patterns/horizontal-overflow/horizontal-overflow.js.map +1 -0
- package/dist/patterns/overlay-surface/overlay-surface.d.ts +28 -0
- package/dist/patterns/overlay-surface/overlay-surface.d.ts.map +1 -0
- package/dist/patterns/overlay-surface/overlay-surface.js +85 -0
- package/dist/patterns/overlay-surface/overlay-surface.js.map +1 -0
- package/dist/patterns/resize-handle/resize-handle.d.ts +102 -0
- package/dist/patterns/resize-handle/resize-handle.d.ts.map +1 -0
- package/dist/patterns/resize-handle/resize-handle.js +74 -0
- package/dist/patterns/resize-handle/resize-handle.js.map +1 -0
- package/dist/react-day-picker.css +457 -0
- package/dist/stories-helpers/anatomy/anatomy-utils.d.ts +40 -0
- package/dist/stories-helpers/anatomy/anatomy-utils.d.ts.map +1 -0
- package/dist/tokens/elevation/overlay-geometry.d.ts +12 -0
- package/dist/tokens/elevation/overlay-geometry.d.ts.map +1 -0
- package/dist/tokens/elevation/overlay-geometry.js +7 -0
- package/dist/tokens/elevation/overlay-geometry.js.map +1 -0
- package/dist/tokens/motion/motion.d.ts +15 -0
- package/dist/tokens/motion/motion.d.ts.map +1 -0
- package/dist/tokens/motion/motion.js +9 -0
- package/dist/tokens/motion/motion.js.map +1 -0
- package/dist/tokens/uiSize/icon-size.d.ts +53 -0
- package/dist/tokens/uiSize/icon-size.d.ts.map +1 -0
- package/package.json +92 -0
- package/src/README.md +32 -0
- package/src/components/Accordion/accordion.tsx +104 -0
- package/src/components/Alert/alert.tsx +188 -0
- package/src/components/AppShell/_demo-helpers.tsx +198 -0
- package/src/components/AppShell/app-shell.tsx +364 -0
- package/src/components/AspectRatio/aspect-ratio.tsx +58 -0
- package/src/components/Avatar/avatar.tsx +368 -0
- package/src/components/Badge/badge.tsx +104 -0
- package/src/components/Breadcrumb/breadcrumb.tsx +619 -0
- package/src/components/BulkActionBar/bulk-action-bar.tsx +156 -0
- package/src/components/Button/button-group.tsx +96 -0
- package/src/components/Button/button.tsx +539 -0
- package/src/components/Calendar/calendar.tsx +411 -0
- package/src/components/Carousel/carousel.tsx +371 -0
- package/src/components/Chart/chart.tsx +376 -0
- package/src/components/Checkbox/checkbox-group.tsx +94 -0
- package/src/components/Checkbox/checkbox.tsx +237 -0
- package/src/components/Chip/chip.tsx +359 -0
- package/src/components/CircularProgress/circular-progress.tsx +204 -0
- package/src/components/Coachmark/coachmark.tsx +255 -0
- package/src/components/Combobox/combobox.tsx +826 -0
- package/src/components/Command/command.tsx +187 -0
- package/src/components/DataTable/active-editor-controller.ts +72 -0
- package/src/components/DataTable/cell-registry.tsx +520 -0
- package/src/components/DataTable/column-types.ts +180 -0
- package/src/components/DataTable/data-table-column-visibility-panel.tsx +261 -0
- package/src/components/DataTable/data-table-filter-panel.tsx +813 -0
- package/src/components/DataTable/data-table-interaction-layer.tsx +483 -0
- package/src/components/DataTable/data-table-sort-manager.tsx +210 -0
- package/src/components/DataTable/data-table.css +165 -0
- package/src/components/DataTable/data-table.tsx +2924 -0
- package/src/components/DataTable/filter-operators.ts +225 -0
- package/src/components/DataTable/filter-tree.ts +313 -0
- package/src/components/DataTable/lib/column-meta.ts +79 -0
- package/src/components/DateGrid/date-grid.tsx +209 -0
- package/src/components/DatePicker/date-picker.tsx +1114 -0
- package/src/components/DescriptionList/description-list.tsx +141 -0
- package/src/components/Dialog/dialog.tsx +267 -0
- package/src/components/DropdownMenu/dropdown-menu.tsx +475 -0
- package/src/components/Empty/empty.tsx +108 -0
- package/src/components/Field/field-context.ts +136 -0
- package/src/components/Field/field-types.ts +52 -0
- package/src/components/Field/field-wrapper.tsx +348 -0
- package/src/components/Field/field.tsx +535 -0
- package/src/components/FieldControlGroup/field-control-group.tsx +136 -0
- package/src/components/FileItem/file-item.tsx +322 -0
- package/src/components/FileUpload/file-upload.tsx +326 -0
- package/src/components/FileViewer/file-viewer-types.ts +76 -0
- package/src/components/FileViewer/file-viewer.tsx +1065 -0
- package/src/components/FileViewer/image-renderer.tsx +256 -0
- package/src/components/HoverCard/hover-card.tsx +79 -0
- package/src/components/Input/input.tsx +233 -0
- package/src/components/LinkInput/link-input.tsx +304 -0
- package/src/components/Menu/menu-item.tsx +334 -0
- package/src/components/NameCard/name-card.tsx +319 -0
- package/src/components/Notice/notice.tsx +196 -0
- package/src/components/NumberInput/number-input.tsx +203 -0
- package/src/components/OverflowIndicator/overflow-indicator.tsx +156 -0
- package/src/components/PeoplePicker/avatar-stack-overflow.ts +100 -0
- package/src/components/PeoplePicker/people-picker-helpers.ts +76 -0
- package/src/components/PeoplePicker/people-picker.tsx +455 -0
- package/src/components/PeoplePicker/person-display.tsx +358 -0
- package/src/components/Popover/popover.tsx +183 -0
- package/src/components/ProgressBar/progress-bar.tsx +157 -0
- package/src/components/README.md +58 -0
- package/src/components/RadioGroup/radio-group.tsx +261 -0
- package/src/components/Rating/rating.tsx +295 -0
- package/src/components/ScrollArea/scroll-area.tsx +110 -0
- package/src/components/SegmentedControl/segmented-control.tsx +304 -0
- package/src/components/Select/select.tsx +658 -0
- package/src/components/SelectMenu/select-menu.tsx +430 -0
- package/src/components/SelectionControl/selection-item.tsx +261 -0
- package/src/components/Separator/separator.tsx +48 -0
- package/src/components/Sheet/sheet.tsx +240 -0
- package/src/components/Sidebar/sidebar.tsx +1280 -0
- package/src/components/Skeleton/skeleton.tsx +35 -0
- package/src/components/Slider/slider.tsx +158 -0
- package/src/components/Steps/steps.tsx +850 -0
- package/src/components/Switch/switch.tsx +285 -0
- package/src/components/Tabs/tabs.tsx +515 -0
- package/src/components/Tag/tag.tsx +246 -0
- package/src/components/Textarea/textarea.tsx +280 -0
- package/src/components/TimePicker/time-columns.tsx +260 -0
- package/src/components/TimePicker/time-picker.tsx +419 -0
- package/src/components/Toast/toast.tsx +129 -0
- package/src/components/Tooltip/tooltip.tsx +68 -0
- package/src/components/TreeView/tree-view.tsx +1031 -0
- package/src/hooks/use-controllable.ts +40 -0
- package/src/hooks/use-is-narrow-viewport.ts +19 -0
- package/src/hooks/use-is-touch-device.ts +21 -0
- package/src/hooks/use-overflow-items.ts +256 -0
- package/src/index.ts +85 -0
- package/src/lib/README.md +82 -0
- package/src/lib/drag-visual.ts +272 -0
- package/src/lib/i18n/README.md +60 -0
- package/src/lib/i18n/i18n-context.tsx +129 -0
- package/src/lib/multi-select-ordering.ts +61 -0
- package/src/lib/utils.ts +93 -0
- package/src/patterns/README.md +67 -0
- package/src/patterns/element-anatomy/item-anatomy.tsx +744 -0
- package/src/patterns/header-canonical/chrome-header.tsx +175 -0
- package/src/patterns/header-canonical/header-canonical.css +27 -0
- package/src/patterns/horizontal-overflow/horizontal-overflow.tsx +217 -0
- package/src/patterns/overlay-surface/overlay-surface.tsx +191 -0
- package/src/patterns/resize-handle/resize-handle.tsx +188 -0
- package/src/stories-helpers/anatomy/anatomy-utils.tsx +64 -0
- package/src/styles/preset.css +31 -0
- package/src/styles/tokens.css +35 -0
- package/src/tokens/README.md +53 -0
- package/src/tokens/color/primitives.css +429 -0
- package/src/tokens/color/semantic.css +539 -0
- package/src/tokens/elevation/overlay-geometry.ts +13 -0
- package/src/tokens/layoutSpace/layoutSpace.css +36 -0
- package/src/tokens/motion/motion.css +30 -0
- package/src/tokens/motion/motion.ts +17 -0
- package/src/tokens/opacity/opacity.css +23 -0
- package/src/tokens/radius/radius.css +19 -0
- package/src/tokens/typography/typography.css +118 -0
- package/src/tokens/uiSize/icon-size.ts +52 -0
- package/src/tokens/uiSize/uiSize.css +125 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cn } from "../../lib/utils.js";
|
|
4
|
+
import { Popover, PopoverTrigger, PopoverContent, PopoverHeader, PopoverTitle, PopoverBody, PopoverFooter } from "../Popover/popover.js";
|
|
5
|
+
import { Button } from "../Button/button.js";
|
|
6
|
+
import { AspectRatio } from "../AspectRatio/aspect-ratio.js";
|
|
7
|
+
import { OVERLAY_SIDE_OFFSET } from "../../tokens/elevation/overlay-geometry.js";
|
|
8
|
+
const KIND_TITLE = {
|
|
9
|
+
tips: "使用技巧",
|
|
10
|
+
"new-features": "新功能介紹"
|
|
11
|
+
};
|
|
12
|
+
const Coachmark = React.forwardRef(
|
|
13
|
+
({
|
|
14
|
+
open,
|
|
15
|
+
defaultOpen,
|
|
16
|
+
onOpenChange,
|
|
17
|
+
children,
|
|
18
|
+
image,
|
|
19
|
+
mediaRatio = 16 / 9,
|
|
20
|
+
kind,
|
|
21
|
+
title,
|
|
22
|
+
description,
|
|
23
|
+
step,
|
|
24
|
+
onSkip,
|
|
25
|
+
onNext,
|
|
26
|
+
onPrev,
|
|
27
|
+
isLastStep = false,
|
|
28
|
+
doneLabel = "知道了",
|
|
29
|
+
// i18n-allow: DS default; consumer override via doneLabel prop
|
|
30
|
+
side = "bottom",
|
|
31
|
+
align = "center",
|
|
32
|
+
sideOffset = OVERLAY_SIDE_OFFSET,
|
|
33
|
+
className,
|
|
34
|
+
...props
|
|
35
|
+
}, ref) => {
|
|
36
|
+
const isSingleStep = isLastStep && !onPrev;
|
|
37
|
+
const showSkip = Boolean(onSkip) && !onPrev;
|
|
38
|
+
const nextLabel = isSingleStep ? doneLabel : isLastStep ? "Done" : "Next";
|
|
39
|
+
const hasFooterContent = Boolean(step || showSkip || onNext || onPrev);
|
|
40
|
+
const stepText = step ? `${step.current} of ${step.total}` : null;
|
|
41
|
+
const headerTitle = kind === "tips" || kind === "new-features" ? KIND_TITLE[kind] : kind;
|
|
42
|
+
return /* @__PURE__ */ jsxs(Popover, { open, defaultOpen, onOpenChange, children: [
|
|
43
|
+
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children }),
|
|
44
|
+
/* @__PURE__ */ jsxs(
|
|
45
|
+
PopoverContent,
|
|
46
|
+
{
|
|
47
|
+
ref,
|
|
48
|
+
side,
|
|
49
|
+
align,
|
|
50
|
+
sideOffset,
|
|
51
|
+
className: cn("w-80 p-0 overflow-hidden", className),
|
|
52
|
+
onOpenAutoFocus: (e) => e.preventDefault(),
|
|
53
|
+
...props,
|
|
54
|
+
children: [
|
|
55
|
+
headerTitle && // Header title 走 `<PopoverTitle>` 共用 Popover typography canonical(text-body font-medium)。
|
|
56
|
+
// **不 hideClose** — 對齊 Popover / Dialog / 所有 overlay 家族 canonical:header 必有 dismiss X
|
|
57
|
+
// (user 可隨時關閉,跟 Skip / Done 是不同入口,canonical 重複不冗)
|
|
58
|
+
/* @__PURE__ */ jsx(PopoverHeader, { children: /* @__PURE__ */ jsx(PopoverTitle, { children: headerTitle }) }),
|
|
59
|
+
image && /* @__PURE__ */ jsx(AspectRatio, { ratio: mediaRatio, className: "w-full overflow-hidden bg-muted", children: image }),
|
|
60
|
+
(title || description) && // 對齊 Dialog / Popover canonical:body 左對齊(不中置)
|
|
61
|
+
// Why: Coachmark 雖是 onboarding / feature discovery,但文字可讀性 > 視覺焦點;
|
|
62
|
+
// 中文 / 長句中置會「每行起點不同」造成閱讀鋸齒,左對齊最穩。
|
|
63
|
+
// 世界級參考:Notion / Linear / Figma onboarding tour 皆左對齊;Intercom Messenger 亦如是。
|
|
64
|
+
/* @__PURE__ */ jsxs(PopoverBody, { className: "flex flex-col", children: [
|
|
65
|
+
title && /* @__PURE__ */ jsx("h3", { className: "text-body-lg font-medium text-foreground", children: title }),
|
|
66
|
+
description && // title(body-lg 16)+ desc(body 14)→ reading-lg token(label tier 決定)
|
|
67
|
+
// 對齊 Dialog / Sheet canonical;移除原 gap-1(4px)drift
|
|
68
|
+
/* @__PURE__ */ jsx("p", { className: "mt-[var(--item-gap-label-desc-reading-lg)] text-body text-fg-secondary", children: description })
|
|
69
|
+
] }),
|
|
70
|
+
hasFooterContent && // 專屬 Coachmark canonical:footer 無上方分隔線(media + body + footer 視覺一氣呵成,
|
|
71
|
+
// 不像 Dialog 需要 header/footer 分隔強化結構)。override SurfaceFooter default border-t
|
|
72
|
+
/* @__PURE__ */ jsxs(PopoverFooter, { className: "justify-between !border-t-0", children: [
|
|
73
|
+
stepText ? (
|
|
74
|
+
// step 文字走 text-body 跟 body content 字體一致
|
|
75
|
+
/* @__PURE__ */ jsx("span", { className: "text-body text-fg-secondary tabular-nums", children: stepText })
|
|
76
|
+
) : /* @__PURE__ */ jsx("span", { "aria-hidden": true }),
|
|
77
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
78
|
+
onPrev && /* @__PURE__ */ jsx(Button, { variant: "tertiary", size: "sm", onClick: onPrev, children: "Previous" }),
|
|
79
|
+
showSkip && /* @__PURE__ */ jsx(Button, { variant: "tertiary", size: "sm", onClick: onSkip, children: "Skip" }),
|
|
80
|
+
onNext && /* @__PURE__ */ jsx(Button, { variant: "primary", size: "sm", onClick: onNext, children: nextLabel })
|
|
81
|
+
] })
|
|
82
|
+
] })
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
)
|
|
86
|
+
] });
|
|
87
|
+
}
|
|
88
|
+
);
|
|
89
|
+
Coachmark.displayName = "Coachmark";
|
|
90
|
+
const coachmarkMeta = {
|
|
91
|
+
component: "Coachmark",
|
|
92
|
+
family: null,
|
|
93
|
+
// non-family composite / overlay / layout
|
|
94
|
+
variants: {},
|
|
95
|
+
sizes: {},
|
|
96
|
+
states: ["default", "hover", "active", "focus-visible", "disabled"],
|
|
97
|
+
tokens: {
|
|
98
|
+
bg: ["bg-muted"],
|
|
99
|
+
fg: ["text-fg-secondary", "text-foreground"],
|
|
100
|
+
ring: []
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
export {
|
|
104
|
+
Coachmark,
|
|
105
|
+
coachmarkMeta
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=coachmark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coachmark.js","sources":["../../../src/components/Coachmark/coachmark.tsx"],"sourcesContent":["// @benchmark-unverified-blanket: file-level retraction per M22 (d) — claims herein not individually URL-cited; treat as unverified visual/usage rumor unless retrofit per-claim. Hook escape preserved.\nimport * as React from 'react'\nimport { cn } from '@/lib/utils'\nimport {\n Popover,\n PopoverTrigger,\n PopoverContent,\n PopoverBody,\n PopoverFooter,\n PopoverHeader,\n PopoverTitle,\n} from '@/design-system/components/Popover/popover'\nimport { Button } from '@/design-system/components/Button/button'\nimport { AspectRatio } from '@/design-system/components/AspectRatio/aspect-ratio'\nimport { OVERLAY_SIDE_OFFSET } from '@/design-system/tokens/elevation/overlay-geometry'\n\n/**\n * Coachmark — 功能介紹 / onboarding tour 的浮層卡片\n *\n * 世界級對照:Apple HIG「Coachmark」(Apple 命名原處)/ Material「Feature Discovery」/\n * Ant Design `<Tour>` / Shepherd.js / react-joyride / Intercom Product Tours。\n *\n * 本元件 = **Popover 的 composition pattern**,consume 相同 overlay-surface SSOT:\n * - Header(可選,多步驟建議傳 `kind=\"tips\" | \"new-features\" | 自訂 title`,\n * single-step 預設無 header 避免視覺過重)\n * - Media 區(圖 / 截圖 / illustration,full-width 邊緣對齊,由 AspectRatio 管比例)\n * - Body(SurfaceBody padding):title + description 左對齊\n * - Footer(SurfaceFooter padding,但 justify-between):step 計數左 / actions 右\n *\n * ── 單 vs 多步驟 canonical(世界級行為規則) ──\n * 1. **Single step**(無 `onPrev` 且 `isLastStep`):CTA 文字 = `doneLabel ?? '知道了'`\n * (Apple HIG / Intercom 慣例;不用 \"Next\" 因為沒有下一步)\n * 2. **Multi step 第一步**(無 `onPrev`,有 `onNext`):CTA = \"Next\",Skip 顯示\n * 3. **Multi step 中間 / 最後步**(有 `onPrev`):**Skip 不顯示**(使用者已投入進度,\n * 再給 Skip 會讓「放棄」入口與「回上一步」衝突 — Linear / Pendo / Shepherd.js\n * 同樣規則)。CTA = `isLastStep ? 'Done' : 'Next'`\n * 4. **不強制 autoFocus 任何按鈕** — Radix Popover 預設 focus 第一個 focusable\n * (通常是 Prev 或 Skip),本元件不額外拉焦點到 Next,避免使用者以為一按 Enter\n * 就會推進(實際上可能還在讀 body)。想推進者 tab 到 Next 再 Enter。\n *\n * ── 為什麼 Body+Footer 消費 overlay-surface ──\n * 避免 padding token 漂移:Dialog / Popover / Coachmark 三者共用同一套 Header/Body/Footer\n * padding(px-loose / py-tight),改 Dialog 就三邊自動跟進。\n */\n\ninterface CoachmarkStep {\n current: number\n total: number\n}\n\nexport interface CoachmarkProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'title'> {\n /** 控制顯示(controlled mode)*/\n open?: boolean\n /** 預設打開(uncontrolled initial state)— 2026-05-15 audit Dim 26 V1 fix per user verbatim「A:1」approval */\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n /** 觸發 anchor 元素。通常傳 trigger element;Coachmark 浮層會定位於此 */\n children: React.ReactNode\n /** 頂部 media 區(圖片 / illustration / video 等);不傳則無 media */\n image?: React.ReactNode\n /**\n * Media 區域的長寬比(ratio = 寬 / 高)。預設 `16/9`(onboarding feature tour\n * 世界級 convention — Intercom / Pendo / Shepherd.js)。其他常用:`4/3` 產品截圖 /\n * `1/1` 方圖 / `3/4` 直式 portrait。消費獨立的 `AspectRatio` primitive 元件。\n */\n mediaRatio?: number\n /**\n * 頂部 header 類型(多步驟 tour 建議傳)。\n * - `'tips'` → header title = \"使用技巧\"\n * - `'new-features'` → header title = \"新功能介紹\"\n * - `ReactNode` → 自訂 title(string / JSX)\n * - undefined → 無 header(單步驟常用)\n */\n kind?: 'tips' | 'new-features' | React.ReactNode\n /** 標題(bold) */\n title?: React.ReactNode\n /** 說明文字(normal weight,多行 OK) */\n description?: React.ReactNode\n /** 步驟計數(2 of 3);若需多步導覽 consumer 自行管理 current */\n step?: CoachmarkStep\n /** Skip 按鈕 callback;不傳則不顯示 Skip。多步驟中間 / 最後步自動隱藏(有 onPrev 時) */\n onSkip?: () => void\n /** Next 按鈕 callback;不傳則不顯示 Next */\n onNext?: () => void\n /** Previous 按鈕 callback(多步 tour 第 2+ 步顯示);不傳則不顯示 */\n onPrev?: () => void\n /**\n * 最後一步 flag。影響 primary CTA 文字:\n * - single step(無 onPrev 且 isLastStep):CTA = `doneLabel ?? '知道了'`\n * - multi-step 最後步(有 onPrev 且 isLastStep):CTA = 'Done'\n * - 其他:CTA = 'Next'\n */\n isLastStep?: boolean\n /** 自訂單步驟完成 CTA 文字(預設 `'知道了'`)。僅 single-step 使用 */\n doneLabel?: string\n /** 浮層定位(對齊 Popover props) */\n side?: 'top' | 'right' | 'bottom' | 'left'\n align?: 'start' | 'center' | 'end'\n sideOffset?: number\n /** 外殼寬度(預設 w-80 = 320px,比一般 Popover 寬,因要放 media + 文字) */\n className?: string\n}\n\n// i18n-allow: DS-internal kind → title 預設對照表;consumer 透過 `title` prop 直接覆寫\nconst KIND_TITLE: Record<'tips' | 'new-features', string> = {\n tips: '使用技巧',\n 'new-features': '新功能介紹',\n}\n\n// code-quality-allow: long-function — foundational composite main body — 拆 sub-fn 會複雜化 local state / ref / context binding\nconst Coachmark = React.forwardRef<HTMLDivElement, CoachmarkProps>(\n (\n {\n open,\n defaultOpen,\n onOpenChange,\n children,\n image,\n mediaRatio = 16 / 9,\n kind,\n title,\n description,\n step,\n onSkip,\n onNext,\n onPrev,\n isLastStep = false,\n doneLabel = '知道了', // i18n-allow: DS default; consumer override via doneLabel prop\n side = 'bottom',\n align = 'center',\n sideOffset = OVERLAY_SIDE_OFFSET,\n className,\n ...props\n },\n ref,\n ) => {\n // 單/多步驟行為推導\n const isSingleStep = isLastStep && !onPrev\n const showSkip = Boolean(onSkip) && !onPrev // canonical:有 onPrev → 不顯示 Skip\n const nextLabel = isSingleStep ? doneLabel : isLastStep ? 'Done' : 'Next'\n\n const hasFooterContent = Boolean(step || showSkip || onNext || onPrev)\n const stepText = step ? `${step.current} of ${step.total}` : null\n\n // Header title 解析\n const headerTitle =\n kind === 'tips' || kind === 'new-features'\n ? KIND_TITLE[kind as 'tips' | 'new-features']\n : kind\n\n return (\n <Popover open={open} defaultOpen={defaultOpen} onOpenChange={onOpenChange}>\n <PopoverTrigger asChild>{children}</PopoverTrigger>\n <PopoverContent\n ref={ref}\n side={side}\n align={align}\n sideOffset={sideOffset}\n className={cn('w-80 p-0 overflow-hidden', className)}\n // 禁止 Radix 開啟時自動 focus 第一個 focusable(預設會 focus Prev / Skip / Next),\n // Coachmark 的 CTA 不該被 auto-focus 偷觸發(user 可能還在讀 body,按 Enter 就推進)。\n // 想推進的 user 自己 tab 到 CTA 即可。\n onOpenAutoFocus={(e) => e.preventDefault()}\n {...props}\n >\n {headerTitle && (\n // Header title 走 `<PopoverTitle>` 共用 Popover typography canonical(text-body font-medium)。\n // **不 hideClose** — 對齊 Popover / Dialog / 所有 overlay 家族 canonical:header 必有 dismiss X\n // (user 可隨時關閉,跟 Skip / Done 是不同入口,canonical 重複不冗)\n <PopoverHeader>\n <PopoverTitle>{headerTitle}</PopoverTitle>\n </PopoverHeader>\n )}\n\n {image && (\n <AspectRatio ratio={mediaRatio} className=\"w-full overflow-hidden bg-muted\">\n {image}\n </AspectRatio>\n )}\n\n {(title || description) && (\n // 對齊 Dialog / Popover canonical:body 左對齊(不中置)\n // Why: Coachmark 雖是 onboarding / feature discovery,但文字可讀性 > 視覺焦點;\n // 中文 / 長句中置會「每行起點不同」造成閱讀鋸齒,左對齊最穩。\n // 世界級參考:Notion / Linear / Figma onboarding tour 皆左對齊;Intercom Messenger 亦如是。\n <PopoverBody className=\"flex flex-col\">\n {title && (\n <h3 className=\"text-body-lg font-medium text-foreground\">{title}</h3>\n )}\n {description && (\n // title(body-lg 16)+ desc(body 14)→ reading-lg token(label tier 決定)\n // 對齊 Dialog / Sheet canonical;移除原 gap-1(4px)drift\n <p className=\"mt-[var(--item-gap-label-desc-reading-lg)] text-body text-fg-secondary\">{description}</p>\n )}\n </PopoverBody>\n )}\n\n {hasFooterContent && (\n // 專屬 Coachmark canonical:footer 無上方分隔線(media + body + footer 視覺一氣呵成,\n // 不像 Dialog 需要 header/footer 分隔強化結構)。override SurfaceFooter default border-t\n <PopoverFooter className=\"justify-between !border-t-0\">\n {stepText ? (\n // step 文字走 text-body 跟 body content 字體一致\n <span className=\"text-body text-fg-secondary tabular-nums\">\n {stepText}\n </span>\n ) : (\n <span aria-hidden /> /* 保持 justify-between space */\n )}\n <div className=\"flex items-center gap-2\">\n {onPrev && (\n <Button variant=\"tertiary\" size=\"sm\" onClick={onPrev}>\n Previous\n </Button>\n )}\n {showSkip && (\n <Button variant=\"tertiary\" size=\"sm\" onClick={onSkip}>\n Skip\n </Button>\n )}\n {onNext && (\n <Button variant=\"primary\" size=\"sm\" onClick={onNext}>\n {nextLabel}\n </Button>\n )}\n </div>\n </PopoverFooter>\n )}\n </PopoverContent>\n </Popover>\n )\n },\n)\nCoachmark.displayName = 'Coachmark'\n\n// Story auto-compile metadata — Phase 1 mechanical migration(2026-04-24)\n// Phase 2 fill needed: purpose descriptions + when rationale + world-class refs\nexport const coachmarkMeta = {\n component: 'Coachmark',\n family: null, // non-family composite / overlay / layout\n variants: {\n\n },\n sizes: {\n\n },\n states: ['default', 'hover', 'active', 'focus-visible', 'disabled'],\n tokens: {\n bg: ['bg-muted'],\n fg: ['text-fg-secondary', 'text-foreground'],\n ring: [],\n },\n} as const\n\nexport { Coachmark }\n"],"names":[],"mappings":";;;;;;;AAwGA,MAAM,aAAsD;AAAA,EAC1D,MAAM;AAAA,EACN,gBAAgB;AAClB;AAGA,MAAM,YAAY,MAAM;AAAA,EACtB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,KAAK;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa;AAAA,IACb,YAAY;AAAA;AAAA,IACZ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,aAAa;AAAA,IACb;AAAA,IACA,GAAG;AAAA,EAAA,GAEL,QACG;AAEH,UAAM,eAAe,cAAc,CAAC;AACpC,UAAM,WAAW,QAAQ,MAAM,KAAK,CAAC;AACrC,UAAM,YAAY,eAAe,YAAY,aAAa,SAAS;AAEnE,UAAM,mBAAmB,QAAQ,QAAQ,YAAY,UAAU,MAAM;AACrE,UAAM,WAAW,OAAO,GAAG,KAAK,OAAO,OAAO,KAAK,KAAK,KAAK;AAG7D,UAAM,cACJ,SAAS,UAAU,SAAS,iBACxB,WAAW,IAA+B,IAC1C;AAEN,WACE,qBAAC,SAAA,EAAQ,MAAY,aAA0B,cAC7C,UAAA;AAAA,MAAA,oBAAC,gBAAA,EAAe,SAAO,MAAE,SAAA,CAAS;AAAA,MAClC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,WAAW,GAAG,4BAA4B,SAAS;AAAA,UAInD,iBAAiB,CAAC,MAAM,EAAE,eAAA;AAAA,UACzB,GAAG;AAAA,UAEH,UAAA;AAAA,YAAA;AAAA;AAAA;AAAA,YAIC,oBAAC,eAAA,EACC,UAAA,oBAAC,cAAA,EAAc,uBAAY,GAC7B;AAAA,YAGD,SACC,oBAAC,aAAA,EAAY,OAAO,YAAY,WAAU,mCACvC,UAAA,OACH;AAAA,aAGA,SAAS;AAAA;AAAA;AAAA;AAAA,YAKT,qBAAC,aAAA,EAAY,WAAU,iBACpB,UAAA;AAAA,cAAA,SACC,oBAAC,MAAA,EAAG,WAAU,4CAA4C,UAAA,OAAM;AAAA,cAEjE;AAAA;AAAA,cAGC,oBAAC,KAAA,EAAE,WAAU,0EAA0E,UAAA,YAAA,CAAY;AAAA,YAAA,GAEvG;AAAA,YAGD;AAAA;AAAA,YAGC,qBAAC,eAAA,EAAc,WAAU,+BACtB,UAAA;AAAA,cAAA;AAAA;AAAA,gBAEC,oBAAC,QAAA,EAAK,WAAU,4CACb,UAAA,SAAA,CACH;AAAA,kBAEA,oBAAC,QAAA,EAAK,eAAW,KAAA,CAAC;AAAA,cAEpB,qBAAC,OAAA,EAAI,WAAU,2BACZ,UAAA;AAAA,gBAAA,UACC,oBAAC,UAAO,SAAQ,YAAW,MAAK,MAAK,SAAS,QAAQ,UAAA,WAAA,CAEtD;AAAA,gBAED,gCACE,QAAA,EAAO,SAAQ,YAAW,MAAK,MAAK,SAAS,QAAQ,UAAA,OAAA,CAEtD;AAAA,gBAED,8BACE,QAAA,EAAO,SAAQ,WAAU,MAAK,MAAK,SAAS,QAC1C,UAAA,UAAA,CACH;AAAA,cAAA,EAAA,CAEJ;AAAA,YAAA,EAAA,CACF;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ,GACF;AAAA,EAEJ;AACF;AACA,UAAU,cAAc;AAIjB,MAAM,gBAAgB;AAAA,EAC3B,WAAW;AAAA,EACX,QAAQ;AAAA;AAAA,EACR,UAAU,CAAA;AAAA,EAGV,OAAO,CAAA;AAAA,EAGP,QAAQ,CAAC,WAAW,SAAS,UAAU,iBAAiB,UAAU;AAAA,EAClE,QAAQ;AAAA,IACN,IAAI,CAAC,UAAU;AAAA,IACf,IAAI,CAAC,qBAAqB,iBAAiB;AAAA,IAC3C,MAAM,CAAA;AAAA,EAAC;AAEX;"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { FieldMode, FieldVariant } from '../../components/Field/field-types';
|
|
3
|
+
import { type SelectMenuOption } from '../../components/SelectMenu/select-menu';
|
|
4
|
+
/**
|
|
5
|
+
* Combobox option schema(2026-05-10 post-Issue-4 audit unify):**explicit extends
|
|
6
|
+
* SelectMenuOption(primitive SSOT)** — 避免重蹈先前 PeoplePicker 改壞的 wrapper schema drift。
|
|
7
|
+
*
|
|
8
|
+
* Why `extends SelectMenuOption`(per user 「全盤檢查避免下次又改壞或是偏移」要求):
|
|
9
|
+
* 原 `interface SelectOption { value: string; label: string }` 是 weak schema,跟 Select 的
|
|
10
|
+
* `SelectOption`(同名)雙重宣告但欄位不同 → TypeScript 不抓(同名 interface 在不同 file
|
|
11
|
+
* 各 export,consumer import 到哪個版本看 import path)→ schema drift。
|
|
12
|
+
* PeoplePicker multi-mode 走 Combobox 路徑,dropdown menu rows lose avatar / description —
|
|
13
|
+
* user 看到「single mode 有 avatar / multi mode 沒 avatar」inconsistency。
|
|
14
|
+
*
|
|
15
|
+
* Fix(post-Issue-4 follow-up):extend SelectMenuOption → 全 primitive surface 自動繼承。
|
|
16
|
+
* Wrapper-only field 都沒有 → empty body interface(future 加 wrapper-only field 加在此處)。
|
|
17
|
+
* `menuOptions` mapping(below)forward 全 SelectMenuOption surface。
|
|
18
|
+
*
|
|
19
|
+
* 對齊 Polaris ChoiceList / Material Autocomplete / Carbon Dropdown 的 wrapper-vs-primitive
|
|
20
|
+
* schema-extension idiom。Hook `check_wrapper_primitive_schema_drift.sh`(M30 機械強制)。
|
|
21
|
+
*/
|
|
22
|
+
export interface SelectOption extends SelectMenuOption {
|
|
23
|
+
}
|
|
24
|
+
type ComboboxOverflowShape = 'circle' | 'tag';
|
|
25
|
+
export interface ComboboxProps {
|
|
26
|
+
mode?: FieldMode;
|
|
27
|
+
/** Field chrome variant. Default = context.variant ?? 'default'. Per-prop override. */
|
|
28
|
+
variant?: FieldVariant;
|
|
29
|
+
error?: boolean;
|
|
30
|
+
size?: 'sm' | 'md' | 'lg';
|
|
31
|
+
options: SelectOption[];
|
|
32
|
+
value?: string[];
|
|
33
|
+
onChange?: (value: string[]) => void;
|
|
34
|
+
placeholder?: string;
|
|
35
|
+
className?: string;
|
|
36
|
+
disabled?: boolean;
|
|
37
|
+
wrap?: boolean;
|
|
38
|
+
clearable?: boolean;
|
|
39
|
+
/** 啟用搜尋 */
|
|
40
|
+
searchable?: boolean;
|
|
41
|
+
/** Loading state(2026-05-15 audit B fix per user verbatim「dropdown 隨時可開,讀取在 panel 中間 CircularProgress」)。
|
|
42
|
+
* Forward 給 SelectMenu primitive SSOT;dropdown 開啟時取代 options 顯 CircularProgress + loadingText。
|
|
43
|
+
* Trigger 不變(user 隨時可開)。對齊 MUI Autocomplete `loadingText` + Field SSOT + Empty 元件 compose。*/
|
|
44
|
+
loading?: boolean;
|
|
45
|
+
/** 搜尋框位置:menu(浮層內,預設)或 trigger(inline input) */
|
|
46
|
+
searchIn?: 'menu' | 'trigger';
|
|
47
|
+
/** 搜尋框 placeholder(未有選項時顯示)。Default: 「搜尋…」 */
|
|
48
|
+
searchPlaceholder?: string;
|
|
49
|
+
/** 搜尋框 ARIA label。Default: 「搜尋選項」 */
|
|
50
|
+
searchAriaLabel?: string;
|
|
51
|
+
/** Empty-selection placeholder text。Default: 「選擇…」 */
|
|
52
|
+
emptyPlaceholder?: string;
|
|
53
|
+
/** a11y:無 Field wrapper 時提供 role='combobox' 的 accessible name(axe aria-input-field-name) */
|
|
54
|
+
'aria-label'?: string;
|
|
55
|
+
/** Initial open state(uncontrolled)— 對齊 Select.defaultOpen / Radix Popover canonical。
|
|
56
|
+
* DataTable cell-as-input 1-step open 用 */
|
|
57
|
+
defaultOpen?: boolean;
|
|
58
|
+
/** open state 變更 callback。DataTable cell-as-input 用:open=false → cell exit edit */
|
|
59
|
+
onOpenChange?: (open: boolean) => void;
|
|
60
|
+
/**
|
|
61
|
+
* Selected tag pill 客製 render(2026-05-07 v15.5)。
|
|
62
|
+
*
|
|
63
|
+
* 設了 → 每個 selected tag pill 走 consumer 提供的 ReactNode(收 item={value, label}
|
|
64
|
+
* + onRemove,consumer 自己組 onDismiss);沒設 → 走預設 `<Tag>` text-only pill。
|
|
65
|
+
*
|
|
66
|
+
* 用例:PeoplePicker(multi)用此 slot 把 selected tag 換成 avatar + name pill,而非
|
|
67
|
+
* 純文字 Tag。對齊 PeoplePicker = Combobox wrapper SSOT。
|
|
68
|
+
*/
|
|
69
|
+
tagRenderer?: (item: {
|
|
70
|
+
value: string;
|
|
71
|
+
label: string;
|
|
72
|
+
}, onRemove: () => void) => React.ReactNode;
|
|
73
|
+
/**
|
|
74
|
+
* 2026-05-14 I4 fix:Optional renderer for hidden items in `+N` overflow popover
|
|
75
|
+
* (對齊 display MultiPersonDisplay overflow popover 含 avatar SSOT)。PeoplePicker stack
|
|
76
|
+
* pass 此 prop 讓 hidden items 顯 avatar + name(同 display path)。Default fallback
|
|
77
|
+
* `<Tag>{label}</Tag>` 純文字 backward-compat。
|
|
78
|
+
*/
|
|
79
|
+
renderHiddenTag?: (item: {
|
|
80
|
+
value: string;
|
|
81
|
+
label: string;
|
|
82
|
+
}) => React.ReactNode;
|
|
83
|
+
/**
|
|
84
|
+
* Optional class merged into each tag's outer measurement wrapper (2026-05-07 v15.13)。
|
|
85
|
+
* Stack avatar 模式用此 hook point 達成 sibling-level overlap (`-ml-0.5`) + group selector
|
|
86
|
+
* (`group/avatar`)— 既保留 Combobox 必要 measurement wrapper,又讓 dismiss/overlap 視覺生效。
|
|
87
|
+
*/
|
|
88
|
+
tagWrapperClassName?: string;
|
|
89
|
+
/** 2026-05-16:overflow chip wrapper 套此 class(對齊 tagWrapperClassName)。Stack 模式
|
|
90
|
+
* pass `-ml-0.5 first:ml-0` 讓 chip 跟 avatar 同 overlap step,物理上 chip = 1 個 slot 不
|
|
91
|
+
* 外加 24px。Default undefined = chip 不 overlap(text-tag mode 等)。*/
|
|
92
|
+
overflowWrapperClassName?: string;
|
|
93
|
+
/**
|
|
94
|
+
* Tag area gap in px (2026-05-07 v15.13)。預設 4(pill mode 標準 spacing)。
|
|
95
|
+
* Stack avatar 模式傳 0,讓 `tagWrapperClassName` 的 `-ml-0.5` negative margin 生效
|
|
96
|
+
* (CSS `gap` 套在 flex container 上會強制 sibling spacing,蓋過 negative margin)。
|
|
97
|
+
* **Q2 known tradeoff**:0 後 useOverflowCount 仍按 wrapper.offsetWidth 累加(不含 overlap
|
|
98
|
+
* 補償)→ +N 偏保守。當前接受;若需精準可 future 加 `overlapPx` 補償邏輯。
|
|
99
|
+
*/
|
|
100
|
+
tagAreaGapPx?: number;
|
|
101
|
+
/**
|
|
102
|
+
* tagAreaRef container 左 paddingLeft(px,2026-05-12 加,for PeoplePicker Avatar inset)。
|
|
103
|
+
* Default undefined = no extra padding(Field wrapper `tagPadding[size]` calc 公式自然 inset)。
|
|
104
|
+
* 設值時 tagAreaRef 增 `style.paddingLeft`,**useOverflowCount 的 `available = clientWidth -
|
|
105
|
+
* paddingLeft - paddingRight` 自動 include**(`parseFloat(cs.paddingLeft)` 從 container CSS 抓)
|
|
106
|
+
* → width calc 不漂移,無 side-effect。
|
|
107
|
+
*
|
|
108
|
+
* **2026-05-13 v2 deprecate path**:原 PeoplePicker pass `{8}` 假設「Combobox tagPadding=4px,4+8=12」
|
|
109
|
+
* 但 `tagPadding[size]` 是 density-dependent calc `(field-height - icon-size) / 2`,只在 md size +
|
|
110
|
+
* default density 才 = 4px;其他 size/density 漂 6/8px → 4+8=12 公式破。改 PeoplePicker 直接 inject
|
|
111
|
+
* `!px-3` className 到 Combobox Field wrapper(per people-picker.spec.md:94 v2),`tagAreaPaddingLeftPx`
|
|
112
|
+
* 走 undefined。Future 仍保留此 prop 給其他 consumer 精準調整 padding,但 PeoplePicker 已不再用。
|
|
113
|
+
*/
|
|
114
|
+
tagAreaPaddingLeftPx?: number;
|
|
115
|
+
/**
|
|
116
|
+
* Overflow indicator (+N) 形狀(2026-05-12 Round 7,opt-in 給 avatar stack consumer):
|
|
117
|
+
* - `'tag'`(default)— 矩形 chip(Combobox 文字 tag default)
|
|
118
|
+
* - `'circle'`(opt-in)— 圓形 avatar-shape(PeoplePicker stack 用)
|
|
119
|
+
*/
|
|
120
|
+
overflowShape?: ComboboxOverflowShape;
|
|
121
|
+
/**
|
|
122
|
+
* 2026-05-15 Bug 3 fix:override visible count via formula-based primitive(opt-in;default 走
|
|
123
|
+
* DOM-based `useOverflowCount`)。PeoplePicker stack mode 用 `avatar-stack-overflow` primitive
|
|
124
|
+
* deterministic formula 計算 visible count,forward 給 Combobox bypass DOM offsetWidth
|
|
125
|
+
* measurement,避免 dual-algorithm drift。對齊 user SSOT「同 cell width 同 overflow 判斷」。
|
|
126
|
+
*/
|
|
127
|
+
visibleCountOverride?: number;
|
|
128
|
+
/**
|
|
129
|
+
* Display 是否渲 ChevronDown + Field naked wrapper(D-path opt-in,2026-05-08)
|
|
130
|
+
* — DataTable cell display↔edit 像素級對齊用。預設 false(裸 tag stack,backward compat)。
|
|
131
|
+
* 設 true 時 display 走 fieldWrapperStyles(naked variant)+ ItemSuffix ChevronDown,
|
|
132
|
+
* 與 edit 同 DOM 結構,消除 Layer-B padding mismatch。
|
|
133
|
+
*/
|
|
134
|
+
showDisplayEndIcon?: boolean;
|
|
135
|
+
}
|
|
136
|
+
declare const Combobox: React.ForwardRefExoticComponent<ComboboxProps & React.RefAttributes<HTMLDivElement>>;
|
|
137
|
+
export declare const comboboxMeta: {
|
|
138
|
+
readonly component: "Combobox";
|
|
139
|
+
readonly family: 4;
|
|
140
|
+
readonly variants: {};
|
|
141
|
+
readonly sizes: {};
|
|
142
|
+
readonly states: readonly ["default", "hover", "active", "focus-visible", "disabled"];
|
|
143
|
+
readonly tokens: {
|
|
144
|
+
readonly bg: readonly ["bg-disabled", "bg-transparent"];
|
|
145
|
+
readonly fg: readonly ["text-fg-disabled", "text-fg-muted"];
|
|
146
|
+
readonly ring: readonly [];
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
export { Combobox };
|
|
150
|
+
//# sourceMappingURL=combobox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../../src/components/Combobox/combobox.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAA;AAM3F,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,mDAAmD,CAAA;AAcrG;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,YAAa,SAAQ,gBAAgB;CAErD;AAgLD,KAAK,qBAAqB,GAAG,QAAQ,GAAG,KAAK,CAAA;AA6I7C,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,uFAAuF;IACvF,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACpC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW;IACX,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;kGAE8F;IAC9F,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,8CAA8C;IAC9C,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,qCAAqC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,4FAA4F;IAC5F,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;gDAC4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,mFAAmF;IACnF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,KAAK,CAAC,SAAS,CAAA;IAC/F;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAA;IAC7E;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B;;sEAEkE;IAClE,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;;;;;;;;OAYG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,qBAAqB,CAAA;IACrC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAsUD,QAAA,MAAM,QAAQ,sFAUb,CAAA;AAKD,eAAO,MAAM,YAAY;;;;;;;;;;;CAef,CAAA;AAEV,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|