ui-lab-registry 0.3.44 → 0.3.45
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/dist/components/Anchor/examples/01-inline-text.d.ts +6 -0
- package/dist/components/Anchor/examples/01-inline-text.d.ts.map +1 -0
- package/dist/components/Anchor/examples/01-inline-text.js +10 -0
- package/dist/components/Anchor/examples/01-inline-text.js.map +1 -0
- package/dist/components/Anchor/examples/02-underline-variants.d.ts +6 -0
- package/dist/components/Anchor/examples/02-underline-variants.d.ts.map +1 -0
- package/dist/components/Anchor/examples/02-underline-variants.js +10 -0
- package/dist/components/Anchor/examples/02-underline-variants.js.map +1 -0
- package/dist/components/Anchor/examples/03-preview-tooltip.d.ts +6 -0
- package/dist/components/Anchor/examples/03-preview-tooltip.d.ts.map +1 -0
- package/dist/components/Anchor/examples/03-preview-tooltip.js +10 -0
- package/dist/components/Anchor/examples/03-preview-tooltip.js.map +1 -0
- package/dist/components/Anchor/examples/04-breadcrumb.d.ts +6 -0
- package/dist/components/Anchor/examples/04-breadcrumb.d.ts.map +1 -0
- package/dist/components/Anchor/examples/04-breadcrumb.js +15 -0
- package/dist/components/Anchor/examples/04-breadcrumb.js.map +1 -0
- package/dist/components/Anchor/examples/index.d.ts +8 -1
- package/dist/components/Anchor/examples/index.d.ts.map +1 -1
- package/dist/components/Anchor/examples/index.js +8 -1
- package/dist/components/Anchor/examples/index.js.map +1 -1
- package/dist/components/Anchor/examples.json +19 -4
- package/dist/components/Anchor/index.d.ts.map +1 -1
- package/dist/components/Anchor/index.js +8 -2
- package/dist/components/Anchor/index.js.map +1 -1
- package/dist/components/Badge/examples/01-status-badges.d.ts +6 -0
- package/dist/components/Badge/examples/01-status-badges.d.ts.map +1 -0
- package/dist/components/Badge/examples/01-status-badges.js +10 -0
- package/dist/components/Badge/examples/01-status-badges.js.map +1 -0
- package/dist/components/Badge/examples/02-icon-position.d.ts +6 -0
- package/dist/components/Badge/examples/02-icon-position.d.ts.map +1 -0
- package/dist/components/Badge/examples/02-icon-position.js +11 -0
- package/dist/components/Badge/examples/02-icon-position.js.map +1 -0
- package/dist/components/Badge/examples/02-variants-and-sizes.d.ts.map +1 -1
- package/dist/components/Badge/examples/02-variants-and-sizes.js +3 -3
- package/dist/components/Badge/examples/02-variants-and-sizes.js.map +1 -1
- package/dist/components/Badge/examples/03-selectable-tags.d.ts +6 -0
- package/dist/components/Badge/examples/03-selectable-tags.d.ts.map +1 -0
- package/dist/components/Badge/examples/03-selectable-tags.js +21 -0
- package/dist/components/Badge/examples/03-selectable-tags.js.map +1 -0
- package/dist/components/Badge/examples/04-dismissible.d.ts +6 -0
- package/dist/components/Badge/examples/04-dismissible.d.ts.map +1 -0
- package/dist/components/Badge/examples/04-dismissible.js +14 -0
- package/dist/components/Badge/examples/04-dismissible.js.map +1 -0
- package/dist/components/Badge/examples/05-semantic-colors.d.ts +6 -0
- package/dist/components/Badge/examples/05-semantic-colors.d.ts.map +1 -0
- package/dist/components/Badge/examples/05-semantic-colors.js +10 -0
- package/dist/components/Badge/examples/05-semantic-colors.js.map +1 -0
- package/dist/components/Badge/examples/index.d.ts +10 -4
- package/dist/components/Badge/examples/index.d.ts.map +1 -1
- package/dist/components/Badge/examples/index.js +10 -4
- package/dist/components/Badge/examples/index.js.map +1 -1
- package/dist/components/Badge/examples.json +24 -9
- package/dist/components/Badge/index.d.ts.map +1 -1
- package/dist/components/Badge/index.js +12 -15
- package/dist/components/Badge/index.js.map +1 -1
- package/dist/components/Banner/examples/01-variants.d.ts +6 -0
- package/dist/components/Banner/examples/01-variants.d.ts.map +1 -0
- package/dist/components/Banner/examples/01-variants.js +10 -0
- package/dist/components/Banner/examples/01-variants.js.map +1 -0
- package/dist/components/Banner/examples/02-dismissible.d.ts +6 -0
- package/dist/components/Banner/examples/02-dismissible.d.ts.map +1 -0
- package/dist/components/Banner/examples/02-dismissible.js +13 -0
- package/dist/components/Banner/examples/02-dismissible.js.map +1 -0
- package/dist/components/Banner/examples/03-form-feedback.d.ts +6 -0
- package/dist/components/Banner/examples/03-form-feedback.d.ts.map +1 -0
- package/dist/components/Banner/examples/03-form-feedback.js +21 -0
- package/dist/components/Banner/examples/03-form-feedback.js.map +1 -0
- package/dist/components/Banner/examples/04-settings-panel.d.ts +6 -0
- package/dist/components/Banner/examples/04-settings-panel.d.ts.map +1 -0
- package/dist/components/Banner/examples/04-settings-panel.js +10 -0
- package/dist/components/Banner/examples/04-settings-panel.js.map +1 -0
- package/dist/components/Banner/examples/05-body-only.d.ts +6 -0
- package/dist/components/Banner/examples/05-body-only.d.ts.map +1 -0
- package/dist/components/Banner/examples/05-body-only.js +10 -0
- package/dist/components/Banner/examples/05-body-only.js.map +1 -0
- package/dist/components/Banner/examples/index.d.ts +10 -2
- package/dist/components/Banner/examples/index.d.ts.map +1 -1
- package/dist/components/Banner/examples/index.js +10 -2
- package/dist/components/Banner/examples/index.js.map +1 -1
- package/dist/components/Banner/examples.json +24 -4
- package/dist/components/Banner/index.d.ts.map +1 -1
- package/dist/components/Banner/index.js +13 -16
- package/dist/components/Banner/index.js.map +1 -1
- package/dist/components/Button/examples/01-variants.d.ts.map +1 -1
- package/dist/components/Button/examples/01-variants.js +12 -4
- package/dist/components/Button/examples/01-variants.js.map +1 -1
- package/dist/components/Button/examples/02-multi-actions.d.ts.map +1 -1
- package/dist/components/Button/examples/02-multi-actions.js.map +1 -1
- package/dist/components/Button/examples/04-sub-stack-actions.js +1 -1
- package/dist/components/Button/examples/04-sub-stack-actions.js.map +1 -1
- package/dist/components/Button/examples/06-icons.d.ts +6 -0
- package/dist/components/Button/examples/06-icons.d.ts.map +1 -0
- package/dist/components/Button/examples/06-icons.js +11 -0
- package/dist/components/Button/examples/06-icons.js.map +1 -0
- package/dist/components/Button/examples/07-split-button.d.ts +6 -0
- package/dist/components/Button/examples/07-split-button.d.ts.map +1 -0
- package/dist/components/Button/examples/07-split-button.js +20 -0
- package/dist/components/Button/examples/07-split-button.js.map +1 -0
- package/dist/components/Button/examples/08-button-group.d.ts +6 -0
- package/dist/components/Button/examples/08-button-group.d.ts.map +1 -0
- package/dist/components/Button/examples/08-button-group.js +14 -0
- package/dist/components/Button/examples/08-button-group.js.map +1 -0
- package/dist/components/Button/examples/index.d.ts +6 -0
- package/dist/components/Button/examples/index.d.ts.map +1 -1
- package/dist/components/Button/examples/index.js +6 -0
- package/dist/components/Button/examples/index.js.map +1 -1
- package/dist/components/Button/examples.json +19 -4
- package/dist/components/Button/index.d.ts.map +1 -1
- package/dist/components/Button/index.js +6 -0
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/Card/examples/01-notification.d.ts +6 -0
- package/dist/components/Card/examples/01-notification.d.ts.map +1 -0
- package/dist/components/Card/examples/01-notification.js +13 -0
- package/dist/components/Card/examples/01-notification.js.map +1 -0
- package/dist/components/Card/examples/02-settings-panel.d.ts +6 -0
- package/dist/components/Card/examples/02-settings-panel.d.ts.map +1 -0
- package/dist/components/Card/examples/02-settings-panel.js +18 -0
- package/dist/components/Card/examples/02-settings-panel.js.map +1 -0
- package/dist/components/Card/examples/03-task-progress.d.ts +6 -0
- package/dist/components/Card/examples/03-task-progress.d.ts.map +1 -0
- package/dist/components/Card/examples/03-task-progress.js +17 -0
- package/dist/components/Card/examples/03-task-progress.js.map +1 -0
- package/dist/components/Card/examples/index.d.ts +6 -2
- package/dist/components/Card/examples/index.d.ts.map +1 -1
- package/dist/components/Card/examples/index.js +6 -2
- package/dist/components/Card/examples/index.js.map +1 -1
- package/dist/components/Card/examples.json +14 -4
- package/dist/components/Card/index.d.ts.map +1 -1
- package/dist/components/Card/index.js +6 -2
- package/dist/components/Card/index.js.map +1 -1
- package/dist/components/Checkbox/examples/01-basic-states.d.ts +6 -0
- package/dist/components/Checkbox/examples/01-basic-states.d.ts.map +1 -0
- package/dist/components/Checkbox/examples/01-basic-states.js +10 -0
- package/dist/components/Checkbox/examples/01-basic-states.js.map +1 -0
- package/dist/components/Checkbox/examples/02-helper-text.d.ts +6 -0
- package/dist/components/Checkbox/examples/02-helper-text.d.ts.map +1 -0
- package/dist/components/Checkbox/examples/02-helper-text.js +10 -0
- package/dist/components/Checkbox/examples/02-helper-text.js.map +1 -0
- package/dist/components/Checkbox/examples/03-controlled.d.ts +6 -0
- package/dist/components/Checkbox/examples/03-controlled.d.ts.map +1 -0
- package/dist/components/Checkbox/examples/03-controlled.js +13 -0
- package/dist/components/Checkbox/examples/03-controlled.js.map +1 -0
- package/dist/components/Checkbox/examples/04-group.d.ts +6 -0
- package/dist/components/Checkbox/examples/04-group.d.ts.map +1 -0
- package/dist/components/Checkbox/examples/04-group.js +25 -0
- package/dist/components/Checkbox/examples/04-group.js.map +1 -0
- package/dist/components/Checkbox/examples/05-indeterminate.d.ts +6 -0
- package/dist/components/Checkbox/examples/05-indeterminate.d.ts.map +1 -0
- package/dist/components/Checkbox/examples/05-indeterminate.js +26 -0
- package/dist/components/Checkbox/examples/05-indeterminate.js.map +1 -0
- package/dist/components/Checkbox/examples/06-consent-form.d.ts +6 -0
- package/dist/components/Checkbox/examples/06-consent-form.d.ts.map +1 -0
- package/dist/components/Checkbox/examples/06-consent-form.js +14 -0
- package/dist/components/Checkbox/examples/06-consent-form.js.map +1 -0
- package/dist/components/Checkbox/examples/index.d.ts +12 -4
- package/dist/components/Checkbox/examples/index.d.ts.map +1 -1
- package/dist/components/Checkbox/examples/index.js +12 -4
- package/dist/components/Checkbox/examples/index.js.map +1 -1
- package/dist/components/Checkbox/examples.json +29 -9
- package/dist/components/Checkbox/index.d.ts.map +1 -1
- package/dist/components/Checkbox/index.js +13 -16
- package/dist/components/Checkbox/index.js.map +1 -1
- package/dist/components/Color/examples/01-basic-color-picker.d.ts +6 -0
- package/dist/components/Color/examples/01-basic-color-picker.d.ts.map +1 -0
- package/dist/components/Color/examples/01-basic-color-picker.js +11 -0
- package/dist/components/Color/examples/01-basic-color-picker.js.map +1 -0
- package/dist/components/Color/examples/02-color-picker-opacity.d.ts +6 -0
- package/dist/components/Color/examples/02-color-picker-opacity.d.ts.map +1 -0
- package/dist/components/Color/examples/02-color-picker-opacity.js +13 -0
- package/dist/components/Color/examples/02-color-picker-opacity.js.map +1 -0
- package/dist/components/Color/examples/03-color-picker-preview.d.ts +6 -0
- package/dist/components/Color/examples/03-color-picker-preview.d.ts.map +1 -0
- package/dist/components/Color/examples/03-color-picker-preview.js +13 -0
- package/dist/components/Color/examples/03-color-picker-preview.js.map +1 -0
- package/dist/components/Color/examples/04-color-slider-primitive.d.ts +6 -0
- package/dist/components/Color/examples/04-color-slider-primitive.d.ts.map +1 -0
- package/dist/components/Color/examples/04-color-slider-primitive.js +16 -0
- package/dist/components/Color/examples/04-color-slider-primitive.js.map +1 -0
- package/dist/components/Color/examples/index.d.ts +8 -3
- package/dist/components/Color/examples/index.d.ts.map +1 -1
- package/dist/components/Color/examples/index.js +8 -3
- package/dist/components/Color/examples/index.js.map +1 -1
- package/dist/components/Color/examples.json +18 -8
- package/dist/components/Color/index.d.ts.map +1 -1
- package/dist/components/Color/index.js +8 -4
- package/dist/components/Color/index.js.map +1 -1
- package/dist/components/Expand/examples/01-basic.d.ts +6 -0
- package/dist/components/Expand/examples/01-basic.d.ts.map +1 -0
- package/dist/components/Expand/examples/01-basic.js +10 -0
- package/dist/components/Expand/examples/01-basic.js.map +1 -0
- package/dist/components/Expand/examples/02-accordion.d.ts +6 -0
- package/dist/components/Expand/examples/02-accordion.d.ts.map +1 -0
- package/dist/components/Expand/examples/02-accordion.js +30 -0
- package/dist/components/Expand/examples/02-accordion.js.map +1 -0
- package/dist/components/Expand/examples/03-custom-trigger.d.ts +6 -0
- package/dist/components/Expand/examples/03-custom-trigger.d.ts.map +1 -0
- package/dist/components/Expand/examples/03-custom-trigger.js +11 -0
- package/dist/components/Expand/examples/03-custom-trigger.js.map +1 -0
- package/dist/components/Expand/examples/04-directions.d.ts +6 -0
- package/dist/components/Expand/examples/04-directions.d.ts.map +1 -0
- package/dist/components/Expand/examples/04-directions.js +10 -0
- package/dist/components/Expand/examples/04-directions.js.map +1 -0
- package/dist/components/Expand/examples/05-settings-panel.d.ts +6 -0
- package/dist/components/Expand/examples/05-settings-panel.d.ts.map +1 -0
- package/dist/components/Expand/examples/05-settings-panel.js +11 -0
- package/dist/components/Expand/examples/05-settings-panel.js.map +1 -0
- package/dist/components/Expand/examples/06-disabled.d.ts +6 -0
- package/dist/components/Expand/examples/06-disabled.d.ts.map +1 -0
- package/dist/components/Expand/examples/06-disabled.js +10 -0
- package/dist/components/Expand/examples/06-disabled.js.map +1 -0
- package/dist/components/Expand/examples/07-inline-info.d.ts +6 -0
- package/dist/components/Expand/examples/07-inline-info.d.ts.map +1 -0
- package/dist/components/Expand/examples/07-inline-info.js +11 -0
- package/dist/components/Expand/examples/07-inline-info.js.map +1 -0
- package/dist/components/Expand/examples/index.d.ts +14 -2
- package/dist/components/Expand/examples/index.d.ts.map +1 -1
- package/dist/components/Expand/examples/index.js +14 -2
- package/dist/components/Expand/examples/index.js.map +1 -1
- package/dist/components/Expand/examples.json +34 -4
- package/dist/components/Expand/index.d.ts.map +1 -1
- package/dist/components/Expand/index.js +14 -2
- package/dist/components/Expand/index.js.map +1 -1
- package/dist/components/Flex/examples/01-axis-control.d.ts +11 -0
- package/dist/components/Flex/examples/01-axis-control.d.ts.map +1 -0
- package/dist/components/Flex/examples/01-axis-control.js +149 -0
- package/dist/components/Flex/examples/01-axis-control.js.map +1 -0
- package/dist/components/Flex/examples/02-wrap-overflow.d.ts +11 -0
- package/dist/components/Flex/examples/02-wrap-overflow.d.ts.map +1 -0
- package/dist/components/Flex/examples/02-wrap-overflow.js +147 -0
- package/dist/components/Flex/examples/02-wrap-overflow.js.map +1 -0
- package/dist/components/Flex/examples/03-container-query-reflow.d.ts +11 -0
- package/dist/components/Flex/examples/03-container-query-reflow.d.ts.map +1 -0
- package/dist/components/Flex/examples/03-container-query-reflow.js +151 -0
- package/dist/components/Flex/examples/03-container-query-reflow.js.map +1 -0
- package/dist/components/Flex/examples/index.d.ts +6 -2
- package/dist/components/Flex/examples/index.d.ts.map +1 -1
- package/dist/components/Flex/examples/index.js +6 -2
- package/dist/components/Flex/examples/index.js.map +1 -1
- package/dist/components/Flex/examples.json +14 -4
- package/dist/components/Flex/index.d.ts.map +1 -1
- package/dist/components/Flex/index.js +12 -8
- package/dist/components/Flex/index.js.map +1 -1
- package/dist/components/Gallery/examples/01-grid-composition.d.ts +11 -0
- package/dist/components/Gallery/examples/01-grid-composition.d.ts.map +1 -0
- package/dist/components/Gallery/examples/01-grid-composition.js +95 -0
- package/dist/components/Gallery/examples/01-grid-composition.js.map +1 -0
- package/dist/components/Gallery/examples/02-item-orientation.d.ts +11 -0
- package/dist/components/Gallery/examples/02-item-orientation.d.ts.map +1 -0
- package/dist/components/Gallery/examples/02-item-orientation.js +106 -0
- package/dist/components/Gallery/examples/02-item-orientation.js.map +1 -0
- package/dist/components/Gallery/examples/03-span-layout.d.ts +11 -0
- package/dist/components/Gallery/examples/03-span-layout.d.ts.map +1 -0
- package/dist/components/Gallery/examples/03-span-layout.js +95 -0
- package/dist/components/Gallery/examples/03-span-layout.js.map +1 -0
- package/dist/components/Gallery/examples/index.d.ts +6 -2
- package/dist/components/Gallery/examples/index.d.ts.map +1 -1
- package/dist/components/Gallery/examples/index.js +6 -2
- package/dist/components/Gallery/examples/index.js.map +1 -1
- package/dist/components/Gallery/examples.json +14 -4
- package/dist/components/Gallery/index.d.ts.map +1 -1
- package/dist/components/Gallery/index.js +6 -2
- package/dist/components/Gallery/index.js.map +1 -1
- package/dist/components/Grid/examples/02-track-placement.d.ts +11 -0
- package/dist/components/Grid/examples/02-track-placement.d.ts.map +1 -0
- package/dist/components/Grid/examples/02-track-placement.js +181 -0
- package/dist/components/Grid/examples/02-track-placement.js.map +1 -0
- package/dist/components/Grid/examples/03-editorial-spans.d.ts +11 -0
- package/dist/components/Grid/examples/03-editorial-spans.d.ts.map +1 -0
- package/dist/components/Grid/examples/03-editorial-spans.js +167 -0
- package/dist/components/Grid/examples/03-editorial-spans.js.map +1 -0
- package/dist/components/Grid/examples/04-responsive-card-rail.d.ts +11 -0
- package/dist/components/Grid/examples/04-responsive-card-rail.d.ts.map +1 -0
- package/dist/components/Grid/examples/04-responsive-card-rail.js +126 -0
- package/dist/components/Grid/examples/04-responsive-card-rail.js.map +1 -0
- package/dist/components/Grid/examples/index.d.ts +6 -0
- package/dist/components/Grid/examples/index.d.ts.map +1 -1
- package/dist/components/Grid/examples/index.js +6 -0
- package/dist/components/Grid/examples/index.js.map +1 -1
- package/dist/components/Grid/examples.json +15 -0
- package/dist/components/Grid/index.d.ts.map +1 -1
- package/dist/components/Grid/index.js +6 -0
- package/dist/components/Grid/index.js.map +1 -1
- package/dist/components/Group/examples/02-create-project.d.ts +6 -0
- package/dist/components/Group/examples/02-create-project.d.ts.map +1 -0
- package/dist/components/Group/examples/02-create-project.js +11 -0
- package/dist/components/Group/examples/02-create-project.js.map +1 -0
- package/dist/components/Group/examples/03-filter-bar.d.ts +6 -0
- package/dist/components/Group/examples/03-filter-bar.d.ts.map +1 -0
- package/dist/components/Group/examples/03-filter-bar.js +14 -0
- package/dist/components/Group/examples/03-filter-bar.js.map +1 -0
- package/dist/components/Group/examples/04-documentation-search.d.ts +6 -0
- package/dist/components/Group/examples/04-documentation-search.d.ts.map +1 -0
- package/dist/components/Group/examples/04-documentation-search.js +11 -0
- package/dist/components/Group/examples/04-documentation-search.js.map +1 -0
- package/dist/components/Group/examples/05-email-signup.d.ts +6 -0
- package/dist/components/Group/examples/05-email-signup.d.ts.map +1 -0
- package/dist/components/Group/examples/05-email-signup.js +11 -0
- package/dist/components/Group/examples/05-email-signup.js.map +1 -0
- package/dist/components/Group/examples/06-copy-command.d.ts +6 -0
- package/dist/components/Group/examples/06-copy-command.d.ts.map +1 -0
- package/dist/components/Group/examples/06-copy-command.js +11 -0
- package/dist/components/Group/examples/06-copy-command.js.map +1 -0
- package/dist/components/Group/examples/07-delete-confirmation.d.ts +6 -0
- package/dist/components/Group/examples/07-delete-confirmation.d.ts.map +1 -0
- package/dist/components/Group/examples/07-delete-confirmation.js +11 -0
- package/dist/components/Group/examples/07-delete-confirmation.js.map +1 -0
- package/dist/components/Group/examples/08-slider-integration.d.ts +6 -0
- package/dist/components/Group/examples/08-slider-integration.d.ts.map +1 -0
- package/dist/components/Group/examples/08-slider-integration.js +19 -0
- package/dist/components/Group/examples/08-slider-integration.js.map +1 -0
- package/dist/components/Group/examples/index.d.ts +14 -0
- package/dist/components/Group/examples/index.d.ts.map +1 -1
- package/dist/components/Group/examples/index.js +14 -0
- package/dist/components/Group/examples/index.js.map +1 -1
- package/dist/components/Group/examples.json +35 -0
- package/dist/components/Group/index.d.ts.map +1 -1
- package/dist/components/Group/index.js +14 -0
- package/dist/components/Group/index.js.map +1 -1
- package/dist/components/Input/examples/03-sign-in.d.ts +6 -0
- package/dist/components/Input/examples/03-sign-in.d.ts.map +1 -0
- package/dist/components/Input/examples/03-sign-in.js +22 -0
- package/dist/components/Input/examples/03-sign-in.js.map +1 -0
- package/dist/components/Input/examples/04-search.d.ts +6 -0
- package/dist/components/Input/examples/04-search.d.ts.map +1 -0
- package/dist/components/Input/examples/04-search.js +16 -0
- package/dist/components/Input/examples/04-search.js.map +1 -0
- package/dist/components/Input/examples/05-user-handle.d.ts +6 -0
- package/dist/components/Input/examples/05-user-handle.d.ts.map +1 -0
- package/dist/components/Input/examples/05-user-handle.js +27 -0
- package/dist/components/Input/examples/05-user-handle.js.map +1 -0
- package/dist/components/Input/examples/06-api-key.d.ts +6 -0
- package/dist/components/Input/examples/06-api-key.d.ts.map +1 -0
- package/dist/components/Input/examples/06-api-key.js +35 -0
- package/dist/components/Input/examples/06-api-key.js.map +1 -0
- package/dist/components/Input/examples/07-url-validation.d.ts +6 -0
- package/dist/components/Input/examples/07-url-validation.d.ts.map +1 -0
- package/dist/components/Input/examples/07-url-validation.js +23 -0
- package/dist/components/Input/examples/07-url-validation.js.map +1 -0
- package/dist/components/Input/examples/08-quantity.d.ts +6 -0
- package/dist/components/Input/examples/08-quantity.d.ts.map +1 -0
- package/dist/components/Input/examples/08-quantity.js +13 -0
- package/dist/components/Input/examples/08-quantity.js.map +1 -0
- package/dist/components/Input/examples/index.d.ts +12 -0
- package/dist/components/Input/examples/index.d.ts.map +1 -1
- package/dist/components/Input/examples/index.js +12 -0
- package/dist/components/Input/examples/index.js.map +1 -1
- package/dist/components/Input/examples.json +30 -0
- package/dist/components/Input/index.d.ts.map +1 -1
- package/dist/components/Input/index.js +12 -0
- package/dist/components/Input/index.js.map +1 -1
- package/dist/components/List/examples/02-review-queue.d.ts +6 -0
- package/dist/components/List/examples/02-review-queue.d.ts.map +1 -0
- package/dist/components/List/examples/02-review-queue.js +32 -0
- package/dist/components/List/examples/02-review-queue.js.map +1 -0
- package/dist/components/List/examples/03-notification-rules.d.ts +6 -0
- package/dist/components/List/examples/03-notification-rules.d.ts.map +1 -0
- package/dist/components/List/examples/03-notification-rules.js +40 -0
- package/dist/components/List/examples/03-notification-rules.js.map +1 -0
- package/dist/components/List/examples/04-quota-editor.d.ts +6 -0
- package/dist/components/List/examples/04-quota-editor.d.ts.map +1 -0
- package/dist/components/List/examples/04-quota-editor.js +40 -0
- package/dist/components/List/examples/04-quota-editor.js.map +1 -0
- package/dist/components/List/examples/05-permissions-matrix.d.ts +6 -0
- package/dist/components/List/examples/05-permissions-matrix.d.ts.map +1 -0
- package/dist/components/List/examples/05-permissions-matrix.js +39 -0
- package/dist/components/List/examples/05-permissions-matrix.js.map +1 -0
- package/dist/components/List/examples/index.d.ts +8 -0
- package/dist/components/List/examples/index.d.ts.map +1 -1
- package/dist/components/List/examples/index.js +8 -0
- package/dist/components/List/examples/index.js.map +1 -1
- package/dist/components/List/examples.json +20 -0
- package/dist/components/List/index.d.ts.map +1 -1
- package/dist/components/List/index.js +10 -2
- package/dist/components/List/index.js.map +1 -1
- package/dist/components/Menu/examples/03-toolbar-dropdown.d.ts +6 -0
- package/dist/components/Menu/examples/03-toolbar-dropdown.d.ts.map +1 -0
- package/dist/components/Menu/examples/03-toolbar-dropdown.js +11 -0
- package/dist/components/Menu/examples/03-toolbar-dropdown.js.map +1 -0
- package/dist/components/Menu/examples/04-table-row-actions.d.ts +6 -0
- package/dist/components/Menu/examples/04-table-row-actions.d.ts.map +1 -0
- package/dist/components/Menu/examples/04-table-row-actions.js +16 -0
- package/dist/components/Menu/examples/04-table-row-actions.js.map +1 -0
- package/dist/components/Menu/examples/05-context-menu.d.ts +6 -0
- package/dist/components/Menu/examples/05-context-menu.d.ts.map +1 -0
- package/dist/components/Menu/examples/05-context-menu.js +10 -0
- package/dist/components/Menu/examples/05-context-menu.js.map +1 -0
- package/dist/components/Menu/examples/06-view-options.d.ts +6 -0
- package/dist/components/Menu/examples/06-view-options.d.ts.map +1 -0
- package/dist/components/Menu/examples/06-view-options.js +15 -0
- package/dist/components/Menu/examples/06-view-options.js.map +1 -0
- package/dist/components/Menu/examples/index.d.ts +8 -0
- package/dist/components/Menu/examples/index.d.ts.map +1 -1
- package/dist/components/Menu/examples/index.js +8 -0
- package/dist/components/Menu/examples/index.js.map +1 -1
- package/dist/components/Menu/examples.json +20 -0
- package/dist/components/Menu/index.d.ts.map +1 -1
- package/dist/components/Menu/index.js +8 -0
- package/dist/components/Menu/index.js.map +1 -1
- package/dist/components/Modal/examples/02-form-modal.js +1 -1
- package/dist/components/Modal/examples/02-form-modal.js.map +1 -1
- package/dist/components/Modal/examples/03-delete-confirmation.d.ts +6 -0
- package/dist/components/Modal/examples/03-delete-confirmation.d.ts.map +1 -0
- package/dist/components/Modal/examples/03-delete-confirmation.js +13 -0
- package/dist/components/Modal/examples/03-delete-confirmation.js.map +1 -0
- package/dist/components/Modal/examples/04-create-api-key.d.ts +6 -0
- package/dist/components/Modal/examples/04-create-api-key.d.ts.map +1 -0
- package/dist/components/Modal/examples/04-create-api-key.js +14 -0
- package/dist/components/Modal/examples/04-create-api-key.js.map +1 -0
- package/dist/components/Modal/examples/05-notification-settings.d.ts +6 -0
- package/dist/components/Modal/examples/05-notification-settings.d.ts.map +1 -0
- package/dist/components/Modal/examples/05-notification-settings.js +19 -0
- package/dist/components/Modal/examples/05-notification-settings.js.map +1 -0
- package/dist/components/Modal/examples/index.d.ts +6 -0
- package/dist/components/Modal/examples/index.d.ts.map +1 -1
- package/dist/components/Modal/examples/index.js +6 -0
- package/dist/components/Modal/examples/index.js.map +1 -1
- package/dist/components/Modal/examples.json +16 -1
- package/dist/components/Modal/index.d.ts.map +1 -1
- package/dist/components/Modal/index.js +8 -0
- package/dist/components/Modal/index.js.map +1 -1
- package/dist/components/Panel/examples/01-sidebar-toggle.d.ts +6 -0
- package/dist/components/Panel/examples/01-sidebar-toggle.d.ts.map +1 -0
- package/dist/components/Panel/examples/01-sidebar-toggle.js +10 -0
- package/dist/components/Panel/examples/01-sidebar-toggle.js.map +1 -0
- package/dist/components/Panel/examples/index.d.ts +3 -0
- package/dist/components/Panel/examples/index.d.ts.map +1 -0
- package/dist/components/Panel/examples/index.js +3 -0
- package/dist/components/Panel/examples/index.js.map +1 -0
- package/dist/components/Panel/examples.json +7 -0
- package/dist/components/Panel/index.d.ts +1 -0
- package/dist/components/Panel/index.d.ts.map +1 -1
- package/dist/components/Panel/index.js +8 -0
- package/dist/components/Panel/index.js.map +1 -1
- package/dist/components/Path/examples/01-basic-path.js +2 -2
- package/dist/components/Path/examples/01-basic-path.js.map +1 -1
- package/dist/components/Path/examples/02-custom-separator.d.ts +6 -0
- package/dist/components/Path/examples/02-custom-separator.d.ts.map +1 -0
- package/dist/components/Path/examples/02-custom-separator.js +11 -0
- package/dist/components/Path/examples/02-custom-separator.js.map +1 -0
- package/dist/components/Path/examples/03-collapsed-breadcrumb.d.ts +6 -0
- package/dist/components/Path/examples/03-collapsed-breadcrumb.d.ts.map +1 -0
- package/dist/components/Path/examples/03-collapsed-breadcrumb.js +16 -0
- package/dist/components/Path/examples/03-collapsed-breadcrumb.js.map +1 -0
- package/dist/components/Path/examples/index.d.ts +4 -0
- package/dist/components/Path/examples/index.d.ts.map +1 -1
- package/dist/components/Path/examples/index.js +4 -0
- package/dist/components/Path/examples/index.js.map +1 -1
- package/dist/components/Path/examples.json +11 -1
- package/dist/components/Path/index.d.ts.map +1 -1
- package/dist/components/Path/index.js +11 -7
- package/dist/components/Path/index.js.map +1 -1
- package/dist/components/Popover/examples/01-basic-popover.d.ts.map +1 -1
- package/dist/components/Popover/examples/01-basic-popover.js +5 -4
- package/dist/components/Popover/examples/01-basic-popover.js.map +1 -1
- package/dist/components/Popover/examples/02-toggleable-options.d.ts +6 -0
- package/dist/components/Popover/examples/02-toggleable-options.d.ts.map +1 -0
- package/dist/components/Popover/examples/02-toggleable-options.js +23 -0
- package/dist/components/Popover/examples/02-toggleable-options.js.map +1 -0
- package/dist/components/Popover/examples/03-table-row-actions.d.ts +6 -0
- package/dist/components/Popover/examples/03-table-row-actions.d.ts.map +1 -0
- package/dist/components/Popover/examples/03-table-row-actions.js +17 -0
- package/dist/components/Popover/examples/03-table-row-actions.js.map +1 -0
- package/dist/components/Popover/examples/04-input-form.d.ts +6 -0
- package/dist/components/Popover/examples/04-input-form.d.ts.map +1 -0
- package/dist/components/Popover/examples/04-input-form.js +14 -0
- package/dist/components/Popover/examples/04-input-form.js.map +1 -0
- package/dist/components/Popover/examples/05-arrow-positions.d.ts +6 -0
- package/dist/components/Popover/examples/05-arrow-positions.d.ts.map +1 -0
- package/dist/components/Popover/examples/05-arrow-positions.js +11 -0
- package/dist/components/Popover/examples/05-arrow-positions.js.map +1 -0
- package/dist/components/Popover/examples/index.d.ts +8 -0
- package/dist/components/Popover/examples/index.d.ts.map +1 -1
- package/dist/components/Popover/examples/index.js +8 -0
- package/dist/components/Popover/examples/index.js.map +1 -1
- package/dist/components/Popover/examples.json +23 -3
- package/dist/components/Popover/index.d.ts.map +1 -1
- package/dist/components/Popover/index.js +8 -0
- package/dist/components/Popover/index.js.map +1 -1
- package/dist/components/Progress/examples/01-basic-progress.d.ts.map +1 -1
- package/dist/components/Progress/examples/01-basic-progress.js +20 -5
- package/dist/components/Progress/examples/01-basic-progress.js.map +1 -1
- package/dist/components/Progress/examples/02-storage-quota.d.ts +6 -0
- package/dist/components/Progress/examples/02-storage-quota.d.ts.map +1 -0
- package/dist/components/Progress/examples/02-storage-quota.js +12 -0
- package/dist/components/Progress/examples/02-storage-quota.js.map +1 -0
- package/dist/components/Progress/examples/03-onboarding-steps.d.ts +6 -0
- package/dist/components/Progress/examples/03-onboarding-steps.d.ts.map +1 -0
- package/dist/components/Progress/examples/03-onboarding-steps.js +14 -0
- package/dist/components/Progress/examples/03-onboarding-steps.js.map +1 -0
- package/dist/components/Progress/examples/04-indeterminate.d.ts +6 -0
- package/dist/components/Progress/examples/04-indeterminate.d.ts.map +1 -0
- package/dist/components/Progress/examples/04-indeterminate.js +19 -0
- package/dist/components/Progress/examples/04-indeterminate.js.map +1 -0
- package/dist/components/Progress/examples/05-skill-levels.d.ts +6 -0
- package/dist/components/Progress/examples/05-skill-levels.d.ts.map +1 -0
- package/dist/components/Progress/examples/05-skill-levels.js +15 -0
- package/dist/components/Progress/examples/05-skill-levels.js.map +1 -0
- package/dist/components/Progress/examples/index.d.ts +8 -0
- package/dist/components/Progress/examples/index.d.ts.map +1 -1
- package/dist/components/Progress/examples/index.js +8 -0
- package/dist/components/Progress/examples/index.js.map +1 -1
- package/dist/components/Progress/examples.json +23 -3
- package/dist/components/Progress/index.d.ts.map +1 -1
- package/dist/components/Progress/index.js +11 -14
- package/dist/components/Progress/index.js.map +1 -1
- package/dist/components/Scroll/examples/01-basic-scroll.d.ts.map +1 -1
- package/dist/components/Scroll/examples/01-basic-scroll.js +29 -3
- package/dist/components/Scroll/examples/01-basic-scroll.js.map +1 -1
- package/dist/components/Scroll/examples/02-settings-panel.d.ts +6 -0
- package/dist/components/Scroll/examples/02-settings-panel.d.ts.map +1 -0
- package/dist/components/Scroll/examples/02-settings-panel.js +21 -0
- package/dist/components/Scroll/examples/02-settings-panel.js.map +1 -0
- package/dist/components/Scroll/examples/03-horizontal-tags.d.ts +6 -0
- package/dist/components/Scroll/examples/03-horizontal-tags.d.ts.map +1 -0
- package/dist/components/Scroll/examples/03-horizontal-tags.js +24 -0
- package/dist/components/Scroll/examples/03-horizontal-tags.js.map +1 -0
- package/dist/components/Scroll/examples/index.d.ts +4 -0
- package/dist/components/Scroll/examples/index.d.ts.map +1 -1
- package/dist/components/Scroll/examples/index.js +4 -0
- package/dist/components/Scroll/examples/index.js.map +1 -1
- package/dist/components/Scroll/examples.json +13 -3
- package/dist/components/Scroll/index.d.ts.map +1 -1
- package/dist/components/Scroll/index.js +4 -0
- package/dist/components/Scroll/index.js.map +1 -1
- package/dist/components/Select/examples/03-country-select.d.ts +6 -0
- package/dist/components/Select/examples/03-country-select.d.ts.map +1 -0
- package/dist/components/Select/examples/03-country-select.js +28 -0
- package/dist/components/Select/examples/03-country-select.js.map +1 -0
- package/dist/components/Select/examples/index.d.ts +2 -0
- package/dist/components/Select/examples/index.d.ts.map +1 -1
- package/dist/components/Select/examples/index.js +2 -0
- package/dist/components/Select/examples/index.js.map +1 -1
- package/dist/components/Select/examples.json +5 -0
- package/dist/components/Select/index.d.ts.map +1 -1
- package/dist/components/Select/index.js +2 -0
- package/dist/components/Select/index.js.map +1 -1
- package/dist/components/Slider/examples/01-basic-slider.d.ts.map +1 -1
- package/dist/components/Slider/examples/01-basic-slider.js +7 -4
- package/dist/components/Slider/examples/01-basic-slider.js.map +1 -1
- package/dist/components/Slider/examples/02-settings-panel.d.ts +6 -0
- package/dist/components/Slider/examples/02-settings-panel.d.ts.map +1 -0
- package/dist/components/Slider/examples/02-settings-panel.js +20 -0
- package/dist/components/Slider/examples/02-settings-panel.js.map +1 -0
- package/dist/components/Slider/examples/03-price-range.d.ts +6 -0
- package/dist/components/Slider/examples/03-price-range.d.ts.map +1 -0
- package/dist/components/Slider/examples/03-price-range.js +13 -0
- package/dist/components/Slider/examples/03-price-range.js.map +1 -0
- package/dist/components/Slider/examples/04-step-slider.d.ts +6 -0
- package/dist/components/Slider/examples/04-step-slider.d.ts.map +1 -0
- package/dist/components/Slider/examples/04-step-slider.js +13 -0
- package/dist/components/Slider/examples/04-step-slider.js.map +1 -0
- package/dist/components/Slider/examples/05-disabled-state.d.ts +6 -0
- package/dist/components/Slider/examples/05-disabled-state.d.ts.map +1 -0
- package/dist/components/Slider/examples/05-disabled-state.js +10 -0
- package/dist/components/Slider/examples/05-disabled-state.js.map +1 -0
- package/dist/components/Slider/examples/06-vertical-mixer.d.ts +6 -0
- package/dist/components/Slider/examples/06-vertical-mixer.d.ts.map +1 -0
- package/dist/components/Slider/examples/06-vertical-mixer.js +17 -0
- package/dist/components/Slider/examples/06-vertical-mixer.js.map +1 -0
- package/dist/components/Slider/examples/index.d.ts +10 -0
- package/dist/components/Slider/examples/index.d.ts.map +1 -1
- package/dist/components/Slider/examples/index.js +10 -0
- package/dist/components/Slider/examples/index.js.map +1 -1
- package/dist/components/Slider/examples.json +28 -3
- package/dist/components/Slider/index.d.ts.map +1 -1
- package/dist/components/Slider/index.js +10 -0
- package/dist/components/Slider/index.js.map +1 -1
- package/dist/components/Switch/examples/01-basic-switch.d.ts.map +1 -1
- package/dist/components/Switch/examples/01-basic-switch.js +7 -4
- package/dist/components/Switch/examples/01-basic-switch.js.map +1 -1
- package/dist/components/Switch/examples/02-settings-panel.d.ts +6 -0
- package/dist/components/Switch/examples/02-settings-panel.d.ts.map +1 -0
- package/dist/components/Switch/examples/02-settings-panel.js +20 -0
- package/dist/components/Switch/examples/02-settings-panel.js.map +1 -0
- package/dist/components/Switch/examples/03-disabled-state.d.ts +6 -0
- package/dist/components/Switch/examples/03-disabled-state.d.ts.map +1 -0
- package/dist/components/Switch/examples/03-disabled-state.js +10 -0
- package/dist/components/Switch/examples/03-disabled-state.js.map +1 -0
- package/dist/components/Switch/examples/04-small-size.d.ts +6 -0
- package/dist/components/Switch/examples/04-small-size.d.ts.map +1 -0
- package/dist/components/Switch/examples/04-small-size.js +13 -0
- package/dist/components/Switch/examples/04-small-size.js.map +1 -0
- package/dist/components/Switch/examples/05-controlled-toggle.d.ts +6 -0
- package/dist/components/Switch/examples/05-controlled-toggle.d.ts.map +1 -0
- package/dist/components/Switch/examples/05-controlled-toggle.js +13 -0
- package/dist/components/Switch/examples/05-controlled-toggle.js.map +1 -0
- package/dist/components/Switch/examples/index.d.ts +8 -0
- package/dist/components/Switch/examples/index.d.ts.map +1 -1
- package/dist/components/Switch/examples/index.js +8 -0
- package/dist/components/Switch/examples/index.js.map +1 -1
- package/dist/components/Switch/examples.json +23 -3
- package/dist/components/Switch/index.d.ts.map +1 -1
- package/dist/components/Switch/index.js +8 -0
- package/dist/components/Switch/index.js.map +1 -1
- package/dist/components/Table/index.d.ts.map +1 -1
- package/dist/components/Table/index.js.map +1 -1
- package/dist/components/Tabs/examples/03-underline-tabs.d.ts +6 -0
- package/dist/components/Tabs/examples/03-underline-tabs.d.ts.map +1 -0
- package/dist/components/Tabs/examples/03-underline-tabs.js +13 -0
- package/dist/components/Tabs/examples/03-underline-tabs.js.map +1 -0
- package/dist/components/Tabs/examples/04-vertical-underline-tabs.d.ts +6 -0
- package/dist/components/Tabs/examples/04-vertical-underline-tabs.d.ts.map +1 -0
- package/dist/components/Tabs/examples/04-vertical-underline-tabs.js +13 -0
- package/dist/components/Tabs/examples/04-vertical-underline-tabs.js.map +1 -0
- package/dist/components/Tabs/examples/index.d.ts +4 -0
- package/dist/components/Tabs/examples/index.d.ts.map +1 -1
- package/dist/components/Tabs/examples/index.js +4 -0
- package/dist/components/Tabs/examples/index.js.map +1 -1
- package/dist/components/Tabs/examples.json +10 -0
- package/dist/components/Tabs/index.d.ts.map +1 -1
- package/dist/components/Tabs/index.js +4 -0
- package/dist/components/Tabs/index.js.map +1 -1
- package/dist/components/Textarea/examples/01-basic-textarea.d.ts.map +1 -1
- package/dist/components/Textarea/examples/01-basic-textarea.js +8 -5
- package/dist/components/Textarea/examples/01-basic-textarea.js.map +1 -1
- package/dist/components/Textarea/examples/02-bio-settings.d.ts +6 -0
- package/dist/components/Textarea/examples/02-bio-settings.d.ts.map +1 -0
- package/dist/components/Textarea/examples/02-bio-settings.js +13 -0
- package/dist/components/Textarea/examples/02-bio-settings.js.map +1 -0
- package/dist/components/Textarea/examples/03-error-state.d.ts +6 -0
- package/dist/components/Textarea/examples/03-error-state.d.ts.map +1 -0
- package/dist/components/Textarea/examples/03-error-state.js +14 -0
- package/dist/components/Textarea/examples/03-error-state.js.map +1 -0
- package/dist/components/Textarea/examples/04-disabled-readonly.d.ts +6 -0
- package/dist/components/Textarea/examples/04-disabled-readonly.d.ts.map +1 -0
- package/dist/components/Textarea/examples/04-disabled-readonly.js +10 -0
- package/dist/components/Textarea/examples/04-disabled-readonly.js.map +1 -0
- package/dist/components/Textarea/examples/05-scrolling.d.ts +6 -0
- package/dist/components/Textarea/examples/05-scrolling.d.ts.map +1 -0
- package/dist/components/Textarea/examples/05-scrolling.js +13 -0
- package/dist/components/Textarea/examples/05-scrolling.js.map +1 -0
- package/dist/components/Textarea/examples/index.d.ts +8 -0
- package/dist/components/Textarea/examples/index.d.ts.map +1 -1
- package/dist/components/Textarea/examples/index.js +8 -0
- package/dist/components/Textarea/examples/index.js.map +1 -1
- package/dist/components/Textarea/examples.json +23 -3
- package/dist/components/Textarea/index.d.ts.map +1 -1
- package/dist/components/Textarea/index.js +8 -0
- package/dist/components/Textarea/index.js.map +1 -1
- package/dist/components/Toast/index.d.ts.map +1 -1
- package/dist/components/Toast/index.js +1 -1
- package/dist/components/Toast/index.js.map +1 -1
- package/dist/generated-data.d.ts.map +1 -1
- package/dist/generated-data.js +999 -429
- package/dist/generated-data.js.map +1 -1
- package/dist/generated-styles.d.ts.map +1 -1
- package/dist/generated-styles.js +1135 -203
- package/dist/generated-styles.js.map +1 -1
- package/dist/generated-styles.json +1135 -203
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/patterns/data/badge-row/variations/main/index.js +1 -1
- package/dist/patterns/data/badge-row/variations/main/index.js.map +1 -1
- package/dist/patterns/data/badge-row/variations/mixed/index.js +1 -1
- package/dist/patterns/data/badge-row/variations/mixed/index.js.map +1 -1
- package/dist/patterns/data/badge-row/variations/outline/index.js +1 -1
- package/dist/patterns/data/badge-row/variations/outline/index.js.map +1 -1
- package/dist/patterns/data/data-table-row/variations/expandable/index.js +1 -1
- package/dist/patterns/data/data-table-row/variations/expandable/index.js.map +1 -1
- package/dist/patterns/data/data-table-row/variations/main/index.js +1 -1
- package/dist/patterns/data/data-table-row/variations/main/index.js.map +1 -1
- package/dist/patterns/data/data-table-row/variations/selectable/index.js +1 -1
- package/dist/patterns/data/data-table-row/variations/selectable/index.js.map +1 -1
- package/dist/patterns/interaction/tab-content-header/variations/with-badge/index.js +1 -1
- package/dist/patterns/interaction/tab-content-header/variations/with-badge/index.js.map +1 -1
- package/dist/patterns/layout/split-row/variations/main/index.js +1 -1
- package/dist/patterns/layout/split-row/variations/main/index.js.map +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +536 -61
- package/dist/registry.js.map +1 -1
- package/dist/types.d.ts +18 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/load-component-examples.d.ts +4 -7
- package/dist/utils/load-component-examples.d.ts.map +1 -1
- package/dist/utils/load-component-examples.js +4 -7
- package/dist/utils/load-component-examples.js.map +1 -1
- package/package.json +2 -2
- package/src/components/Anchor/examples/01-inline-text.tsx +22 -0
- package/src/components/Anchor/examples/02-underline-variants.tsx +24 -0
- package/src/components/Anchor/examples/03-preview-tooltip.tsx +27 -0
- package/src/components/Anchor/examples/04-breadcrumb.tsx +29 -0
- package/src/components/Anchor/examples/index.ts +11 -1
- package/src/components/Anchor/examples.json +19 -4
- package/src/components/Anchor/index.tsx +8 -2
- package/src/components/Badge/examples/01-status-badges.tsx +17 -0
- package/src/components/Badge/examples/02-icon-position.tsx +18 -0
- package/src/components/Badge/examples/03-selectable-tags.tsx +40 -0
- package/src/components/Badge/examples/04-dismissible.tsx +37 -0
- package/src/components/Badge/examples/05-semantic-colors.tsx +18 -0
- package/src/components/Badge/examples/index.ts +13 -4
- package/src/components/Badge/examples.json +24 -9
- package/src/components/Badge/index.tsx +11 -15
- package/src/components/Banner/examples/01-variants.tsx +33 -0
- package/src/components/Banner/examples/02-dismissible.tsx +31 -0
- package/src/components/Banner/examples/03-form-feedback.tsx +47 -0
- package/src/components/Banner/examples/04-settings-panel.tsx +21 -0
- package/src/components/Banner/examples/05-body-only.tsx +22 -0
- package/src/components/Banner/examples/index.ts +14 -2
- package/src/components/Banner/examples.json +24 -4
- package/src/components/Banner/index.tsx +12 -16
- package/src/components/Button/examples/01-variants.tsx +18 -52
- package/src/components/Button/examples/02-multi-actions.tsx +0 -1
- package/src/components/Button/examples/04-sub-stack-actions.tsx +1 -1
- package/src/components/Button/examples/06-icons.tsx +25 -0
- package/src/components/Button/examples/07-split-button.tsx +47 -0
- package/src/components/Button/examples/08-button-group.tsx +30 -0
- package/src/components/Button/examples/index.ts +6 -0
- package/src/components/Button/examples.json +19 -4
- package/src/components/Button/index.tsx +6 -0
- package/src/components/Card/examples/01-notification.tsx +37 -0
- package/src/components/Card/examples/02-settings-panel.tsx +48 -0
- package/src/components/Card/examples/03-task-progress.tsx +43 -0
- package/src/components/Card/examples/index.ts +8 -2
- package/src/components/Card/examples.json +14 -4
- package/src/components/Card/index.tsx +6 -2
- package/src/components/Card/metadata.json +42 -0
- package/src/components/Checkbox/examples/01-basic-states.tsx +17 -0
- package/src/components/Checkbox/examples/02-helper-text.tsx +26 -0
- package/src/components/Checkbox/examples/03-controlled.tsx +28 -0
- package/src/components/Checkbox/examples/04-group.tsx +49 -0
- package/src/components/Checkbox/examples/05-indeterminate.tsx +56 -0
- package/src/components/Checkbox/examples/06-consent-form.tsx +35 -0
- package/src/components/Checkbox/examples/index.ts +16 -4
- package/src/components/Checkbox/examples.json +29 -9
- package/src/components/Checkbox/index.tsx +12 -16
- package/src/components/Color/examples/01-basic-color-picker.tsx +18 -0
- package/src/components/Color/examples/02-color-picker-opacity.tsx +29 -0
- package/src/components/Color/examples/03-color-picker-preview.tsx +27 -0
- package/src/components/Color/examples/04-color-slider-primitive.tsx +47 -0
- package/src/components/Color/examples/index.ts +11 -3
- package/src/components/Color/examples.json +18 -8
- package/src/components/Color/index.tsx +8 -4
- package/src/components/Expand/examples/01-basic.tsx +18 -0
- package/src/components/Expand/examples/02-accordion.tsx +46 -0
- package/src/components/Expand/examples/03-custom-trigger.tsx +30 -0
- package/src/components/Expand/examples/04-directions.tsx +33 -0
- package/src/components/Expand/examples/05-settings-panel.tsx +54 -0
- package/src/components/Expand/examples/06-disabled.tsx +19 -0
- package/src/components/Expand/examples/07-inline-info.tsx +29 -0
- package/src/components/Expand/examples/index.ts +20 -2
- package/src/components/Expand/examples.json +34 -4
- package/src/components/Expand/index.tsx +14 -2
- package/src/components/Flex/examples/01-axis-control.tsx +199 -0
- package/src/components/Flex/examples/02-wrap-overflow.tsx +183 -0
- package/src/components/Flex/examples/03-container-query-reflow.tsx +198 -0
- package/src/components/Flex/examples/index.ts +8 -2
- package/src/components/Flex/examples.json +14 -4
- package/src/components/Flex/index.tsx +12 -8
- package/src/components/Gallery/examples/01-grid-composition.tsx +121 -0
- package/src/components/Gallery/examples/02-item-orientation.tsx +133 -0
- package/src/components/Gallery/examples/03-span-layout.tsx +130 -0
- package/src/components/Gallery/examples/index.ts +8 -2
- package/src/components/Gallery/examples.json +14 -4
- package/src/components/Gallery/index.tsx +6 -2
- package/src/components/Grid/examples/02-track-placement.tsx +210 -0
- package/src/components/Grid/examples/03-editorial-spans.tsx +196 -0
- package/src/components/Grid/examples/04-responsive-card-rail.tsx +153 -0
- package/src/components/Grid/examples/index.ts +6 -0
- package/src/components/Grid/examples.json +15 -0
- package/src/components/Grid/index.tsx +6 -0
- package/src/components/Group/examples/02-create-project.tsx +19 -0
- package/src/components/Group/examples/03-filter-bar.tsx +34 -0
- package/src/components/Group/examples/04-documentation-search.tsx +21 -0
- package/src/components/Group/examples/05-email-signup.tsx +21 -0
- package/src/components/Group/examples/06-copy-command.tsx +17 -0
- package/src/components/Group/examples/07-delete-confirmation.tsx +19 -0
- package/src/components/Group/examples/08-slider-integration.tsx +30 -0
- package/src/components/Group/examples/index.ts +14 -0
- package/src/components/Group/examples.json +35 -0
- package/src/components/Group/index.tsx +14 -0
- package/src/components/Input/examples/03-sign-in.tsx +41 -0
- package/src/components/Input/examples/04-search.tsx +31 -0
- package/src/components/Input/examples/05-user-handle.tsx +40 -0
- package/src/components/Input/examples/06-api-key.tsx +48 -0
- package/src/components/Input/examples/07-url-validation.tsx +36 -0
- package/src/components/Input/examples/08-quantity.tsx +26 -0
- package/src/components/Input/examples/index.ts +12 -0
- package/src/components/Input/examples.json +30 -0
- package/src/components/Input/index.tsx +12 -0
- package/src/components/List/examples/02-review-queue.tsx +54 -0
- package/src/components/List/examples/03-notification-rules.tsx +80 -0
- package/src/components/List/examples/04-quota-editor.tsx +71 -0
- package/src/components/List/examples/05-permissions-matrix.tsx +91 -0
- package/src/components/List/examples/index.ts +8 -0
- package/src/components/List/examples.json +20 -0
- package/src/components/List/index.tsx +10 -2
- package/src/components/Menu/examples/03-toolbar-dropdown.tsx +35 -0
- package/src/components/Menu/examples/04-table-row-actions.tsx +60 -0
- package/src/components/Menu/examples/05-context-menu.tsx +36 -0
- package/src/components/Menu/examples/06-view-options.tsx +39 -0
- package/src/components/Menu/examples/index.ts +8 -0
- package/src/components/Menu/examples.json +20 -0
- package/src/components/Menu/index.tsx +8 -0
- package/src/components/Modal/examples/02-form-modal.tsx +1 -1
- package/src/components/Modal/examples/03-delete-confirmation.tsx +42 -0
- package/src/components/Modal/examples/04-create-api-key.tsx +54 -0
- package/src/components/Modal/examples/05-notification-settings.tsx +58 -0
- package/src/components/Modal/examples/index.ts +6 -0
- package/src/components/Modal/examples.json +16 -1
- package/src/components/Modal/index.tsx +8 -0
- package/src/components/Modal/metadata.json +41 -1
- package/src/components/Panel/examples/01-sidebar-toggle.tsx +20 -0
- package/src/components/Panel/examples/index.ts +2 -0
- package/src/components/Panel/examples.json +7 -1
- package/src/components/Panel/index.tsx +9 -0
- package/src/components/Path/examples/01-basic-path.tsx +5 -5
- package/src/components/Path/examples/02-custom-separator.tsx +17 -0
- package/src/components/Path/examples/03-collapsed-breadcrumb.tsx +37 -0
- package/src/components/Path/examples/index.ts +4 -0
- package/src/components/Path/examples.json +11 -1
- package/src/components/Path/index.tsx +15 -11
- package/src/components/Popover/examples/01-basic-popover.tsx +24 -5
- package/src/components/Popover/examples/02-toggleable-options.tsx +58 -0
- package/src/components/Popover/examples/03-table-row-actions.tsx +64 -0
- package/src/components/Popover/examples/04-input-form.tsx +46 -0
- package/src/components/Popover/examples/05-arrow-positions.tsx +27 -0
- package/src/components/Popover/examples/index.ts +8 -0
- package/src/components/Popover/examples.json +23 -3
- package/src/components/Popover/index.tsx +8 -0
- package/src/components/Progress/examples/01-basic-progress.tsx +34 -5
- package/src/components/Progress/examples/02-storage-quota.tsx +22 -0
- package/src/components/Progress/examples/03-onboarding-steps.tsx +34 -0
- package/src/components/Progress/examples/04-indeterminate.tsx +33 -0
- package/src/components/Progress/examples/05-skill-levels.tsx +22 -0
- package/src/components/Progress/examples/index.ts +8 -0
- package/src/components/Progress/examples.json +23 -3
- package/src/components/Progress/index.tsx +10 -14
- package/src/components/Scroll/examples/01-basic-scroll.tsx +45 -12
- package/src/components/Scroll/examples/02-settings-panel.tsx +40 -0
- package/src/components/Scroll/examples/03-horizontal-tags.tsx +38 -0
- package/src/components/Scroll/examples/index.ts +4 -0
- package/src/components/Scroll/examples.json +13 -3
- package/src/components/Scroll/index.tsx +4 -0
- package/src/components/Select/examples/03-country-select.tsx +55 -0
- package/src/components/Select/examples/index.ts +2 -0
- package/src/components/Select/examples.json +5 -0
- package/src/components/Select/index.tsx +2 -0
- package/src/components/Slider/examples/01-basic-slider.tsx +19 -4
- package/src/components/Slider/examples/02-settings-panel.tsx +33 -0
- package/src/components/Slider/examples/03-price-range.tsx +34 -0
- package/src/components/Slider/examples/04-step-slider.tsx +35 -0
- package/src/components/Slider/examples/05-disabled-state.tsx +21 -0
- package/src/components/Slider/examples/06-vertical-mixer.tsx +34 -0
- package/src/components/Slider/examples/index.ts +10 -0
- package/src/components/Slider/examples.json +28 -3
- package/src/components/Slider/index.tsx +10 -0
- package/src/components/Switch/examples/01-basic-switch.tsx +20 -4
- package/src/components/Switch/examples/02-settings-panel.tsx +32 -0
- package/src/components/Switch/examples/03-disabled-state.tsx +21 -0
- package/src/components/Switch/examples/04-small-size.tsx +25 -0
- package/src/components/Switch/examples/05-controlled-toggle.tsx +32 -0
- package/src/components/Switch/examples/index.ts +8 -0
- package/src/components/Switch/examples.json +23 -3
- package/src/components/Switch/index.tsx +8 -0
- package/src/components/Table/index.tsx +0 -1
- package/src/components/Tabs/examples/03-underline-tabs.tsx +23 -0
- package/src/components/Tabs/examples/04-vertical-underline-tabs.tsx +23 -0
- package/src/components/Tabs/examples/index.ts +4 -0
- package/src/components/Tabs/examples.json +10 -0
- package/src/components/Tabs/index.tsx +4 -0
- package/src/components/Textarea/examples/01-basic-textarea.tsx +21 -8
- package/src/components/Textarea/examples/02-bio-settings.tsx +30 -0
- package/src/components/Textarea/examples/03-error-state.tsx +31 -0
- package/src/components/Textarea/examples/04-disabled-readonly.tsx +25 -0
- package/src/components/Textarea/examples/05-scrolling.tsx +26 -0
- package/src/components/Textarea/examples/index.ts +8 -0
- package/src/components/Textarea/examples.json +23 -3
- package/src/components/Textarea/index.tsx +8 -0
- package/src/components/Toast/index.tsx +1 -4
- package/src/generated-data.ts +999 -429
- package/src/generated-styles.ts +1135 -203
- package/src/index.ts +2 -0
- package/src/patterns/data/badge-row/variations/main/index.tsx +1 -1
- package/src/patterns/data/badge-row/variations/mixed/index.tsx +1 -1
- package/src/patterns/data/badge-row/variations/outline/index.tsx +1 -1
- package/src/patterns/data/data-table-row/variations/expandable/index.tsx +1 -1
- package/src/patterns/data/data-table-row/variations/main/index.tsx +1 -1
- package/src/patterns/data/data-table-row/variations/selectable/index.tsx +1 -1
- package/src/patterns/interaction/tab-content-header/variations/with-badge/index.tsx +1 -1
- package/src/patterns/layout/split-row/variations/main/index.tsx +1 -1
- package/src/registry.ts +536 -61
- package/src/types.ts +20 -1
- package/src/utils/load-component-examples.ts +8 -7
- package/src/components/Anchor/examples/01-basic-anchor.tsx +0 -18
- package/src/components/Badge/examples/01-basic-badge.tsx +0 -11
- package/src/components/Badge/examples/02-variants-and-sizes.tsx +0 -71
- package/src/components/Banner/examples/01-basic-banner.tsx +0 -15
- package/src/components/Card/examples/01-basic-card.tsx +0 -22
- package/src/components/Checkbox/examples/01-basic-checkbox.tsx +0 -21
- package/src/components/Checkbox/examples/02-checkbox-group-with-descriptions.tsx +0 -59
- package/src/components/Color/examples/01-basic-color.tsx +0 -25
- package/src/components/Color/examples/02-opacity-slider.tsx +0 -26
- package/src/components/Color/examples/03-format-switching.tsx +0 -46
- package/src/components/Expand/examples/01-basic-expand.tsx +0 -18
- package/src/components/Flex/examples/01-basic-flex.tsx +0 -17
- package/src/components/Gallery/examples/01-basic-gallery.tsx +0 -28
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { List, Select } from "ui-lab-components";
|
|
5
|
+
|
|
6
|
+
export const metadata = {
|
|
7
|
+
title: "Notification Rules",
|
|
8
|
+
description: "Rows can combine a leading checkbox with a trailing Select action.",
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const notificationItems = [
|
|
12
|
+
{ id: "comments", title: "Comments", desc: "Replies and mentions" },
|
|
13
|
+
{ id: "deployments", title: "Deployments", desc: "Preview and production updates" },
|
|
14
|
+
{ id: "incidents", title: "Incidents", desc: "Status changes and postmortems" },
|
|
15
|
+
];
|
|
16
|
+
|
|
17
|
+
export default function Example() {
|
|
18
|
+
const [checked, setChecked] = useState(() => new Set(["comments", "incidents"]));
|
|
19
|
+
const [delivery, setDelivery] = useState<Record<string, string | number | null>>({
|
|
20
|
+
comments: "digest",
|
|
21
|
+
deployments: "email",
|
|
22
|
+
incidents: "push",
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const setItem = (id: string, value: boolean) => {
|
|
26
|
+
setChecked((current) => {
|
|
27
|
+
const next = new Set(current);
|
|
28
|
+
value ? next.add(id) : next.delete(id);
|
|
29
|
+
return next;
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const toggleItem = (id: string) => {
|
|
34
|
+
setChecked((current) => {
|
|
35
|
+
const next = new Set(current);
|
|
36
|
+
next.has(id) ? next.delete(id) : next.add(id);
|
|
37
|
+
return next;
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const setDeliveryMode = (id: string, value: string | number | null) => {
|
|
42
|
+
setDelivery((current) => ({ ...current, [id]: value }));
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
return (
|
|
46
|
+
<List items={notificationItems} spacing="sm" style={{ width: 400 }}>
|
|
47
|
+
{notificationItems.map((item) => (
|
|
48
|
+
<List.Item key={item.id} value={item.id} interactive onClick={() => toggleItem(item.id)}>
|
|
49
|
+
<List.Checkbox
|
|
50
|
+
aria-label={`Enable ${item.title.toLowerCase()} notifications`}
|
|
51
|
+
placement="start"
|
|
52
|
+
checked={checked.has(item.id)}
|
|
53
|
+
onCheckedChange={(value) => setItem(item.id, value)}
|
|
54
|
+
/>
|
|
55
|
+
<div className="min-w-0 flex-1">
|
|
56
|
+
<List.Title>{item.title}</List.Title>
|
|
57
|
+
<List.Desc>{item.desc}</List.Desc>
|
|
58
|
+
</div>
|
|
59
|
+
<List.Select
|
|
60
|
+
selectedKey={delivery[item.id]}
|
|
61
|
+
valueLabel={String(delivery[item.id] ?? "")}
|
|
62
|
+
isDisabled={!checked.has(item.id)}
|
|
63
|
+
onSelectionChange={(value) => setDeliveryMode(item.id, value)}
|
|
64
|
+
>
|
|
65
|
+
<Select.Trigger>
|
|
66
|
+
<Select.Value placeholder="Mode" />
|
|
67
|
+
</Select.Trigger>
|
|
68
|
+
<Select.Content>
|
|
69
|
+
<Select.List>
|
|
70
|
+
<Select.Item value="email">Email</Select.Item>
|
|
71
|
+
<Select.Item value="digest">Digest</Select.Item>
|
|
72
|
+
<Select.Item value="push">Push</Select.Item>
|
|
73
|
+
</Select.List>
|
|
74
|
+
</Select.Content>
|
|
75
|
+
</List.Select>
|
|
76
|
+
</List.Item>
|
|
77
|
+
))}
|
|
78
|
+
</List>
|
|
79
|
+
);
|
|
80
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { List } from "ui-lab-components";
|
|
5
|
+
|
|
6
|
+
export const metadata = {
|
|
7
|
+
title: "Quota Editor",
|
|
8
|
+
description: "Inline inputs work as row actions without taking over the List primitive.",
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const quotaItems = [
|
|
12
|
+
{ id: "seats", title: "Seats", desc: "Maximum workspace members" },
|
|
13
|
+
{ id: "projects", title: "Projects", desc: "Active projects per workspace" },
|
|
14
|
+
{ id: "tokens", title: "Tokens", desc: "Monthly API token budget" },
|
|
15
|
+
];
|
|
16
|
+
|
|
17
|
+
export default function Example() {
|
|
18
|
+
const [checked, setChecked] = useState(() => new Set(["seats", "projects"]));
|
|
19
|
+
const [limits, setLimits] = useState<Record<string, string>>({
|
|
20
|
+
seats: "24",
|
|
21
|
+
projects: "12",
|
|
22
|
+
tokens: "50000",
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const setItem = (id: string, value: boolean) => {
|
|
26
|
+
setChecked((current) => {
|
|
27
|
+
const next = new Set(current);
|
|
28
|
+
value ? next.add(id) : next.delete(id);
|
|
29
|
+
return next;
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const toggleItem = (id: string) => {
|
|
34
|
+
setChecked((current) => {
|
|
35
|
+
const next = new Set(current);
|
|
36
|
+
next.has(id) ? next.delete(id) : next.add(id);
|
|
37
|
+
return next;
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const setLimit = (id: string, value: string) => {
|
|
42
|
+
setLimits((current) => ({ ...current, [id]: value }));
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
return (
|
|
46
|
+
<List items={quotaItems} spacing="sm" style={{ width: 396 }}>
|
|
47
|
+
{quotaItems.map((item) => (
|
|
48
|
+
<List.Item key={item.id} value={item.id} interactive onClick={() => toggleItem(item.id)}>
|
|
49
|
+
<List.Checkbox
|
|
50
|
+
aria-label={`Enable ${item.title.toLowerCase()} limit`}
|
|
51
|
+
placement="start"
|
|
52
|
+
checked={checked.has(item.id)}
|
|
53
|
+
onCheckedChange={(value) => setItem(item.id, value)}
|
|
54
|
+
/>
|
|
55
|
+
<div className="min-w-0 flex-1">
|
|
56
|
+
<List.Title>{item.title}</List.Title>
|
|
57
|
+
<List.Desc>{item.desc}</List.Desc>
|
|
58
|
+
</div>
|
|
59
|
+
<List.Input
|
|
60
|
+
aria-label={`${item.title} limit`}
|
|
61
|
+
type="number"
|
|
62
|
+
value={limits[item.id]}
|
|
63
|
+
disabled={!checked.has(item.id)}
|
|
64
|
+
onChange={(event) => setLimit(item.id, event.currentTarget.value)}
|
|
65
|
+
className="w-24"
|
|
66
|
+
/>
|
|
67
|
+
</List.Item>
|
|
68
|
+
))}
|
|
69
|
+
</List>
|
|
70
|
+
);
|
|
71
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useMemo, useState } from "react";
|
|
4
|
+
import { List, Select } from "ui-lab-components";
|
|
5
|
+
|
|
6
|
+
export const metadata = {
|
|
7
|
+
title: "Permissions Matrix",
|
|
8
|
+
description: "A parent checkbox can summarize rows that also expose per-row Select controls.",
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const permissionItems = [
|
|
12
|
+
{ id: "members", title: "Members", desc: "Invite and remove workspace members" },
|
|
13
|
+
{ id: "billing", title: "Billing", desc: "Update plan, seats, and invoices" },
|
|
14
|
+
{ id: "tokens", title: "Tokens", desc: "Issue scoped API credentials" },
|
|
15
|
+
];
|
|
16
|
+
|
|
17
|
+
export default function Example() {
|
|
18
|
+
const rows = useMemo(() => [{ id: "all", title: "All permissions" }, ...permissionItems], []);
|
|
19
|
+
const [checked, setChecked] = useState(() => new Set(["members", "tokens"]));
|
|
20
|
+
const [level, setLevel] = useState<Record<string, string | number | null>>({
|
|
21
|
+
members: "edit",
|
|
22
|
+
billing: "view",
|
|
23
|
+
tokens: "edit",
|
|
24
|
+
});
|
|
25
|
+
const allChecked = checked.size === permissionItems.length;
|
|
26
|
+
const isIndeterminate = checked.size > 0 && !allChecked;
|
|
27
|
+
|
|
28
|
+
const setItem = (id: string, value: boolean) => {
|
|
29
|
+
setChecked((current) => {
|
|
30
|
+
const next = new Set(current);
|
|
31
|
+
value ? next.add(id) : next.delete(id);
|
|
32
|
+
return next;
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const setAll = (value: boolean) => {
|
|
37
|
+
permissionItems.forEach((item) => setItem(item.id, value));
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const setPermissionLevel = (id: string, value: string | number | null) => {
|
|
41
|
+
setLevel((current) => ({ ...current, [id]: value }));
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<List items={rows} spacing="sm" style={{ width: 420 }}>
|
|
46
|
+
<List.Item value="all" interactive onClick={() => setAll(!allChecked)}>
|
|
47
|
+
<List.Checkbox
|
|
48
|
+
aria-label="Toggle all permissions"
|
|
49
|
+
placement="start"
|
|
50
|
+
checked={allChecked}
|
|
51
|
+
isIndeterminate={isIndeterminate}
|
|
52
|
+
onCheckedChange={setAll}
|
|
53
|
+
/>
|
|
54
|
+
<List.Title>All permissions</List.Title>
|
|
55
|
+
</List.Item>
|
|
56
|
+
<List.Divider />
|
|
57
|
+
{permissionItems.map((item) => (
|
|
58
|
+
<List.Item key={item.id} value={item.id} interactive onClick={() => setItem(item.id, !checked.has(item.id))}>
|
|
59
|
+
<div className="w-5 flex-shrink-0" />
|
|
60
|
+
<List.Checkbox
|
|
61
|
+
aria-label={`Allow ${item.title.toLowerCase()}`}
|
|
62
|
+
placement="start"
|
|
63
|
+
checked={checked.has(item.id)}
|
|
64
|
+
onCheckedChange={(value) => setItem(item.id, value)}
|
|
65
|
+
/>
|
|
66
|
+
<div className="min-w-0 flex-1">
|
|
67
|
+
<List.Title>{item.title}</List.Title>
|
|
68
|
+
<List.Desc>{item.desc}</List.Desc>
|
|
69
|
+
</div>
|
|
70
|
+
<List.Select
|
|
71
|
+
selectedKey={level[item.id]}
|
|
72
|
+
valueLabel={String(level[item.id] ?? "")}
|
|
73
|
+
isDisabled={!checked.has(item.id)}
|
|
74
|
+
onSelectionChange={(value) => setPermissionLevel(item.id, value)}
|
|
75
|
+
>
|
|
76
|
+
<Select.Trigger>
|
|
77
|
+
<Select.Value placeholder="Access" />
|
|
78
|
+
</Select.Trigger>
|
|
79
|
+
<Select.Content>
|
|
80
|
+
<Select.List>
|
|
81
|
+
<Select.Item value="view">View</Select.Item>
|
|
82
|
+
<Select.Item value="edit">Edit</Select.Item>
|
|
83
|
+
<Select.Item value="admin">Admin</Select.Item>
|
|
84
|
+
</Select.List>
|
|
85
|
+
</Select.Content>
|
|
86
|
+
</List.Select>
|
|
87
|
+
</List.Item>
|
|
88
|
+
))}
|
|
89
|
+
</List>
|
|
90
|
+
);
|
|
91
|
+
}
|
|
@@ -1,2 +1,10 @@
|
|
|
1
1
|
export { default as Example1 } from './01-basic.js';
|
|
2
2
|
export { metadata as metadata1 } from './01-basic.js';
|
|
3
|
+
export { default as Example2 } from './02-review-queue.js';
|
|
4
|
+
export { metadata as metadata2 } from './02-review-queue.js';
|
|
5
|
+
export { default as Example3 } from './03-notification-rules.js';
|
|
6
|
+
export { metadata as metadata3 } from './03-notification-rules.js';
|
|
7
|
+
export { default as Example4 } from './04-quota-editor.js';
|
|
8
|
+
export { metadata as metadata4 } from './04-quota-editor.js';
|
|
9
|
+
export { default as Example5 } from './05-permissions-matrix.js';
|
|
10
|
+
export { metadata as metadata5 } from './05-permissions-matrix.js';
|
|
@@ -3,5 +3,25 @@
|
|
|
3
3
|
"title": "Basic List",
|
|
4
4
|
"description": "A simple list displaying basic items with selection and interaction support.",
|
|
5
5
|
"code": "import { List } from 'ui-lab-components';\nimport { Button } from 'ui-lab-components';\n\nexport default function Example() {\n return (\n <List aria-label=\"Basic List Example\">\n <List.Header>\n <h2>Items</h2>\n </List.Header>\n <List.Item interactive>Item One</List.Item>\n <List.Item interactive>Item Two</List.Item>\n <List.Item interactive>Item Three</List.Item>\n <List.Footer align=\"center\">\n <Button variant=\"primary\" size=\"sm\">\n Load More\n </Button>\n </List.Footer>\n </List>\n );\n}"
|
|
6
|
+
},
|
|
7
|
+
"02-review-queue": {
|
|
8
|
+
"title": "Review Queue",
|
|
9
|
+
"description": "A compact checklist for work that can be completed directly from each row.",
|
|
10
|
+
"code": "\"use client\";\n\nimport { useState } from \"react\";\nimport { List } from \"ui-lab-components\";\n\nconst reviewItems = [\n { id: \"legal\", title: \"Legal review\", desc: \"Updated retention language\" },\n { id: \"security\", title: \"Security review\", desc: \"New access scopes\" },\n { id: \"billing\", title: \"Billing review\", desc: \"Invoice copy changes\" },\n];\n\nexport default function Example() {\n const [checked, setChecked] = useState(() => new Set([\"legal\"]));\n\n const setItem = (id: string, value: boolean) => {\n setChecked((current) => {\n const next = new Set(current);\n value ? next.add(id) : next.delete(id);\n return next;\n });\n };\n\n const toggleItem = (id: string) => {\n setChecked((current) => {\n const next = new Set(current);\n next.has(id) ? next.delete(id) : next.add(id);\n return next;\n });\n };\n\n return (\n <List items={reviewItems} spacing=\"sm\" style={{ width: 320 }}>\n {reviewItems.map((item) => (\n <List.Item key={item.id} value={item.id} interactive onClick={() => toggleItem(item.id)}>\n <List.Checkbox\n aria-label={`Mark ${item.title} reviewed`}\n placement=\"start\"\n checked={checked.has(item.id)}\n onCheckedChange={(value) => setItem(item.id, value)}\n />\n <div className=\"min-w-0 flex-1\">\n <List.Title>{item.title}</List.Title>\n <List.Desc>{item.desc}</List.Desc>\n </div>\n </List.Item>\n ))}\n </List>\n );\n}"
|
|
11
|
+
},
|
|
12
|
+
"03-notification-rules": {
|
|
13
|
+
"title": "Notification Rules",
|
|
14
|
+
"description": "Rows can combine a leading checkbox with a trailing Select action.",
|
|
15
|
+
"code": "\"use client\";\n\nimport { useState } from \"react\";\nimport { List, Select } from \"ui-lab-components\";\n\nconst notificationItems = [\n { id: \"comments\", title: \"Comments\", desc: \"Replies and mentions\" },\n { id: \"deployments\", title: \"Deployments\", desc: \"Preview and production updates\" },\n { id: \"incidents\", title: \"Incidents\", desc: \"Status changes and postmortems\" },\n];\n\nexport default function Example() {\n const [checked, setChecked] = useState(() => new Set([\"comments\", \"incidents\"]));\n const [delivery, setDelivery] = useState<Record<string, string | number | null>>({\n comments: \"digest\",\n deployments: \"email\",\n incidents: \"push\",\n });\n\n const setItem = (id: string, value: boolean) => {\n setChecked((current) => {\n const next = new Set(current);\n value ? next.add(id) : next.delete(id);\n return next;\n });\n };\n\n const toggleItem = (id: string) => {\n setChecked((current) => {\n const next = new Set(current);\n next.has(id) ? next.delete(id) : next.add(id);\n return next;\n });\n };\n\n const setDeliveryMode = (id: string, value: string | number | null) => {\n setDelivery((current) => ({ ...current, [id]: value }));\n };\n\n return (\n <List items={notificationItems} spacing=\"sm\" style={{ width: 400 }}>\n {notificationItems.map((item) => (\n <List.Item key={item.id} value={item.id} interactive onClick={() => toggleItem(item.id)}>\n <List.Checkbox\n aria-label={`Enable ${item.title.toLowerCase()} notifications`}\n placement=\"start\"\n checked={checked.has(item.id)}\n onCheckedChange={(value) => setItem(item.id, value)}\n />\n <div className=\"min-w-0 flex-1\">\n <List.Title>{item.title}</List.Title>\n <List.Desc>{item.desc}</List.Desc>\n </div>\n <List.Select\n selectedKey={delivery[item.id]}\n valueLabel={String(delivery[item.id] ?? \"\")}\n isDisabled={!checked.has(item.id)}\n onSelectionChange={(value) => setDeliveryMode(item.id, value)}\n >\n <Select.Trigger>\n <Select.Value placeholder=\"Mode\" />\n </Select.Trigger>\n <Select.Content>\n <Select.List>\n <Select.Item value=\"email\">Email</Select.Item>\n <Select.Item value=\"digest\">Digest</Select.Item>\n <Select.Item value=\"push\">Push</Select.Item>\n </Select.List>\n </Select.Content>\n </List.Select>\n </List.Item>\n ))}\n </List>\n );\n}"
|
|
16
|
+
},
|
|
17
|
+
"04-quota-editor": {
|
|
18
|
+
"title": "Quota Editor",
|
|
19
|
+
"description": "Inline inputs work as row actions without taking over the List primitive.",
|
|
20
|
+
"code": "\"use client\";\n\nimport { useState } from \"react\";\nimport { List } from \"ui-lab-components\";\n\nconst quotaItems = [\n { id: \"seats\", title: \"Seats\", desc: \"Maximum workspace members\" },\n { id: \"projects\", title: \"Projects\", desc: \"Active projects per workspace\" },\n { id: \"tokens\", title: \"Tokens\", desc: \"Monthly API token budget\" },\n];\n\nexport default function Example() {\n const [checked, setChecked] = useState(() => new Set([\"seats\", \"projects\"]));\n const [limits, setLimits] = useState<Record<string, string>>({\n seats: \"24\",\n projects: \"12\",\n tokens: \"50000\",\n });\n\n const setItem = (id: string, value: boolean) => {\n setChecked((current) => {\n const next = new Set(current);\n value ? next.add(id) : next.delete(id);\n return next;\n });\n };\n\n const toggleItem = (id: string) => {\n setChecked((current) => {\n const next = new Set(current);\n next.has(id) ? next.delete(id) : next.add(id);\n return next;\n });\n };\n\n const setLimit = (id: string, value: string) => {\n setLimits((current) => ({ ...current, [id]: value }));\n };\n\n return (\n <List items={quotaItems} spacing=\"sm\" style={{ width: 396 }}>\n {quotaItems.map((item) => (\n <List.Item key={item.id} value={item.id} interactive onClick={() => toggleItem(item.id)}>\n <List.Checkbox\n aria-label={`Enable ${item.title.toLowerCase()} limit`}\n placement=\"start\"\n checked={checked.has(item.id)}\n onCheckedChange={(value) => setItem(item.id, value)}\n />\n <div className=\"min-w-0 flex-1\">\n <List.Title>{item.title}</List.Title>\n <List.Desc>{item.desc}</List.Desc>\n </div>\n <List.Input\n aria-label={`${item.title} limit`}\n type=\"number\"\n value={limits[item.id]}\n disabled={!checked.has(item.id)}\n onChange={(event) => setLimit(item.id, event.currentTarget.value)}\n className=\"w-24\"\n />\n </List.Item>\n ))}\n </List>\n );\n}"
|
|
21
|
+
},
|
|
22
|
+
"05-permissions-matrix": {
|
|
23
|
+
"title": "Permissions Matrix",
|
|
24
|
+
"description": "A parent checkbox can summarize rows that also expose per-row Select controls.",
|
|
25
|
+
"code": "\"use client\";\n\nimport { useMemo, useState } from \"react\";\nimport { List, Select } from \"ui-lab-components\";\n\nconst permissionItems = [\n { id: \"members\", title: \"Members\", desc: \"Invite and remove workspace members\" },\n { id: \"billing\", title: \"Billing\", desc: \"Update plan, seats, and invoices\" },\n { id: \"tokens\", title: \"Tokens\", desc: \"Issue scoped API credentials\" },\n];\n\nexport default function Example() {\n const rows = useMemo(() => [{ id: \"all\", title: \"All permissions\" }, ...permissionItems], []);\n const [checked, setChecked] = useState(() => new Set([\"members\", \"tokens\"]));\n const [level, setLevel] = useState<Record<string, string | number | null>>({\n members: \"edit\",\n billing: \"view\",\n tokens: \"edit\",\n });\n const allChecked = checked.size === permissionItems.length;\n const isIndeterminate = checked.size > 0 && !allChecked;\n\n const setItem = (id: string, value: boolean) => {\n setChecked((current) => {\n const next = new Set(current);\n value ? next.add(id) : next.delete(id);\n return next;\n });\n };\n\n const setAll = (value: boolean) => {\n permissionItems.forEach((item) => setItem(item.id, value));\n };\n\n const setPermissionLevel = (id: string, value: string | number | null) => {\n setLevel((current) => ({ ...current, [id]: value }));\n };\n\n return (\n <List items={rows} spacing=\"sm\" style={{ width: 420 }}>\n <List.Item value=\"all\" interactive onClick={() => setAll(!allChecked)}>\n <List.Checkbox\n aria-label=\"Toggle all permissions\"\n placement=\"start\"\n checked={allChecked}\n isIndeterminate={isIndeterminate}\n onCheckedChange={setAll}\n />\n <List.Title>All permissions</List.Title>\n </List.Item>\n <List.Divider />\n {permissionItems.map((item) => (\n <List.Item key={item.id} value={item.id} interactive onClick={() => setItem(item.id, !checked.has(item.id))}>\n <div className=\"w-5 flex-shrink-0\" />\n <List.Checkbox\n aria-label={`Allow ${item.title.toLowerCase()}`}\n placement=\"start\"\n checked={checked.has(item.id)}\n onCheckedChange={(value) => setItem(item.id, value)}\n />\n <div className=\"min-w-0 flex-1\">\n <List.Title>{item.title}</List.Title>\n <List.Desc>{item.desc}</List.Desc>\n </div>\n <List.Select\n selectedKey={level[item.id]}\n valueLabel={String(level[item.id] ?? \"\")}\n isDisabled={!checked.has(item.id)}\n onSelectionChange={(value) => setPermissionLevel(item.id, value)}\n >\n <Select.Trigger>\n <Select.Value placeholder=\"Access\" />\n </Select.Trigger>\n <Select.Content>\n <Select.List>\n <Select.Item value=\"view\">View</Select.Item>\n <Select.Item value=\"edit\">Edit</Select.Item>\n <Select.Item value=\"admin\">Admin</Select.Item>\n </Select.List>\n </Select.Content>\n </List.Select>\n </List.Item>\n ))}\n </List>\n );\n}"
|
|
6
26
|
}
|
|
7
27
|
}
|
|
@@ -2,11 +2,19 @@ import React from 'react';
|
|
|
2
2
|
import { List, Button } from 'ui-lab-components';
|
|
3
3
|
import { ComponentDetail } from '@/types';
|
|
4
4
|
import Example1, { metadata as metadata1 } from './examples/01-basic.js';
|
|
5
|
+
import Example2, { metadata as metadata2 } from './examples/02-review-queue.js';
|
|
6
|
+
import Example3, { metadata as metadata3 } from './examples/03-notification-rules.js';
|
|
7
|
+
import Example4, { metadata as metadata4 } from './examples/04-quota-editor.js';
|
|
8
|
+
import Example5, { metadata as metadata5 } from './examples/05-permissions-matrix.js';
|
|
5
9
|
import examplesJson from './examples.json' with { type: 'json' };
|
|
6
10
|
import { loadComponentExamples } from '../../utils/load-component-examples.js';
|
|
7
11
|
|
|
8
12
|
const examplesData = [
|
|
9
13
|
{ id: '01-basic', Component: Example1, metadata: metadata1 },
|
|
14
|
+
{ id: '02-review-queue', Component: Example2, metadata: metadata2 },
|
|
15
|
+
{ id: '03-notification-rules', Component: Example3, metadata: metadata3 },
|
|
16
|
+
{ id: '04-quota-editor', Component: Example4, metadata: metadata4 },
|
|
17
|
+
{ id: '05-permissions-matrix', Component: Example5, metadata: metadata5 },
|
|
10
18
|
];
|
|
11
19
|
|
|
12
20
|
const basicListCode = `import { List, Button } from "ui-lab-components";
|
|
@@ -141,7 +149,7 @@ export function Example() {
|
|
|
141
149
|
</List.Header>
|
|
142
150
|
<List.Item interactive>
|
|
143
151
|
<p>Item with actions</p>
|
|
144
|
-
<List.ActionGroup justify="
|
|
152
|
+
<List.ActionGroup justify="between">
|
|
145
153
|
<button>👍 Like</button>
|
|
146
154
|
<button>💬 Reply</button>
|
|
147
155
|
</List.ActionGroup>
|
|
@@ -156,7 +164,7 @@ export function Example() {
|
|
|
156
164
|
</List.Header>
|
|
157
165
|
<List.Item interactive>
|
|
158
166
|
<p className="text-sm text-foreground-300">Item with actions</p>
|
|
159
|
-
<List.ActionGroup justify="
|
|
167
|
+
<List.ActionGroup justify="between">
|
|
160
168
|
<button className="text-sm text-foreground-300 hover:text-foreground-100 transition-colors">👍 Like</button>
|
|
161
169
|
<button className="text-sm text-foreground-300 hover:text-foreground-100 transition-colors">💬 Reply</button>
|
|
162
170
|
</List.ActionGroup>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Menu, Button } from "ui-lab-components";
|
|
2
|
+
import { FaChevronDown } from "react-icons/fa6";
|
|
3
|
+
|
|
4
|
+
export const metadata = {
|
|
5
|
+
title: "Toolbar Dropdown",
|
|
6
|
+
description: "Dropdown menu of actions with keyboard shortcuts and a disabled item.",
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export default function Example() {
|
|
10
|
+
return (
|
|
11
|
+
<Menu type="pop-over">
|
|
12
|
+
<Menu.Trigger>
|
|
13
|
+
<Button variant="ghost">
|
|
14
|
+
File <FaChevronDown className="w-3 h-3 ml-1" />
|
|
15
|
+
</Button>
|
|
16
|
+
</Menu.Trigger>
|
|
17
|
+
<Menu.Content align="start">
|
|
18
|
+
<Menu.Item onSelect={() => {}}>
|
|
19
|
+
New file
|
|
20
|
+
<Menu.Shortcut>⌘N</Menu.Shortcut>
|
|
21
|
+
</Menu.Item>
|
|
22
|
+
<Menu.Item onSelect={() => {}}>
|
|
23
|
+
Open…
|
|
24
|
+
<Menu.Shortcut>⌘O</Menu.Shortcut>
|
|
25
|
+
</Menu.Item>
|
|
26
|
+
<Menu.Item onSelect={() => {}}>
|
|
27
|
+
Save
|
|
28
|
+
<Menu.Shortcut>⌘S</Menu.Shortcut>
|
|
29
|
+
</Menu.Item>
|
|
30
|
+
<Menu.Separator />
|
|
31
|
+
<Menu.Item disabled>Recent files</Menu.Item>
|
|
32
|
+
</Menu.Content>
|
|
33
|
+
</Menu>
|
|
34
|
+
);
|
|
35
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Menu, Button } from "ui-lab-components";
|
|
2
|
+
import { FaEllipsis } from "react-icons/fa6";
|
|
3
|
+
|
|
4
|
+
export const metadata = {
|
|
5
|
+
title: "Table Row Actions",
|
|
6
|
+
description: "Per-row overflow menu in a table, with a destructive action separated from neutral ones.",
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const rows = [
|
|
10
|
+
{ id: "doc_1", name: "Q3 roadmap", updated: "2h ago" },
|
|
11
|
+
{ id: "doc_2", name: "Pricing review", updated: "yesterday" },
|
|
12
|
+
{ id: "doc_3", name: "Hiring plan", updated: "3 days ago" },
|
|
13
|
+
];
|
|
14
|
+
|
|
15
|
+
export default function Example() {
|
|
16
|
+
return (
|
|
17
|
+
<table className="w-full text-sm border-collapse">
|
|
18
|
+
<thead>
|
|
19
|
+
<tr className="border-b border-background-700">
|
|
20
|
+
<th className="text-left py-2 px-3 font-medium text-foreground-200">Document</th>
|
|
21
|
+
<th className="text-left py-2 px-3 font-medium text-foreground-200">Updated</th>
|
|
22
|
+
<th className="py-2 px-3" />
|
|
23
|
+
</tr>
|
|
24
|
+
</thead>
|
|
25
|
+
<tbody>
|
|
26
|
+
{rows.map((row) => (
|
|
27
|
+
<tr key={row.id} className="border-b border-background-700 last:border-0">
|
|
28
|
+
<td className="py-2 px-3">{row.name}</td>
|
|
29
|
+
<td className="py-2 px-3 text-foreground-400">{row.updated}</td>
|
|
30
|
+
<td className="py-2 px-3 text-right">
|
|
31
|
+
<Menu type="pop-over">
|
|
32
|
+
<Menu.Trigger>
|
|
33
|
+
<Button
|
|
34
|
+
icon={<FaEllipsis />}
|
|
35
|
+
size="icon"
|
|
36
|
+
variant="ghost"
|
|
37
|
+
styles="p-2"
|
|
38
|
+
aria-label={`Actions for ${row.name}`}
|
|
39
|
+
/>
|
|
40
|
+
</Menu.Trigger>
|
|
41
|
+
<Menu.Content align="end">
|
|
42
|
+
<Menu.Item onSelect={() => {}}>Open</Menu.Item>
|
|
43
|
+
<Menu.Item onSelect={() => {}}>Rename</Menu.Item>
|
|
44
|
+
<Menu.Item onSelect={() => {}}>Duplicate</Menu.Item>
|
|
45
|
+
<Menu.Separator />
|
|
46
|
+
<Menu.Item
|
|
47
|
+
onSelect={() => {}}
|
|
48
|
+
styles={{ root: "text-destructive" }}
|
|
49
|
+
>
|
|
50
|
+
Delete
|
|
51
|
+
</Menu.Item>
|
|
52
|
+
</Menu.Content>
|
|
53
|
+
</Menu>
|
|
54
|
+
</td>
|
|
55
|
+
</tr>
|
|
56
|
+
))}
|
|
57
|
+
</tbody>
|
|
58
|
+
</table>
|
|
59
|
+
);
|
|
60
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Menu } from "ui-lab-components";
|
|
2
|
+
|
|
3
|
+
export const metadata = {
|
|
4
|
+
title: "Context Menu",
|
|
5
|
+
description: "Right-click anywhere in the surface to open the menu at the cursor position.",
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export default function Example() {
|
|
9
|
+
return (
|
|
10
|
+
<Menu type="context-menu">
|
|
11
|
+
<Menu.Trigger>
|
|
12
|
+
<div className="flex items-center justify-center w-80 h-32 border border-dashed border-background-700 rounded-sm text-sm text-foreground-400 select-none">
|
|
13
|
+
Right-click anywhere in this area
|
|
14
|
+
</div>
|
|
15
|
+
</Menu.Trigger>
|
|
16
|
+
<Menu.Content>
|
|
17
|
+
<Menu.Item onSelect={() => {}}>
|
|
18
|
+
Cut
|
|
19
|
+
<Menu.Shortcut>⌘X</Menu.Shortcut>
|
|
20
|
+
</Menu.Item>
|
|
21
|
+
<Menu.Item onSelect={() => {}}>
|
|
22
|
+
Copy
|
|
23
|
+
<Menu.Shortcut>⌘C</Menu.Shortcut>
|
|
24
|
+
</Menu.Item>
|
|
25
|
+
<Menu.Item onSelect={() => {}}>
|
|
26
|
+
Paste
|
|
27
|
+
<Menu.Shortcut>⌘V</Menu.Shortcut>
|
|
28
|
+
</Menu.Item>
|
|
29
|
+
<Menu.Separator />
|
|
30
|
+
<Menu.Item onSelect={() => {}} styles={{ root: "text-destructive" }}>
|
|
31
|
+
Delete
|
|
32
|
+
</Menu.Item>
|
|
33
|
+
</Menu.Content>
|
|
34
|
+
</Menu>
|
|
35
|
+
);
|
|
36
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { Menu, Button } from "ui-lab-components";
|
|
5
|
+
|
|
6
|
+
export const metadata = {
|
|
7
|
+
title: "View Options",
|
|
8
|
+
description: "Mixed checkbox and radio items for toggling display state and selecting a single density.",
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export default function Example() {
|
|
12
|
+
const [showGrid, setShowGrid] = useState(true);
|
|
13
|
+
const [showRulers, setShowRulers] = useState(false);
|
|
14
|
+
const [density, setDensity] = useState("comfortable");
|
|
15
|
+
|
|
16
|
+
return (
|
|
17
|
+
<Menu type="pop-over">
|
|
18
|
+
<Menu.Trigger>
|
|
19
|
+
<Button>View</Button>
|
|
20
|
+
</Menu.Trigger>
|
|
21
|
+
<Menu.Content align="start">
|
|
22
|
+
<Menu.Label>Display</Menu.Label>
|
|
23
|
+
<Menu.CheckboxItem checked={showGrid} onCheckedChange={setShowGrid}>
|
|
24
|
+
Show grid
|
|
25
|
+
</Menu.CheckboxItem>
|
|
26
|
+
<Menu.CheckboxItem checked={showRulers} onCheckedChange={setShowRulers}>
|
|
27
|
+
Show rulers
|
|
28
|
+
</Menu.CheckboxItem>
|
|
29
|
+
<Menu.Separator />
|
|
30
|
+
<Menu.Label>Density</Menu.Label>
|
|
31
|
+
<Menu.RadioGroup value={density} onValueChange={setDensity}>
|
|
32
|
+
<Menu.RadioItem value="compact">Compact</Menu.RadioItem>
|
|
33
|
+
<Menu.RadioItem value="comfortable">Comfortable</Menu.RadioItem>
|
|
34
|
+
<Menu.RadioItem value="spacious">Spacious</Menu.RadioItem>
|
|
35
|
+
</Menu.RadioGroup>
|
|
36
|
+
</Menu.Content>
|
|
37
|
+
</Menu>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
@@ -2,3 +2,11 @@ export { default as Example1 } from './01-basic-menu.js';
|
|
|
2
2
|
export { metadata as metadata1 } from './01-basic-menu.js';
|
|
3
3
|
export { default as Example2 } from './02-nested-menu.js';
|
|
4
4
|
export { metadata as metadata2 } from './02-nested-menu.js';
|
|
5
|
+
export { default as Example3 } from './03-toolbar-dropdown.js';
|
|
6
|
+
export { metadata as metadata3 } from './03-toolbar-dropdown.js';
|
|
7
|
+
export { default as Example4 } from './04-table-row-actions.js';
|
|
8
|
+
export { metadata as metadata4 } from './04-table-row-actions.js';
|
|
9
|
+
export { default as Example5 } from './05-context-menu.js';
|
|
10
|
+
export { metadata as metadata5 } from './05-context-menu.js';
|
|
11
|
+
export { default as Example6 } from './06-view-options.js';
|
|
12
|
+
export { metadata as metadata6 } from './06-view-options.js';
|
|
@@ -8,5 +8,25 @@
|
|
|
8
8
|
"title": "Nested Menu",
|
|
9
9
|
"description": "Context menu with submenus for organizing related actions. Hover over items with arrows to reveal nested options.",
|
|
10
10
|
"code": "import { Menu } from 'ui-lab-components';\n\nexport default function Example() {\n return (\n <Menu>\n <Menu.Trigger className=\"flex items-center justify-center rounded-md border-2 border-dashed border-background-600 p-12 w-full cursor-context-menu select-none text-foreground-300 hover:border-background-500 transition-colors\">\n Right click here\n </Menu.Trigger>\n <Menu.Content>\n <Menu.Item>New File</Menu.Item>\n <Menu.Item>New Folder</Menu.Item>\n <Menu.Separator />\n <Menu.Sub>\n <Menu.SubTrigger>Open with...</Menu.SubTrigger>\n <Menu.SubContent>\n <Menu.Item>VS Code</Menu.Item>\n <Menu.Item>Sublime Text</Menu.Item>\n <Menu.Item>Vim</Menu.Item>\n <Menu.Separator />\n <Menu.Item>Other Application...</Menu.Item>\n </Menu.SubContent>\n </Menu.Sub>\n <Menu.Sub>\n <Menu.SubTrigger>Share</Menu.SubTrigger>\n <Menu.SubContent>\n <Menu.Item>Copy Link</Menu.Item>\n <Menu.Item>Email</Menu.Item>\n <Menu.Sub>\n <Menu.SubTrigger>Social Media</Menu.SubTrigger>\n <Menu.SubContent>\n <Menu.Item>Twitter</Menu.Item>\n <Menu.Item>LinkedIn</Menu.Item>\n <Menu.Item>Facebook</Menu.Item>\n </Menu.SubContent>\n </Menu.Sub>\n </Menu.SubContent>\n </Menu.Sub>\n <Menu.Separator />\n <Menu.Item>Rename</Menu.Item>\n <Menu.Item disabled>Delete</Menu.Item>\n </Menu.Content>\n </Menu>\n );\n}"
|
|
11
|
+
},
|
|
12
|
+
"03-toolbar-dropdown": {
|
|
13
|
+
"title": "Toolbar Dropdown",
|
|
14
|
+
"description": "Dropdown menu of actions with keyboard shortcuts and a disabled item.",
|
|
15
|
+
"code": "import { Menu, Button } from \"ui-lab-components\";\nimport { FaChevronDown } from \"react-icons/fa6\";\n\nexport default function Example() {\n return (\n <Menu type=\"pop-over\">\n <Menu.Trigger>\n <Button variant=\"ghost\">\n File <FaChevronDown className=\"w-3 h-3 ml-1\" />\n </Button>\n </Menu.Trigger>\n <Menu.Content align=\"start\">\n <Menu.Item onSelect={() => {}}>\n New file\n <Menu.Shortcut>⌘N</Menu.Shortcut>\n </Menu.Item>\n <Menu.Item onSelect={() => {}}>\n Open…\n <Menu.Shortcut>⌘O</Menu.Shortcut>\n </Menu.Item>\n <Menu.Item onSelect={() => {}}>\n Save\n <Menu.Shortcut>⌘S</Menu.Shortcut>\n </Menu.Item>\n <Menu.Separator />\n <Menu.Item disabled>Recent files</Menu.Item>\n </Menu.Content>\n </Menu>\n );\n}"
|
|
16
|
+
},
|
|
17
|
+
"04-table-row-actions": {
|
|
18
|
+
"title": "Table Row Actions",
|
|
19
|
+
"description": "Per-row overflow menu in a table, with a destructive action separated from neutral ones.",
|
|
20
|
+
"code": "import { Menu, Button } from \"ui-lab-components\";\nimport { FaEllipsis } from \"react-icons/fa6\";\n\nconst rows = [\n { id: \"doc_1\", name: \"Q3 roadmap\", updated: \"2h ago\" },\n { id: \"doc_2\", name: \"Pricing review\", updated: \"yesterday\" },\n { id: \"doc_3\", name: \"Hiring plan\", updated: \"3 days ago\" },\n];\n\nexport default function Example() {\n return (\n <table className=\"w-full text-sm border-collapse\">\n <thead>\n <tr className=\"border-b border-background-700\">\n <th className=\"text-left py-2 px-3 font-medium text-foreground-200\">Document</th>\n <th className=\"text-left py-2 px-3 font-medium text-foreground-200\">Updated</th>\n <th className=\"py-2 px-3\" />\n </tr>\n </thead>\n <tbody>\n {rows.map((row) => (\n <tr key={row.id} className=\"border-b border-background-700 last:border-0\">\n <td className=\"py-2 px-3\">{row.name}</td>\n <td className=\"py-2 px-3 text-foreground-400\">{row.updated}</td>\n <td className=\"py-2 px-3 text-right\">\n <Menu type=\"pop-over\">\n <Menu.Trigger>\n <Button\n icon={<FaEllipsis />}\n size=\"icon\"\n variant=\"ghost\"\n styles=\"p-2\"\n aria-label={`Actions for ${row.name}`}\n />\n </Menu.Trigger>\n <Menu.Content align=\"end\">\n <Menu.Item onSelect={() => {}}>Open</Menu.Item>\n <Menu.Item onSelect={() => {}}>Rename</Menu.Item>\n <Menu.Item onSelect={() => {}}>Duplicate</Menu.Item>\n <Menu.Separator />\n <Menu.Item\n onSelect={() => {}}\n styles={{ root: \"text-destructive\" }}\n >\n Delete\n </Menu.Item>\n </Menu.Content>\n </Menu>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n );\n}"
|
|
21
|
+
},
|
|
22
|
+
"05-context-menu": {
|
|
23
|
+
"title": "Context Menu",
|
|
24
|
+
"description": "Right-click anywhere in the surface to open the menu at the cursor position.",
|
|
25
|
+
"code": "import { Menu } from \"ui-lab-components\";\n\nexport default function Example() {\n return (\n <Menu type=\"context-menu\">\n <Menu.Trigger>\n <div className=\"flex items-center justify-center w-80 h-32 border border-dashed border-background-700 rounded-sm text-sm text-foreground-400 select-none\">\n Right-click anywhere in this area\n </div>\n </Menu.Trigger>\n <Menu.Content>\n <Menu.Item onSelect={() => {}}>\n Cut\n <Menu.Shortcut>⌘X</Menu.Shortcut>\n </Menu.Item>\n <Menu.Item onSelect={() => {}}>\n Copy\n <Menu.Shortcut>⌘C</Menu.Shortcut>\n </Menu.Item>\n <Menu.Item onSelect={() => {}}>\n Paste\n <Menu.Shortcut>⌘V</Menu.Shortcut>\n </Menu.Item>\n <Menu.Separator />\n <Menu.Item onSelect={() => {}} styles={{ root: \"text-destructive\" }}>\n Delete\n </Menu.Item>\n </Menu.Content>\n </Menu>\n );\n}"
|
|
26
|
+
},
|
|
27
|
+
"06-view-options": {
|
|
28
|
+
"title": "View Options",
|
|
29
|
+
"description": "Mixed checkbox and radio items for toggling display state and selecting a single density.",
|
|
30
|
+
"code": "\"use client\";\n\nimport { useState } from \"react\";\nimport { Menu, Button } from \"ui-lab-components\";\n\nexport default function Example() {\n const [showGrid, setShowGrid] = useState(true);\n const [showRulers, setShowRulers] = useState(false);\n const [density, setDensity] = useState(\"comfortable\");\n\n return (\n <Menu type=\"pop-over\">\n <Menu.Trigger>\n <Button>View</Button>\n </Menu.Trigger>\n <Menu.Content align=\"start\">\n <Menu.Label>Display</Menu.Label>\n <Menu.CheckboxItem checked={showGrid} onCheckedChange={setShowGrid}>\n Show grid\n </Menu.CheckboxItem>\n <Menu.CheckboxItem checked={showRulers} onCheckedChange={setShowRulers}>\n Show rulers\n </Menu.CheckboxItem>\n <Menu.Separator />\n <Menu.Label>Density</Menu.Label>\n <Menu.RadioGroup value={density} onValueChange={setDensity}>\n <Menu.RadioItem value=\"compact\">Compact</Menu.RadioItem>\n <Menu.RadioItem value=\"comfortable\">Comfortable</Menu.RadioItem>\n <Menu.RadioItem value=\"spacious\">Spacious</Menu.RadioItem>\n </Menu.RadioGroup>\n </Menu.Content>\n </Menu>\n );\n}"
|
|
11
31
|
}
|
|
12
32
|
}
|
|
@@ -3,6 +3,10 @@ import { Menu } from 'ui-lab-components';
|
|
|
3
3
|
import { ControlDef, ComponentDetail } from '@/types';
|
|
4
4
|
import Example1, { metadata as metadata1 } from './examples/01-basic-menu.js';
|
|
5
5
|
import Example2, { metadata as metadata2 } from './examples/02-nested-menu.js';
|
|
6
|
+
import Example3, { metadata as metadata3 } from './examples/03-toolbar-dropdown.js';
|
|
7
|
+
import Example4, { metadata as metadata4 } from './examples/04-table-row-actions.js';
|
|
8
|
+
import Example5, { metadata as metadata5 } from './examples/05-context-menu.js';
|
|
9
|
+
import Example6, { metadata as metadata6 } from './examples/06-view-options.js';
|
|
6
10
|
import examplesJson from './examples.json' with { type: 'json' };
|
|
7
11
|
import { loadComponentExamples } from '../../utils/load-component-examples.js';
|
|
8
12
|
import { FaArrowsRotate, FaStar, FaTrash } from 'react-icons/fa6';
|
|
@@ -10,6 +14,10 @@ import { FaArrowsRotate, FaStar, FaTrash } from 'react-icons/fa6';
|
|
|
10
14
|
const examplesData = [
|
|
11
15
|
{ id: '01-basic-menu', Component: Example1, metadata: metadata1 },
|
|
12
16
|
{ id: '02-nested-menu', Component: Example2, metadata: metadata2 },
|
|
17
|
+
{ id: '03-toolbar-dropdown', Component: Example3, metadata: metadata3 },
|
|
18
|
+
{ id: '04-table-row-actions', Component: Example4, metadata: metadata4 },
|
|
19
|
+
{ id: '05-context-menu', Component: Example5, metadata: metadata5 },
|
|
20
|
+
{ id: '06-view-options', Component: Example6, metadata: metadata6 },
|
|
13
21
|
];
|
|
14
22
|
|
|
15
23
|
const menuControls: ControlDef[] = [];
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { Modal, Button } from "ui-lab-components";
|
|
5
|
+
|
|
6
|
+
export const metadata = {
|
|
7
|
+
title: "Delete Confirmation",
|
|
8
|
+
description: "Destructive action dialog that blocks the user until they explicitly confirm or cancel.",
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export default function Example() {
|
|
12
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<>
|
|
16
|
+
<Button variant="destructive" onClick={() => setIsOpen(true)}>
|
|
17
|
+
Delete workspace
|
|
18
|
+
</Button>
|
|
19
|
+
|
|
20
|
+
<Modal
|
|
21
|
+
isOpen={isOpen}
|
|
22
|
+
onOpenChange={setIsOpen}
|
|
23
|
+
title="Delete workspace"
|
|
24
|
+
footer={
|
|
25
|
+
<>
|
|
26
|
+
<Button variant="ghost" onClick={() => setIsOpen(false)}>
|
|
27
|
+
Cancel
|
|
28
|
+
</Button>
|
|
29
|
+
<Button variant="destructive" onClick={() => setIsOpen(false)}>
|
|
30
|
+
Delete
|
|
31
|
+
</Button>
|
|
32
|
+
</>
|
|
33
|
+
}
|
|
34
|
+
>
|
|
35
|
+
<p className="text-sm text-foreground-300">
|
|
36
|
+
This will permanently delete <strong className="text-foreground-100">acme-corp</strong> and all
|
|
37
|
+
its data. This action cannot be undone.
|
|
38
|
+
</p>
|
|
39
|
+
</Modal>
|
|
40
|
+
</>
|
|
41
|
+
);
|
|
42
|
+
}
|