@alfakit/react 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +21 -0
- package/README.md +19 -2
- package/dist/app/components.d.ts +49 -0
- package/dist/app/components.d.ts.map +1 -0
- package/dist/app/components.js +99 -0
- package/dist/app/components.js.map +1 -0
- package/dist/app/hooks.d.ts +79 -0
- package/dist/app/hooks.d.ts.map +1 -0
- package/dist/app/hooks.js +239 -0
- package/dist/app/hooks.js.map +1 -0
- package/dist/components/actions/action-button.d.ts +17 -0
- package/dist/components/actions/action-button.d.ts.map +1 -0
- package/dist/components/actions/action-button.js +150 -0
- package/dist/components/actions/action-button.js.map +1 -0
- package/dist/components/actions/action-context.d.ts +11 -0
- package/dist/components/actions/action-context.d.ts.map +1 -0
- package/dist/components/actions/action-context.js +24 -0
- package/dist/components/actions/action-context.js.map +1 -0
- package/dist/components/actions/action-list.d.ts +20 -0
- package/dist/components/actions/action-list.d.ts.map +1 -0
- package/dist/components/actions/action-list.js +181 -0
- package/dist/components/actions/action-list.js.map +1 -0
- package/dist/components/actions/action-modals.d.ts +5 -0
- package/dist/components/actions/action-modals.d.ts.map +1 -0
- package/dist/components/actions/action-modals.js +362 -0
- package/dist/components/actions/action-modals.js.map +1 -0
- package/dist/components/actions/index.d.ts +5 -0
- package/dist/components/ai/copilot-panel.js +439 -0
- package/dist/components/ai/copilot-panel.js.map +1 -0
- package/dist/components/ai/copilot.d.ts +12 -0
- package/dist/components/ai/copilot.d.ts.map +1 -0
- package/dist/components/ai/copilot.js +66 -0
- package/dist/components/ai/copilot.js.map +1 -0
- package/dist/components/ai/index.d.ts +3 -0
- package/dist/components/ai/index.js +3 -0
- package/dist/components/ai/stream-lazy.d.ts +9 -0
- package/dist/components/ai/stream-lazy.d.ts.map +1 -0
- package/dist/components/ai/stream-lazy.js +13 -0
- package/dist/components/ai/stream-lazy.js.map +1 -0
- package/dist/components/ai/stream.js +85 -0
- package/dist/components/ai/stream.js.map +1 -0
- package/dist/components/analytics/alfakit-analytics.d.ts +14 -0
- package/dist/components/analytics/alfakit-analytics.d.ts.map +1 -0
- package/dist/components/analytics/alfakit-analytics.js +36 -0
- package/dist/components/analytics/alfakit-analytics.js.map +1 -0
- package/dist/components/analytics/breakdown.d.ts +11 -0
- package/dist/components/analytics/breakdown.d.ts.map +1 -0
- package/dist/components/analytics/breakdown.js +155 -0
- package/dist/components/analytics/breakdown.js.map +1 -0
- package/dist/components/analytics/index.d.ts +3 -0
- package/dist/components/cms/admin-bar.js +68 -0
- package/dist/components/cms/admin-bar.js.map +1 -0
- package/dist/components/cms/blocks.d.ts +41 -0
- package/dist/components/cms/blocks.d.ts.map +1 -0
- package/dist/components/cms/blocks.js +400 -0
- package/dist/components/cms/blocks.js.map +1 -0
- package/dist/components/cms/context.d.ts +24 -0
- package/dist/components/cms/context.d.ts.map +1 -0
- package/dist/components/cms/context.js +43 -0
- package/dist/components/cms/context.js.map +1 -0
- package/dist/components/cms/head.d.ts +11 -0
- package/dist/components/cms/head.d.ts.map +1 -0
- package/dist/components/cms/head.js +40 -0
- package/dist/components/cms/head.js.map +1 -0
- package/dist/components/cms/index.d.ts +8 -0
- package/dist/components/cms/index.js +8 -0
- package/dist/components/cms/live-preview-lazy.d.ts +9 -0
- package/dist/components/cms/live-preview-lazy.d.ts.map +1 -0
- package/dist/components/cms/live-preview-lazy.js +13 -0
- package/dist/components/cms/live-preview-lazy.js.map +1 -0
- package/dist/components/cms/live-preview.js +288 -0
- package/dist/components/cms/live-preview.js.map +1 -0
- package/dist/components/cms/menu.d.ts +24 -0
- package/dist/components/cms/menu.d.ts.map +1 -0
- package/dist/components/cms/menu.js +181 -0
- package/dist/components/cms/menu.js.map +1 -0
- package/dist/components/cms/page.d.ts +27 -0
- package/dist/components/cms/page.d.ts.map +1 -0
- package/dist/components/cms/page.js +180 -0
- package/dist/components/cms/page.js.map +1 -0
- package/dist/components/cms/parts.d.ts +24 -0
- package/dist/components/cms/parts.d.ts.map +1 -0
- package/dist/components/cms/parts.js +58 -0
- package/dist/components/cms/parts.js.map +1 -0
- package/dist/components/dev-tools/dev-tools-inspector.js +302 -0
- package/dist/components/dev-tools/dev-tools-inspector.js.map +1 -0
- package/dist/components/dev-tools/dev-tools-slot.js +24 -0
- package/dist/components/dev-tools/dev-tools-slot.js.map +1 -0
- package/dist/components/entries/code-entry.d.ts +8 -0
- package/dist/components/entries/code-entry.d.ts.map +1 -0
- package/dist/components/entries/code-entry.js +59 -0
- package/dist/components/entries/code-entry.js.map +1 -0
- package/dist/components/entries/entry-wrapper.d.ts +13 -0
- package/dist/components/entries/entry-wrapper.d.ts.map +1 -0
- package/dist/components/entries/entry-wrapper.js +175 -0
- package/dist/components/entries/entry-wrapper.js.map +1 -0
- package/dist/components/entries/index.d.ts +6 -0
- package/dist/components/entries/other-entries.d.ts +20 -0
- package/dist/components/entries/other-entries.d.ts.map +1 -0
- package/dist/components/entries/other-entries.js +169 -0
- package/dist/components/entries/other-entries.js.map +1 -0
- package/dist/components/entries/repeatable-entry-table.js +33 -0
- package/dist/components/entries/repeatable-entry-table.js.map +1 -0
- package/dist/components/entries/text-entry.d.ts +12 -0
- package/dist/components/entries/text-entry.d.ts.map +1 -0
- package/dist/components/entries/text-entry.js +181 -0
- package/dist/components/entries/text-entry.js.map +1 -0
- package/dist/components/entries/view-entry.d.ts +8 -0
- package/dist/components/entries/view-entry.d.ts.map +1 -0
- package/dist/components/entries/view-entry.js +26 -0
- package/dist/components/entries/view-entry.js.map +1 -0
- package/dist/components/fields/builder-picker.js +215 -0
- package/dist/components/fields/builder-picker.js.map +1 -0
- package/dist/components/fields/builder.d.ts +16 -0
- package/dist/components/fields/builder.d.ts.map +1 -0
- package/dist/components/fields/builder.js +351 -0
- package/dist/components/fields/builder.js.map +1 -0
- package/dist/components/fields/checkbox-list.d.ts +7 -0
- package/dist/components/fields/checkbox-list.d.ts.map +1 -0
- package/dist/components/fields/checkbox-list.js +133 -0
- package/dist/components/fields/checkbox-list.js.map +1 -0
- package/dist/components/fields/checkbox.d.ts +7 -0
- package/dist/components/fields/checkbox.d.ts.map +1 -0
- package/dist/components/fields/checkbox.js +29 -0
- package/dist/components/fields/checkbox.js.map +1 -0
- package/dist/components/fields/code-editor-lazy.d.ts +9 -0
- package/dist/components/fields/code-editor-lazy.d.ts.map +1 -0
- package/dist/components/fields/code-editor-lazy.js +31 -0
- package/dist/components/fields/code-editor-lazy.js.map +1 -0
- package/dist/components/fields/code-editor.js +107 -0
- package/dist/components/fields/code-editor.js.map +1 -0
- package/dist/components/fields/code-tokens.js +18 -0
- package/dist/components/fields/code-tokens.js.map +1 -0
- package/dist/components/fields/color-picker.d.ts +7 -0
- package/dist/components/fields/color-picker.d.ts.map +1 -0
- package/dist/components/fields/color-picker.js +70 -0
- package/dist/components/fields/color-picker.js.map +1 -0
- package/dist/components/fields/date-picker.d.ts +7 -0
- package/dist/components/fields/date-picker.d.ts.map +1 -0
- package/dist/components/fields/date-picker.js +230 -0
- package/dist/components/fields/date-picker.js.map +1 -0
- package/dist/components/fields/file-upload.d.ts +7 -0
- package/dist/components/fields/file-upload.d.ts.map +1 -0
- package/dist/components/fields/file-upload.js +397 -0
- package/dist/components/fields/file-upload.js.map +1 -0
- package/dist/components/fields/hidden.d.ts +7 -0
- package/dist/components/fields/hidden.d.ts.map +1 -0
- package/dist/components/fields/hidden.js +17 -0
- package/dist/components/fields/hidden.js.map +1 -0
- package/dist/components/fields/icon-picker-lazy.d.ts +9 -0
- package/dist/components/fields/icon-picker-lazy.d.ts.map +1 -0
- package/dist/components/fields/icon-picker-lazy.js +45 -0
- package/dist/components/fields/icon-picker-lazy.js.map +1 -0
- package/dist/components/fields/icon-picker-value.js +48 -0
- package/dist/components/fields/icon-picker-value.js.map +1 -0
- package/dist/components/fields/icon-picker.js +228 -0
- package/dist/components/fields/icon-picker.js.map +1 -0
- package/dist/components/fields/image-editor-dialog-lazy.js +18 -0
- package/dist/components/fields/image-editor-dialog-lazy.js.map +1 -0
- package/dist/components/fields/image-editor-dialog.js +328 -0
- package/dist/components/fields/image-editor-dialog.js.map +1 -0
- package/dist/components/fields/index.d.ts +24 -0
- package/dist/components/fields/item-actions.js +270 -0
- package/dist/components/fields/item-actions.js.map +1 -0
- package/dist/components/fields/key-value.d.ts +11 -0
- package/dist/components/fields/key-value.d.ts.map +1 -0
- package/dist/components/fields/key-value.js +194 -0
- package/dist/components/fields/key-value.js.map +1 -0
- package/dist/components/fields/lazy-fields.d.ts +13 -0
- package/dist/components/fields/lazy-fields.d.ts.map +1 -0
- package/dist/components/fields/lazy-fields.js +34 -0
- package/dist/components/fields/lazy-fields.js.map +1 -0
- package/dist/components/fields/modal-table-select.js +386 -0
- package/dist/components/fields/modal-table-select.js.map +1 -0
- package/dist/components/fields/money-input.d.ts +7 -0
- package/dist/components/fields/money-input.d.ts.map +1 -0
- package/dist/components/fields/money-input.js +91 -0
- package/dist/components/fields/money-input.js.map +1 -0
- package/dist/components/fields/one-time-code-input.d.ts +12 -0
- package/dist/components/fields/one-time-code-input.d.ts.map +1 -0
- package/dist/components/fields/one-time-code-input.js +53 -0
- package/dist/components/fields/one-time-code-input.js.map +1 -0
- package/dist/components/fields/query-builder-rules.js +295 -0
- package/dist/components/fields/query-builder-rules.js.map +1 -0
- package/dist/components/fields/radio.d.ts +7 -0
- package/dist/components/fields/radio.d.ts.map +1 -0
- package/dist/components/fields/radio.js +57 -0
- package/dist/components/fields/radio.js.map +1 -0
- package/dist/components/fields/repeater-table.js +111 -0
- package/dist/components/fields/repeater-table.js.map +1 -0
- package/dist/components/fields/repeater.d.ts +15 -0
- package/dist/components/fields/repeater.d.ts.map +1 -0
- package/dist/components/fields/repeater.js +209 -0
- package/dist/components/fields/repeater.js.map +1 -0
- package/dist/components/fields/rich-editor-extensions.js +295 -0
- package/dist/components/fields/rich-editor-extensions.js.map +1 -0
- package/dist/components/fields/rich-editor-lazy.d.ts +9 -0
- package/dist/components/fields/rich-editor-lazy.d.ts.map +1 -0
- package/dist/components/fields/rich-editor-lazy.js +24 -0
- package/dist/components/fields/rich-editor-lazy.js.map +1 -0
- package/dist/components/fields/rich-editor.js +517 -0
- package/dist/components/fields/rich-editor.js.map +1 -0
- package/dist/components/fields/select.d.ts +7 -0
- package/dist/components/fields/select.d.ts.map +1 -0
- package/dist/components/fields/select.js +455 -0
- package/dist/components/fields/select.js.map +1 -0
- package/dist/components/fields/slider.d.ts +12 -0
- package/dist/components/fields/slider.d.ts.map +1 -0
- package/dist/components/fields/slider.js +146 -0
- package/dist/components/fields/slider.js.map +1 -0
- package/dist/components/fields/tags-input.d.ts +7 -0
- package/dist/components/fields/tags-input.d.ts.map +1 -0
- package/dist/components/fields/tags-input.js +129 -0
- package/dist/components/fields/tags-input.js.map +1 -0
- package/dist/components/fields/text-input.d.ts +7 -0
- package/dist/components/fields/text-input.d.ts.map +1 -0
- package/dist/components/fields/text-input.js +135 -0
- package/dist/components/fields/text-input.js.map +1 -0
- package/dist/components/fields/textarea.d.ts +7 -0
- package/dist/components/fields/textarea.d.ts.map +1 -0
- package/dist/components/fields/textarea.js +37 -0
- package/dist/components/fields/textarea.js.map +1 -0
- package/dist/components/fields/toggle-buttons.d.ts +7 -0
- package/dist/components/fields/toggle-buttons.d.ts.map +1 -0
- package/dist/components/fields/toggle-buttons.js +84 -0
- package/dist/components/fields/toggle-buttons.js.map +1 -0
- package/dist/components/fields/toggle.d.ts +7 -0
- package/dist/components/fields/toggle.d.ts.map +1 -0
- package/dist/components/fields/toggle.js +39 -0
- package/dist/components/fields/toggle.js.map +1 -0
- package/dist/components/file-manager/file-manager-lazy.d.ts +10 -0
- package/dist/components/file-manager/file-manager-lazy.d.ts.map +1 -0
- package/dist/components/file-manager/file-manager-lazy.js +49 -0
- package/dist/components/file-manager/file-manager-lazy.js.map +1 -0
- package/dist/components/file-manager/file-manager.d.ts +1 -0
- package/dist/components/file-manager/file-manager.js +1387 -0
- package/dist/components/file-manager/file-manager.js.map +1 -0
- package/dist/components/file-manager/index.d.ts +3 -0
- package/dist/components/file-manager/picker-field.d.ts +12 -0
- package/dist/components/file-manager/picker-field.d.ts.map +1 -0
- package/dist/components/file-manager/picker-field.js +124 -0
- package/dist/components/file-manager/picker-field.js.map +1 -0
- package/dist/components/form/form-block.d.ts +12 -0
- package/dist/components/form/form-block.d.ts.map +1 -0
- package/dist/components/form/form-block.js +155 -0
- package/dist/components/form/form-block.js.map +1 -0
- package/dist/components/form/form-context.d.ts +27 -0
- package/dist/components/form/form-context.d.ts.map +1 -0
- package/dist/components/form/form-context.js +65 -0
- package/dist/components/form/form-context.js.map +1 -0
- package/dist/components/helpdesk/chat-panel.js +209 -0
- package/dist/components/helpdesk/chat-panel.js.map +1 -0
- package/dist/components/helpdesk/chat-widget.d.ts +23 -0
- package/dist/components/helpdesk/chat-widget.d.ts.map +1 -0
- package/dist/components/helpdesk/chat-widget.js +76 -0
- package/dist/components/helpdesk/chat-widget.js.map +1 -0
- package/dist/components/helpdesk/inbox-lazy.d.ts +9 -0
- package/dist/components/helpdesk/inbox-lazy.d.ts.map +1 -0
- package/dist/components/helpdesk/inbox-lazy.js +46 -0
- package/dist/components/helpdesk/inbox-lazy.js.map +1 -0
- package/dist/components/helpdesk/inbox.js +609 -0
- package/dist/components/helpdesk/inbox.js.map +1 -0
- package/dist/components/helpdesk/index.d.ts +3 -0
- package/dist/components/kanban/index.d.ts +2 -0
- package/dist/components/kanban/index.js +2 -0
- package/dist/components/kanban/kanban-lazy.d.ts +10 -0
- package/dist/components/kanban/kanban-lazy.d.ts.map +1 -0
- package/dist/components/kanban/kanban-lazy.js +31 -0
- package/dist/components/kanban/kanban-lazy.js.map +1 -0
- package/dist/components/kanban/kanban.js +591 -0
- package/dist/components/kanban/kanban.js.map +1 -0
- package/dist/components/layout/actions.js +40 -0
- package/dist/components/layout/actions.js.map +1 -0
- package/dist/components/layout/component-context.d.ts +13 -0
- package/dist/components/layout/component-context.d.ts.map +1 -0
- package/dist/components/layout/component-context.js +28 -0
- package/dist/components/layout/component-context.js.map +1 -0
- package/dist/components/layout/deferred.js +135 -0
- package/dist/components/layout/deferred.js.map +1 -0
- package/dist/components/layout/elements.d.ts +23 -0
- package/dist/components/layout/elements.d.ts.map +1 -0
- package/dist/components/layout/elements.js +183 -0
- package/dist/components/layout/elements.js.map +1 -0
- package/dist/components/layout/fieldset.d.ts +7 -0
- package/dist/components/layout/fieldset.d.ts.map +1 -0
- package/dist/components/layout/fieldset.js +29 -0
- package/dist/components/layout/fieldset.js.map +1 -0
- package/dist/components/layout/fused-group.d.ts +11 -0
- package/dist/components/layout/fused-group.d.ts.map +1 -0
- package/dist/components/layout/fused-group.js +64 -0
- package/dist/components/layout/fused-group.js.map +1 -0
- package/dist/components/layout/grid.d.ts +7 -0
- package/dist/components/layout/grid.d.ts.map +1 -0
- package/dist/components/layout/grid.js +20 -0
- package/dist/components/layout/grid.js.map +1 -0
- package/dist/components/layout/index.d.ts +12 -0
- package/dist/components/layout/mixed-content.d.ts +14 -0
- package/dist/components/layout/mixed-content.d.ts.map +1 -0
- package/dist/components/layout/mixed-content.js +44 -0
- package/dist/components/layout/mixed-content.js.map +1 -0
- package/dist/components/layout/prime.d.ts +17 -0
- package/dist/components/layout/prime.d.ts.map +1 -0
- package/dist/components/layout/prime.js +126 -0
- package/dist/components/layout/prime.js.map +1 -0
- package/dist/components/layout/schema-children.d.ts +18 -0
- package/dist/components/layout/schema-children.d.ts.map +1 -0
- package/dist/components/layout/schema-children.js +26 -0
- package/dist/components/layout/schema-children.js.map +1 -0
- package/dist/components/layout/section.d.ts +7 -0
- package/dist/components/layout/section.d.ts.map +1 -0
- package/dist/components/layout/section.js +133 -0
- package/dist/components/layout/section.js.map +1 -0
- package/dist/components/layout/tabs.d.ts +7 -0
- package/dist/components/layout/tabs.d.ts.map +1 -0
- package/dist/components/layout/tabs.js +83 -0
- package/dist/components/layout/tabs.js.map +1 -0
- package/dist/components/layout/wizard.d.ts +7 -0
- package/dist/components/layout/wizard.d.ts.map +1 -0
- package/dist/components/layout/wizard.js +172 -0
- package/dist/components/layout/wizard.js.map +1 -0
- package/dist/components/notifications/flash-toasts.d.ts +20 -0
- package/dist/components/notifications/flash-toasts.d.ts.map +1 -0
- package/dist/components/notifications/flash-toasts.js +121 -0
- package/dist/components/notifications/flash-toasts.js.map +1 -0
- package/dist/components/notifications/index.d.ts +5 -0
- package/dist/components/notifications/notifications-menu.d.ts +15 -0
- package/dist/components/notifications/notifications-menu.d.ts.map +1 -0
- package/dist/components/notifications/notifications-menu.js +201 -0
- package/dist/components/notifications/notifications-menu.js.map +1 -0
- package/dist/components/notifications/realtime-notifications.d.ts +9 -0
- package/dist/components/notifications/realtime-notifications.d.ts.map +1 -0
- package/dist/components/notifications/realtime-notifications.js +30 -0
- package/dist/components/notifications/realtime-notifications.js.map +1 -0
- package/dist/components/notifications/undo-button.d.ts +13 -0
- package/dist/components/notifications/undo-button.d.ts.map +1 -0
- package/dist/components/notifications/undo-button.js +54 -0
- package/dist/components/notifications/undo-button.js.map +1 -0
- package/dist/components/panel/app-sidebar.d.ts +7 -0
- package/dist/components/panel/app-sidebar.d.ts.map +1 -0
- package/dist/components/panel/app-sidebar.js +302 -0
- package/dist/components/panel/app-sidebar.js.map +1 -0
- package/dist/components/panel/bottom-nav.d.ts +9 -0
- package/dist/components/panel/bottom-nav.d.ts.map +1 -0
- package/dist/components/panel/bottom-nav.js +100 -0
- package/dist/components/panel/bottom-nav.js.map +1 -0
- package/dist/components/panel/debug-panel-slot.d.ts +8 -0
- package/dist/components/panel/debug-panel-slot.d.ts.map +1 -0
- package/dist/components/panel/debug-panel-slot.js +19 -0
- package/dist/components/panel/debug-panel-slot.js.map +1 -0
- package/dist/components/panel/debug-panel.d.ts +18 -0
- package/dist/components/panel/debug-panel.d.ts.map +1 -0
- package/dist/components/panel/debug-panel.js +423 -0
- package/dist/components/panel/debug-panel.js.map +1 -0
- package/dist/components/panel/global-search-palette.js +278 -0
- package/dist/components/panel/global-search-palette.js.map +1 -0
- package/dist/components/panel/global-search.d.ts +13 -0
- package/dist/components/panel/global-search.d.ts.map +1 -0
- package/dist/components/panel/global-search.js +114 -0
- package/dist/components/panel/global-search.js.map +1 -0
- package/dist/components/panel/impersonation-banner.d.ts +11 -0
- package/dist/components/panel/impersonation-banner.d.ts.map +1 -0
- package/dist/components/panel/impersonation-banner.js +52 -0
- package/dist/components/panel/impersonation-banner.js.map +1 -0
- package/dist/components/panel/index.d.ts +18 -0
- package/dist/components/panel/keyboard-shortcuts.d.ts +10 -0
- package/dist/components/panel/keyboard-shortcuts.d.ts.map +1 -0
- package/dist/components/panel/keyboard-shortcuts.js +107 -0
- package/dist/components/panel/keyboard-shortcuts.js.map +1 -0
- package/dist/components/panel/lazy-placeholder.d.ts +11 -0
- package/dist/components/panel/lazy-placeholder.d.ts.map +1 -0
- package/dist/components/panel/lazy-placeholder.js +35 -0
- package/dist/components/panel/lazy-placeholder.js.map +1 -0
- package/dist/components/panel/locale-switcher.d.ts +19 -0
- package/dist/components/panel/locale-switcher.d.ts.map +1 -0
- package/dist/components/panel/locale-switcher.js +113 -0
- package/dist/components/panel/locale-switcher.js.map +1 -0
- package/dist/components/panel/menu-item.js +65 -0
- package/dist/components/panel/menu-item.js.map +1 -0
- package/dist/components/panel/nav-label.js +29 -0
- package/dist/components/panel/nav-label.js.map +1 -0
- package/dist/components/panel/pwa.d.ts +13 -0
- package/dist/components/panel/pwa.d.ts.map +1 -0
- package/dist/components/panel/pwa.js +90 -0
- package/dist/components/panel/pwa.js.map +1 -0
- package/dist/components/panel/schema-contract-guard.js +44 -0
- package/dist/components/panel/schema-contract-guard.js.map +1 -0
- package/dist/components/panel/shortcut-keys.d.ts +11 -0
- package/dist/components/panel/shortcut-keys.d.ts.map +1 -0
- package/dist/components/panel/shortcut-keys.js +33 -0
- package/dist/components/panel/shortcut-keys.js.map +1 -0
- package/dist/components/panel/shortcuts-overlay.d.ts +13 -0
- package/dist/components/panel/shortcuts-overlay.d.ts.map +1 -0
- package/dist/components/panel/shortcuts-overlay.js +159 -0
- package/dist/components/panel/shortcuts-overlay.js.map +1 -0
- package/dist/components/panel/slot.d.ts +18 -0
- package/dist/components/panel/slot.d.ts.map +1 -0
- package/dist/components/panel/slot.js +31 -0
- package/dist/components/panel/slot.js.map +1 -0
- package/dist/components/panel/sub-navigation.js +125 -0
- package/dist/components/panel/sub-navigation.js.map +1 -0
- package/dist/components/panel/tenant-menu.d.ts +10 -0
- package/dist/components/panel/tenant-menu.d.ts.map +1 -0
- package/dist/components/panel/tenant-menu.js +196 -0
- package/dist/components/panel/tenant-menu.js.map +1 -0
- package/dist/components/panel/theme-toggle.d.ts +4 -0
- package/dist/components/panel/theme-toggle.d.ts.map +1 -0
- package/dist/components/panel/theme-toggle.js +84 -0
- package/dist/components/panel/theme-toggle.js.map +1 -0
- package/dist/components/panel/topbar.d.ts +10 -0
- package/dist/components/panel/topbar.d.ts.map +1 -0
- package/dist/components/panel/topbar.js +74 -0
- package/dist/components/panel/topbar.js.map +1 -0
- package/dist/components/panel/user-menu.d.ts +16 -0
- package/dist/components/panel/user-menu.d.ts.map +1 -0
- package/dist/components/panel/user-menu.js +151 -0
- package/dist/components/panel/user-menu.js.map +1 -0
- package/dist/components/realtime/conflict-banner.d.ts +13 -0
- package/dist/components/realtime/conflict-banner.d.ts.map +1 -0
- package/dist/components/realtime/conflict-banner.js +193 -0
- package/dist/components/realtime/conflict-banner.js.map +1 -0
- package/dist/components/realtime/index.d.ts +4 -0
- package/dist/components/realtime/index.js +4 -0
- package/dist/components/realtime/live-records-pill.d.ts +19 -0
- package/dist/components/realtime/live-records-pill.d.ts.map +1 -0
- package/dist/components/realtime/live-records-pill.js +57 -0
- package/dist/components/realtime/live-records-pill.js.map +1 -0
- package/dist/components/realtime/record-presence.d.ts +12 -0
- package/dist/components/realtime/record-presence.d.ts.map +1 -0
- package/dist/components/realtime/record-presence.js +79 -0
- package/dist/components/realtime/record-presence.js.map +1 -0
- package/dist/components/schema/content-slot.js +49 -0
- package/dist/components/schema/content-slot.js.map +1 -0
- package/dist/components/schema/field-actions.js +72 -0
- package/dist/components/schema/field-actions.js.map +1 -0
- package/dist/components/schema/field-wrapper.d.ts +20 -0
- package/dist/components/schema/field-wrapper.d.ts.map +1 -0
- package/dist/components/schema/field-wrapper.js +210 -0
- package/dist/components/schema/field-wrapper.js.map +1 -0
- package/dist/components/schema/fused-group-context.js +14 -0
- package/dist/components/schema/fused-group-context.js.map +1 -0
- package/dist/components/schema/schema-renderer.d.ts +23 -0
- package/dist/components/schema/schema-renderer.d.ts.map +1 -0
- package/dist/components/schema/schema-renderer.js +77 -0
- package/dist/components/schema/schema-renderer.js.map +1 -0
- package/dist/components/schema/translatable-field.js +76 -0
- package/dist/components/schema/translatable-field.js.map +1 -0
- package/dist/components/schema/virtual-spacer.js +23 -0
- package/dist/components/schema/virtual-spacer.js.map +1 -0
- package/dist/components/table/cells.d.ts +12 -0
- package/dist/components/table/cells.d.ts.map +1 -0
- package/dist/components/table/cells.js +472 -0
- package/dist/components/table/cells.js.map +1 -0
- package/dist/components/table/column-manager.d.ts +17 -0
- package/dist/components/table/column-manager.d.ts.map +1 -0
- package/dist/components/table/column-manager.js +338 -0
- package/dist/components/table/column-manager.js.map +1 -0
- package/dist/components/table/content-layout.d.ts +30 -0
- package/dist/components/table/content-layout.d.ts.map +1 -0
- package/dist/components/table/content-layout.js +224 -0
- package/dist/components/table/content-layout.js.map +1 -0
- package/dist/components/table/filters.d.ts +15 -0
- package/dist/components/table/filters.d.ts.map +1 -0
- package/dist/components/table/filters.js +300 -0
- package/dist/components/table/filters.js.map +1 -0
- package/dist/components/table/grouping.js +194 -0
- package/dist/components/table/grouping.js.map +1 -0
- package/dist/components/table/index.d.ts +10 -0
- package/dist/components/table/list-tabs.js +105 -0
- package/dist/components/table/list-tabs.js.map +1 -0
- package/dist/components/table/pagination.d.ts +7 -0
- package/dist/components/table/pagination.d.ts.map +1 -0
- package/dist/components/table/pagination.js +255 -0
- package/dist/components/table/pagination.js.map +1 -0
- package/dist/components/table/record-cell.d.ts +25 -0
- package/dist/components/table/record-cell.d.ts.map +1 -0
- package/dist/components/table/record-cell.js +86 -0
- package/dist/components/table/record-cell.js.map +1 -0
- package/dist/components/table/spreadsheet-lazy.d.ts +7 -0
- package/dist/components/table/spreadsheet-lazy.d.ts.map +1 -0
- package/dist/components/table/spreadsheet-lazy.js +15 -0
- package/dist/components/table/spreadsheet-lazy.js.map +1 -0
- package/dist/components/table/spreadsheet.d.ts +11 -0
- package/dist/components/table/spreadsheet.d.ts.map +1 -0
- package/dist/components/table/spreadsheet.js +420 -0
- package/dist/components/table/spreadsheet.js.map +1 -0
- package/dist/components/table/summary-rows.js +104 -0
- package/dist/components/table/summary-rows.js.map +1 -0
- package/dist/components/table/table-block.d.ts +12 -0
- package/dist/components/table/table-block.d.ts.map +1 -0
- package/dist/components/table/table-block.js +875 -0
- package/dist/components/table/table-block.js.map +1 -0
- package/dist/components/table/table-views.d.ts +15 -0
- package/dist/components/table/table-views.d.ts.map +1 -0
- package/dist/components/table/table-views.js +376 -0
- package/dist/components/table/table-views.js.map +1 -0
- package/dist/components/table/trigger-button.js +44 -0
- package/dist/components/table/trigger-button.js.map +1 -0
- package/dist/components/translation-manager/index.d.ts +2 -0
- package/dist/components/translation-manager/index.js +2 -0
- package/dist/components/translation-manager/translation-manager-lazy.d.ts +9 -0
- package/dist/components/translation-manager/translation-manager-lazy.d.ts.map +1 -0
- package/dist/components/translation-manager/translation-manager-lazy.js +24 -0
- package/dist/components/translation-manager/translation-manager-lazy.js.map +1 -0
- package/dist/components/translation-manager/translation-manager.js +719 -0
- package/dist/components/translation-manager/translation-manager.js.map +1 -0
- package/dist/components/tree/index.d.ts +2 -0
- package/dist/components/tree/index.js +2 -0
- package/dist/components/tree/tree-lazy.d.ts +10 -0
- package/dist/components/tree/tree-lazy.d.ts.map +1 -0
- package/dist/components/tree/tree-lazy.js +24 -0
- package/dist/components/tree/tree-lazy.js.map +1 -0
- package/dist/components/tree/tree.js +291 -0
- package/dist/components/tree/tree.js.map +1 -0
- package/dist/components/ui/alert.d.ts +12 -0
- package/dist/components/ui/alert.d.ts.map +1 -0
- package/dist/components/ui/alert.js +37 -0
- package/dist/components/ui/alert.js.map +1 -0
- package/dist/components/ui/avatar.d.ts +9 -0
- package/dist/components/ui/avatar.d.ts.map +1 -0
- package/dist/components/ui/avatar.js +29 -0
- package/dist/components/ui/avatar.js.map +1 -0
- package/dist/components/ui/badge.d.ts +12 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/badge.js +26 -0
- package/dist/components/ui/badge.js.map +1 -0
- package/dist/components/ui/breadcrumb.d.ts +14 -0
- package/dist/components/ui/breadcrumb.d.ts.map +1 -0
- package/dist/components/ui/breadcrumb.js +79 -0
- package/dist/components/ui/breadcrumb.js.map +1 -0
- package/dist/components/ui/button.d.ts +13 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +47 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/calendar.d.ts +7 -0
- package/dist/components/ui/calendar.d.ts.map +1 -0
- package/dist/components/ui/calendar.js +48 -0
- package/dist/components/ui/calendar.js.map +1 -0
- package/dist/components/ui/card.d.ts +12 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.js +56 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/checkbox.d.ts +7 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/checkbox.js +21 -0
- package/dist/components/ui/checkbox.js.map +1 -0
- package/dist/components/ui/collapsible.d.ts +9 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/collapsible.js +25 -0
- package/dist/components/ui/collapsible.js.map +1 -0
- package/dist/components/ui/command.d.ts +23 -0
- package/dist/components/ui/command.d.ts.map +1 -0
- package/dist/components/ui/command.js +89 -0
- package/dist/components/ui/command.js.map +1 -0
- package/dist/components/ui/dialog.d.ts +18 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dialog.js +92 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +28 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +123 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/input.d.ts +6 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.js +15 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/label.d.ts +7 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/label.js +15 -0
- package/dist/components/ui/label.js.map +1 -0
- package/dist/components/ui/popover.d.ts +10 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/popover.js +35 -0
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/components/ui/radio-group.d.ts +8 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -0
- package/dist/components/ui/radio-group.js +28 -0
- package/dist/components/ui/radio-group.js.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +8 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.js +36 -0
- package/dist/components/ui/scroll-area.js.map +1 -0
- package/dist/components/ui/select.d.ts +18 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/select.js +96 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/separator.d.ts +7 -0
- package/dist/components/ui/separator.d.ts.map +1 -0
- package/dist/components/ui/separator.js +17 -0
- package/dist/components/ui/separator.js.map +1 -0
- package/dist/components/ui/sheet.d.ts +17 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sheet.js +89 -0
- package/dist/components/ui/sheet.js.map +1 -0
- package/dist/components/ui/sidebar.d.ts +72 -0
- package/dist/components/ui/sidebar.d.ts.map +1 -0
- package/dist/components/ui/sidebar.js +376 -0
- package/dist/components/ui/sidebar.js.map +1 -0
- package/dist/components/ui/skeleton.d.ts +6 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeleton.js +14 -0
- package/dist/components/ui/skeleton.js.map +1 -0
- package/dist/components/ui/sonner.d.ts +6 -0
- package/dist/components/ui/sonner.d.ts.map +1 -0
- package/dist/components/ui/sonner.js +34 -0
- package/dist/components/ui/sonner.js.map +1 -0
- package/dist/components/ui/spinner.d.ts +10 -0
- package/dist/components/ui/spinner.d.ts.map +1 -0
- package/dist/components/ui/spinner.js +30 -0
- package/dist/components/ui/spinner.js.map +1 -0
- package/dist/components/ui/switch.d.ts +7 -0
- package/dist/components/ui/switch.d.ts.map +1 -0
- package/dist/components/ui/switch.js +19 -0
- package/dist/components/ui/switch.js.map +1 -0
- package/dist/components/ui/table.d.ts +13 -0
- package/dist/components/ui/table.d.ts.map +1 -0
- package/dist/components/ui/table.js +67 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/tabs.d.ts +10 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/tabs.js +36 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/textarea.d.ts +6 -0
- package/dist/components/ui/textarea.d.ts.map +1 -0
- package/dist/components/ui/textarea.js +14 -0
- package/dist/components/ui/textarea.js.map +1 -0
- package/dist/components/ui/tooltip.d.ts +10 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/components/ui/tooltip.js +36 -0
- package/dist/components/ui/tooltip.js.map +1 -0
- package/dist/components/versions/record-versions.d.ts +12 -0
- package/dist/components/versions/record-versions.d.ts.map +1 -0
- package/dist/components/versions/record-versions.js +138 -0
- package/dist/components/versions/record-versions.js.map +1 -0
- package/dist/components/widgets/calendar-lazy.d.ts +9 -0
- package/dist/components/widgets/calendar-lazy.d.ts.map +1 -0
- package/dist/components/widgets/calendar-lazy.js +47 -0
- package/dist/components/widgets/calendar-lazy.js.map +1 -0
- package/dist/components/widgets/calendar.js +122 -0
- package/dist/components/widgets/calendar.js.map +1 -0
- package/dist/components/widgets/chart-filters.js +101 -0
- package/dist/components/widgets/chart-filters.js.map +1 -0
- package/dist/components/widgets/chart-lazy.d.ts +9 -0
- package/dist/components/widgets/chart-lazy.d.ts.map +1 -0
- package/dist/components/widgets/chart-lazy.js +27 -0
- package/dist/components/widgets/chart-lazy.js.map +1 -0
- package/dist/components/widgets/chart.js +216 -0
- package/dist/components/widgets/chart.js.map +1 -0
- package/dist/components/widgets/dashboard-customizer.d.ts +15 -0
- package/dist/components/widgets/dashboard-customizer.d.ts.map +1 -0
- package/dist/components/widgets/dashboard-customizer.js +219 -0
- package/dist/components/widgets/dashboard-customizer.js.map +1 -0
- package/dist/components/widgets/index.d.ts +6 -0
- package/dist/components/widgets/stats-overview.d.ts +7 -0
- package/dist/components/widgets/stats-overview.d.ts.map +1 -0
- package/dist/components/widgets/stats-overview.js +133 -0
- package/dist/components/widgets/stats-overview.js.map +1 -0
- package/dist/components/widgets/widgets-block.d.ts +10 -0
- package/dist/components/widgets/widgets-block.d.ts.map +1 -0
- package/dist/components/widgets/widgets-block.js +72 -0
- package/dist/components/widgets/widgets-block.js.map +1 -0
- package/dist/context.d.ts +55 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +115 -0
- package/dist/context.js.map +1 -0
- package/dist/create-alfakit.d.ts +25 -0
- package/dist/create-alfakit.d.ts.map +1 -0
- package/dist/create-alfakit.js +182 -0
- package/dist/create-alfakit.js.map +1 -0
- package/dist/eject-manifest.json +1128 -0
- package/dist/hooks/use-hydrated.d.ts +9 -0
- package/dist/hooks/use-hydrated.d.ts.map +1 -0
- package/dist/hooks/use-hydrated.js +15 -0
- package/dist/hooks/use-hydrated.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +8 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-mobile.js +21 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/hooks/use-store.d.ts +7 -0
- package/dist/hooks/use-store.d.ts.map +1 -0
- package/dist/hooks/use-store.js +13 -0
- package/dist/hooks/use-store.js.map +1 -0
- package/dist/hooks/use-virtual-list.d.ts +29 -0
- package/dist/hooks/use-virtual-list.d.ts.map +1 -0
- package/dist/hooks/use-virtual-list.js +73 -0
- package/dist/hooks/use-virtual-list.js.map +1 -0
- package/dist/index.d.ts +180 -0
- package/dist/index.js +161 -0
- package/dist/layouts/app-layout.d.ts +11 -0
- package/dist/layouts/app-layout.d.ts.map +1 -0
- package/dist/layouts/app-layout.js +104 -0
- package/dist/layouts/app-layout.js.map +1 -0
- package/dist/layouts/auth-layout.d.ts +11 -0
- package/dist/layouts/auth-layout.d.ts.map +1 -0
- package/dist/layouts/auth-layout.js +65 -0
- package/dist/layouts/auth-layout.js.map +1 -0
- package/dist/layouts/blank-layout.d.ts +7 -0
- package/dist/layouts/blank-layout.d.ts.map +1 -0
- package/dist/layouts/blank-layout.js +12 -0
- package/dist/layouts/blank-layout.js.map +1 -0
- package/dist/layouts/fullscreen-layout.d.ts +16 -0
- package/dist/layouts/fullscreen-layout.d.ts.map +1 -0
- package/dist/layouts/fullscreen-layout.js +107 -0
- package/dist/layouts/fullscreen-layout.js.map +1 -0
- package/dist/layouts/top-nav-layout.d.ts +15 -0
- package/dist/layouts/top-nav-layout.d.ts.map +1 -0
- package/dist/layouts/top-nav-layout.js +223 -0
- package/dist/layouts/top-nav-layout.js.map +1 -0
- package/dist/lib/attributes.d.ts +12 -0
- package/dist/lib/attributes.d.ts.map +1 -0
- package/dist/lib/attributes.js +55 -0
- package/dist/lib/attributes.js.map +1 -0
- package/dist/lib/colors.d.ts +23 -0
- package/dist/lib/colors.d.ts.map +1 -0
- package/dist/lib/colors.js +126 -0
- package/dist/lib/colors.js.map +1 -0
- package/dist/lib/discovery.d.ts +22 -0
- package/dist/lib/discovery.d.ts.map +1 -0
- package/dist/lib/discovery.js +45 -0
- package/dist/lib/discovery.js.map +1 -0
- package/dist/lib/icons.d.ts +24 -0
- package/dist/lib/icons.d.ts.map +1 -0
- package/dist/lib/icons.js +93 -0
- package/dist/lib/icons.js.map +1 -0
- package/dist/lib/lazy.d.ts +8 -0
- package/dist/lib/lazy.d.ts.map +1 -0
- package/dist/lib/lazy.js +47 -0
- package/dist/lib/lazy.js.map +1 -0
- package/dist/lib/new-tab-hint.js +15 -0
- package/dist/lib/new-tab-hint.js.map +1 -0
- package/dist/lib/utils.d.ts +5 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +10 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/pages/page.d.ts +23 -0
- package/dist/pages/page.d.ts.map +1 -0
- package/dist/pages/page.js +328 -0
- package/dist/pages/page.js.map +1 -0
- package/dist/registry.d.ts +7 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +113 -0
- package/dist/registry.js.map +1 -0
- package/dist/server.d.ts +28 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +38 -0
- package/dist/server.js.map +1 -0
- package/dist/standalone/alfakit-component.d.ts +30 -0
- package/dist/standalone/alfakit-component.d.ts.map +1 -0
- package/dist/standalone/alfakit-component.js +156 -0
- package/dist/standalone/alfakit-component.js.map +1 -0
- package/dist/standalone/alfakit-toaster.d.ts +26 -0
- package/dist/standalone/alfakit-toaster.d.ts.map +1 -0
- package/dist/standalone/alfakit-toaster.js +38 -0
- package/dist/standalone/alfakit-toaster.js.map +1 -0
- package/dist/standalone/configure.d.ts +14 -0
- package/dist/standalone/configure.d.ts.map +1 -0
- package/dist/standalone/configure.js +27 -0
- package/dist/standalone/configure.js.map +1 -0
- package/dist/standalone/index.d.ts +4 -0
- package/dist/standalone/runtime.js +94 -0
- package/dist/standalone/runtime.js.map +1 -0
- package/dist/standalone.css +150 -0
- package/dist/starter-kit/index.d.ts +4 -0
- package/dist/starter-kit/index.js +4 -0
- package/dist/starter-kit/navigation.d.ts +20 -0
- package/dist/starter-kit/navigation.d.ts.map +1 -0
- package/dist/starter-kit/navigation.js +25 -0
- package/dist/starter-kit/navigation.js.map +1 -0
- package/dist/starter-kit/starter-kit.d.ts +56 -0
- package/dist/starter-kit/starter-kit.d.ts.map +1 -0
- package/dist/starter-kit/starter-kit.js +120 -0
- package/dist/starter-kit/starter-kit.js.map +1 -0
- package/dist/starter-kit/widgets-loaded.js +172 -0
- package/dist/starter-kit/widgets-loaded.js.map +1 -0
- package/dist/starter-kit/widgets-triggers.js +90 -0
- package/dist/starter-kit/widgets-triggers.js.map +1 -0
- package/dist/starter-kit/widgets.d.ts +38 -0
- package/dist/starter-kit/widgets.d.ts.map +1 -0
- package/dist/starter-kit/widgets.js +64 -0
- package/dist/starter-kit/widgets.js.map +1 -0
- package/dist/styles.css +305 -0
- package/dist/themes.css +1340 -0
- package/package.json +128 -3
- package/src/app/components.tsx +104 -0
- package/src/app/hooks.ts +365 -0
- package/src/components/actions/action-button.tsx +254 -0
- package/src/components/actions/action-context.tsx +23 -0
- package/src/components/actions/action-list.tsx +356 -0
- package/src/components/actions/action-modals.tsx +479 -0
- package/src/components/actions/index.ts +4 -0
- package/src/components/ai/copilot-panel.tsx +517 -0
- package/src/components/ai/copilot.tsx +82 -0
- package/src/components/ai/index.ts +2 -0
- package/src/components/ai/stream-lazy.tsx +8 -0
- package/src/components/ai/stream.tsx +100 -0
- package/src/components/analytics/alfakit-analytics.tsx +27 -0
- package/src/components/analytics/breakdown.tsx +150 -0
- package/src/components/analytics/index.ts +2 -0
- package/src/components/cms/admin-bar.tsx +66 -0
- package/src/components/cms/blocks.tsx +474 -0
- package/src/components/cms/context.tsx +57 -0
- package/src/components/cms/head.tsx +47 -0
- package/src/components/cms/index.ts +23 -0
- package/src/components/cms/live-preview-lazy.tsx +8 -0
- package/src/components/cms/live-preview.tsx +339 -0
- package/src/components/cms/menu.tsx +246 -0
- package/src/components/cms/page.tsx +219 -0
- package/src/components/cms/parts.tsx +84 -0
- package/src/components/dev-tools/dev-tools-inspector.tsx +374 -0
- package/src/components/dev-tools/dev-tools-slot.tsx +28 -0
- package/src/components/entries/code-entry.tsx +73 -0
- package/src/components/entries/entry-wrapper.tsx +171 -0
- package/src/components/entries/index.ts +11 -0
- package/src/components/entries/other-entries.tsx +235 -0
- package/src/components/entries/repeatable-entry-table.tsx +50 -0
- package/src/components/entries/text-entry.tsx +264 -0
- package/src/components/entries/view-entry.tsx +27 -0
- package/src/components/fields/builder-picker.tsx +323 -0
- package/src/components/fields/builder.tsx +537 -0
- package/src/components/fields/checkbox-list.tsx +181 -0
- package/src/components/fields/checkbox.tsx +26 -0
- package/src/components/fields/code-editor-lazy.tsx +33 -0
- package/src/components/fields/code-editor.tsx +157 -0
- package/src/components/fields/code-tokens.ts +15 -0
- package/src/components/fields/color-picker.tsx +72 -0
- package/src/components/fields/date-picker.tsx +336 -0
- package/src/components/fields/file-upload.tsx +643 -0
- package/src/components/fields/hidden.tsx +8 -0
- package/src/components/fields/icon-picker-lazy.tsx +44 -0
- package/src/components/fields/icon-picker-value.tsx +46 -0
- package/src/components/fields/icon-picker.tsx +293 -0
- package/src/components/fields/image-editor-dialog-lazy.tsx +22 -0
- package/src/components/fields/image-editor-dialog.tsx +431 -0
- package/src/components/fields/index.ts +23 -0
- package/src/components/fields/item-actions.tsx +381 -0
- package/src/components/fields/key-value.tsx +218 -0
- package/src/components/fields/lazy-fields.tsx +30 -0
- package/src/components/fields/modal-table-select.tsx +519 -0
- package/src/components/fields/money-input.tsx +132 -0
- package/src/components/fields/one-time-code-input.tsx +56 -0
- package/src/components/fields/query-builder-rules.tsx +444 -0
- package/src/components/fields/radio.tsx +67 -0
- package/src/components/fields/repeater-table.tsx +185 -0
- package/src/components/fields/repeater.tsx +317 -0
- package/src/components/fields/rich-editor-extensions.tsx +470 -0
- package/src/components/fields/rich-editor-lazy.tsx +21 -0
- package/src/components/fields/rich-editor.tsx +815 -0
- package/src/components/fields/select.tsx +667 -0
- package/src/components/fields/slider.tsx +262 -0
- package/src/components/fields/tags-input.tsx +176 -0
- package/src/components/fields/text-input.tsx +179 -0
- package/src/components/fields/textarea.tsx +37 -0
- package/src/components/fields/toggle-buttons.tsx +125 -0
- package/src/components/fields/toggle.tsx +50 -0
- package/src/components/file-manager/file-manager-lazy.tsx +52 -0
- package/src/components/file-manager/file-manager.tsx +1857 -0
- package/src/components/file-manager/index.ts +2 -0
- package/src/components/file-manager/picker-field.tsx +169 -0
- package/src/components/form/form-block.tsx +237 -0
- package/src/components/form/form-context.tsx +95 -0
- package/src/components/helpdesk/chat-panel.tsx +247 -0
- package/src/components/helpdesk/chat-widget.tsx +107 -0
- package/src/components/helpdesk/inbox-lazy.tsx +42 -0
- package/src/components/helpdesk/inbox.tsx +745 -0
- package/src/components/helpdesk/index.ts +2 -0
- package/src/components/kanban/index.ts +1 -0
- package/src/components/kanban/kanban-lazy.tsx +34 -0
- package/src/components/kanban/kanban.tsx +788 -0
- package/src/components/layout/actions.tsx +48 -0
- package/src/components/layout/component-context.ts +31 -0
- package/src/components/layout/deferred.tsx +156 -0
- package/src/components/layout/elements.tsx +259 -0
- package/src/components/layout/fieldset.tsx +35 -0
- package/src/components/layout/fused-group.tsx +96 -0
- package/src/components/layout/grid.tsx +19 -0
- package/src/components/layout/index.ts +18 -0
- package/src/components/layout/mixed-content.tsx +59 -0
- package/src/components/layout/prime.tsx +168 -0
- package/src/components/layout/schema-children.tsx +30 -0
- package/src/components/layout/section.tsx +173 -0
- package/src/components/layout/tabs.tsx +129 -0
- package/src/components/layout/wizard.tsx +244 -0
- package/src/components/notifications/flash-toasts.tsx +200 -0
- package/src/components/notifications/index.ts +4 -0
- package/src/components/notifications/notifications-menu.tsx +262 -0
- package/src/components/notifications/realtime-notifications.tsx +40 -0
- package/src/components/notifications/undo-button.tsx +50 -0
- package/src/components/panel/app-sidebar.tsx +439 -0
- package/src/components/panel/bottom-nav.tsx +130 -0
- package/src/components/panel/debug-panel-slot.tsx +25 -0
- package/src/components/panel/debug-panel.tsx +412 -0
- package/src/components/panel/global-search-palette.tsx +387 -0
- package/src/components/panel/global-search.tsx +147 -0
- package/src/components/panel/impersonation-banner.tsx +47 -0
- package/src/components/panel/index.ts +16 -0
- package/src/components/panel/keyboard-shortcuts.tsx +134 -0
- package/src/components/panel/lazy-placeholder.tsx +39 -0
- package/src/components/panel/locale-switcher.tsx +144 -0
- package/src/components/panel/menu-item.tsx +89 -0
- package/src/components/panel/nav-label.tsx +34 -0
- package/src/components/panel/pwa.tsx +118 -0
- package/src/components/panel/schema-contract-guard.tsx +50 -0
- package/src/components/panel/shortcut-keys.tsx +34 -0
- package/src/components/panel/shortcuts-overlay.tsx +238 -0
- package/src/components/panel/slot.tsx +43 -0
- package/src/components/panel/sub-navigation.tsx +161 -0
- package/src/components/panel/tenant-menu.tsx +175 -0
- package/src/components/panel/theme-toggle.tsx +69 -0
- package/src/components/panel/topbar.tsx +81 -0
- package/src/components/panel/user-menu.tsx +166 -0
- package/src/components/realtime/conflict-banner.tsx +208 -0
- package/src/components/realtime/index.ts +3 -0
- package/src/components/realtime/live-records-pill.tsx +66 -0
- package/src/components/realtime/record-presence.tsx +98 -0
- package/src/components/schema/content-slot.tsx +81 -0
- package/src/components/schema/field-actions.tsx +67 -0
- package/src/components/schema/field-wrapper.tsx +246 -0
- package/src/components/schema/fused-group-context.ts +11 -0
- package/src/components/schema/schema-renderer.tsx +127 -0
- package/src/components/schema/translatable-field.tsx +113 -0
- package/src/components/schema/virtual-spacer.tsx +14 -0
- package/src/components/table/cells.tsx +712 -0
- package/src/components/table/column-manager.tsx +480 -0
- package/src/components/table/content-layout.tsx +368 -0
- package/src/components/table/filters.tsx +378 -0
- package/src/components/table/grouping.tsx +275 -0
- package/src/components/table/index.ts +9 -0
- package/src/components/table/list-tabs.tsx +144 -0
- package/src/components/table/pagination.tsx +335 -0
- package/src/components/table/record-cell.tsx +147 -0
- package/src/components/table/spreadsheet-lazy.tsx +14 -0
- package/src/components/table/spreadsheet.tsx +602 -0
- package/src/components/table/summary-rows.tsx +160 -0
- package/src/components/table/table-block.tsx +1112 -0
- package/src/components/table/table-views.tsx +460 -0
- package/src/components/table/trigger-button.tsx +92 -0
- package/src/components/translation-manager/index.ts +1 -0
- package/src/components/translation-manager/translation-manager-lazy.tsx +25 -0
- package/src/components/translation-manager/translation-manager.tsx +827 -0
- package/src/components/tree/index.ts +1 -0
- package/src/components/tree/tree-lazy.tsx +30 -0
- package/src/components/tree/tree.tsx +385 -0
- package/src/components/ui/alert.tsx +57 -0
- package/src/components/ui/avatar.tsx +38 -0
- package/src/components/ui/badge.tsx +33 -0
- package/src/components/ui/breadcrumb.tsx +110 -0
- package/src/components/ui/button.tsx +54 -0
- package/src/components/ui/calendar.tsx +65 -0
- package/src/components/ui/card.tsx +74 -0
- package/src/components/ui/checkbox.tsx +30 -0
- package/src/components/ui/collapsible.tsx +20 -0
- package/src/components/ui/command.tsx +158 -0
- package/src/components/ui/dialog.tsx +124 -0
- package/src/components/ui/dropdown-menu.tsx +217 -0
- package/src/components/ui/input.tsx +20 -0
- package/src/components/ui/label.tsx +18 -0
- package/src/components/ui/popover.tsx +39 -0
- package/src/components/ui/radio-group.tsx +36 -0
- package/src/components/ui/scroll-area.tsx +53 -0
- package/src/components/ui/select.tsx +165 -0
- package/src/components/ui/separator.tsx +25 -0
- package/src/components/ui/sheet.tsx +131 -0
- package/src/components/ui/sidebar.tsx +660 -0
- package/src/components/ui/skeleton.tsx +14 -0
- package/src/components/ui/sonner.tsx +43 -0
- package/src/components/ui/spinner.tsx +31 -0
- package/src/components/ui/switch.tsx +25 -0
- package/src/components/ui/table.tsx +89 -0
- package/src/components/ui/tabs.tsx +51 -0
- package/src/components/ui/textarea.tsx +17 -0
- package/src/components/ui/tooltip.tsx +50 -0
- package/src/components/versions/record-versions.tsx +162 -0
- package/src/components/widgets/calendar-lazy.tsx +31 -0
- package/src/components/widgets/calendar.tsx +124 -0
- package/src/components/widgets/chart-filters.tsx +114 -0
- package/src/components/widgets/chart-lazy.tsx +21 -0
- package/src/components/widgets/chart.tsx +252 -0
- package/src/components/widgets/dashboard-customizer.tsx +309 -0
- package/src/components/widgets/index.ts +5 -0
- package/src/components/widgets/stats-overview.tsx +185 -0
- package/src/components/widgets/widgets-block.tsx +102 -0
- package/src/context.tsx +187 -0
- package/src/create-alfakit.tsx +300 -0
- package/src/hooks/use-hydrated.ts +16 -0
- package/src/hooks/use-mobile.ts +29 -0
- package/src/hooks/use-store.ts +18 -0
- package/src/hooks/use-virtual-list.ts +88 -0
- package/src/index.ts +135 -0
- package/src/layouts/app-layout.tsx +128 -0
- package/src/layouts/auth-layout.tsx +66 -0
- package/src/layouts/blank-layout.tsx +5 -0
- package/src/layouts/fullscreen-layout.tsx +86 -0
- package/src/layouts/top-nav-layout.tsx +293 -0
- package/src/lib/attributes.ts +79 -0
- package/src/lib/colors.ts +151 -0
- package/src/lib/discovery.tsx +68 -0
- package/src/lib/icons.tsx +145 -0
- package/src/lib/lazy.tsx +89 -0
- package/src/lib/new-tab-hint.tsx +8 -0
- package/src/lib/utils.ts +6 -0
- package/src/pages/page.tsx +463 -0
- package/src/registry.ts +132 -0
- package/src/server.tsx +68 -0
- package/src/standalone/alfakit-component.tsx +222 -0
- package/src/standalone/alfakit-toaster.tsx +52 -0
- package/src/standalone/configure.ts +24 -0
- package/src/standalone/index.ts +3 -0
- package/src/standalone/runtime.ts +153 -0
- package/src/starter-kit/index.ts +14 -0
- package/src/starter-kit/navigation.ts +34 -0
- package/src/starter-kit/starter-kit.tsx +196 -0
- package/src/starter-kit/widgets-loaded.tsx +217 -0
- package/src/starter-kit/widgets-triggers.tsx +103 -0
- package/src/starter-kit/widgets.tsx +103 -0
- package/src/styles.css +305 -0
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
import { useT } from "../../context.js";
|
|
2
|
+
import { cn } from "../../lib/utils.js";
|
|
3
|
+
import { Icon } from "../../lib/icons.js";
|
|
4
|
+
import { Button } from "./button.js";
|
|
5
|
+
import { Tooltip as Tooltip$1, TooltipContent, TooltipTrigger } from "./tooltip.js";
|
|
6
|
+
import { Skeleton } from "./skeleton.js";
|
|
7
|
+
import { Input } from "./input.js";
|
|
8
|
+
import { useIsMobile } from "../../hooks/use-mobile.js";
|
|
9
|
+
import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from "./sheet.js";
|
|
10
|
+
import { Separator as Separator$1 } from "./separator.js";
|
|
11
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useState } from "react";
|
|
12
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { cva } from "class-variance-authority";
|
|
14
|
+
import { Slot } from "radix-ui";
|
|
15
|
+
import { PanelLeftIcon } from "lucide-react";
|
|
16
|
+
//#region src/components/ui/sidebar.tsx
|
|
17
|
+
const SIDEBAR_COOKIE_NAME = "alfakit_sidebar_state";
|
|
18
|
+
const SIDEBAR_COOKIE_MAX_AGE = 604800;
|
|
19
|
+
const SIDEBAR_WIDTH = "16rem";
|
|
20
|
+
const SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
21
|
+
const SIDEBAR_WIDTH_ICON = "3rem";
|
|
22
|
+
const SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
23
|
+
const SidebarContext = createContext(null);
|
|
24
|
+
function useSidebar() {
|
|
25
|
+
const context = useContext(SidebarContext);
|
|
26
|
+
if (!context) throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
27
|
+
return context;
|
|
28
|
+
}
|
|
29
|
+
function SidebarProvider({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }) {
|
|
30
|
+
const isMobile = useIsMobile();
|
|
31
|
+
const [openMobile, setOpenMobile] = useState(false);
|
|
32
|
+
const [_open, _setOpen] = useState(defaultOpen);
|
|
33
|
+
const open = openProp ?? _open;
|
|
34
|
+
const setOpen = useCallback((value) => {
|
|
35
|
+
const openState = typeof value === "function" ? value(open) : value;
|
|
36
|
+
if (setOpenProp) setOpenProp(openState);
|
|
37
|
+
else _setOpen(openState);
|
|
38
|
+
document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
|
|
39
|
+
}, [setOpenProp, open]);
|
|
40
|
+
const toggleSidebar = useCallback(() => isMobile ? setOpenMobile((value) => !value) : setOpen((value) => !value), [isMobile, setOpen]);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
const handleKeyDown = (event) => {
|
|
43
|
+
if (event.defaultPrevented || event.target?.isContentEditable) return;
|
|
44
|
+
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
45
|
+
event.preventDefault();
|
|
46
|
+
toggleSidebar();
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
50
|
+
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
51
|
+
}, [toggleSidebar]);
|
|
52
|
+
const state = open ? "expanded" : "collapsed";
|
|
53
|
+
const contextValue = useMemo(() => ({
|
|
54
|
+
state,
|
|
55
|
+
open,
|
|
56
|
+
setOpen,
|
|
57
|
+
isMobile,
|
|
58
|
+
openMobile,
|
|
59
|
+
setOpenMobile,
|
|
60
|
+
toggleSidebar
|
|
61
|
+
}), [
|
|
62
|
+
state,
|
|
63
|
+
open,
|
|
64
|
+
setOpen,
|
|
65
|
+
isMobile,
|
|
66
|
+
openMobile,
|
|
67
|
+
toggleSidebar
|
|
68
|
+
]);
|
|
69
|
+
return /* @__PURE__ */ jsx(SidebarContext.Provider, {
|
|
70
|
+
value: contextValue,
|
|
71
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
72
|
+
"data-slot": "sidebar-wrapper",
|
|
73
|
+
style: {
|
|
74
|
+
"--sidebar-width": SIDEBAR_WIDTH,
|
|
75
|
+
"--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
|
|
76
|
+
...style
|
|
77
|
+
},
|
|
78
|
+
className: cn("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full", className),
|
|
79
|
+
...props,
|
|
80
|
+
children
|
|
81
|
+
})
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
function Sidebar({ side = "left", variant = "sidebar", collapsible = "offcanvas", className, children, ...props }) {
|
|
85
|
+
const t = useT();
|
|
86
|
+
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
87
|
+
if (collapsible === "none") return /* @__PURE__ */ jsx("div", {
|
|
88
|
+
"data-slot": "sidebar",
|
|
89
|
+
className: cn("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col", className),
|
|
90
|
+
...props,
|
|
91
|
+
children
|
|
92
|
+
});
|
|
93
|
+
if (isMobile) return /* @__PURE__ */ jsx(Sheet, {
|
|
94
|
+
open: openMobile,
|
|
95
|
+
onOpenChange: setOpenMobile,
|
|
96
|
+
...props,
|
|
97
|
+
children: /* @__PURE__ */ jsxs(SheetContent, {
|
|
98
|
+
"data-sidebar": "sidebar",
|
|
99
|
+
"data-slot": "sidebar",
|
|
100
|
+
"data-mobile": "true",
|
|
101
|
+
className: "bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",
|
|
102
|
+
style: { "--sidebar-width": SIDEBAR_WIDTH_MOBILE },
|
|
103
|
+
side,
|
|
104
|
+
children: [/* @__PURE__ */ jsxs(SheetHeader, {
|
|
105
|
+
className: "sr-only",
|
|
106
|
+
children: [/* @__PURE__ */ jsx(SheetTitle, { children: t("sidebar", {}, "Sidebar") }), /* @__PURE__ */ jsx(SheetDescription, { children: t("mobile_sidebar", {}, "Displays the mobile sidebar.") })]
|
|
107
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
108
|
+
className: "flex h-full w-full flex-col",
|
|
109
|
+
children
|
|
110
|
+
})]
|
|
111
|
+
})
|
|
112
|
+
});
|
|
113
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
114
|
+
className: "text-sidebar-foreground group peer hidden md:block",
|
|
115
|
+
"data-state": state,
|
|
116
|
+
"data-collapsible": state === "collapsed" ? collapsible : "",
|
|
117
|
+
"data-variant": variant,
|
|
118
|
+
"data-side": side,
|
|
119
|
+
"data-slot": "sidebar",
|
|
120
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
121
|
+
"data-slot": "sidebar-gap",
|
|
122
|
+
className: cn("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear", "group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180", variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)")
|
|
123
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
124
|
+
"data-slot": "sidebar-container",
|
|
125
|
+
className: cn("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex", side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]", variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l", className),
|
|
126
|
+
...props,
|
|
127
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
128
|
+
"data-sidebar": "sidebar",
|
|
129
|
+
"data-slot": "sidebar-inner",
|
|
130
|
+
className: "bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",
|
|
131
|
+
children
|
|
132
|
+
})
|
|
133
|
+
})]
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
function SidebarTrigger({ className, onClick, ...props }) {
|
|
137
|
+
const t = useT();
|
|
138
|
+
const { toggleSidebar } = useSidebar();
|
|
139
|
+
return /* @__PURE__ */ jsxs(Button, {
|
|
140
|
+
"data-sidebar": "trigger",
|
|
141
|
+
"data-slot": "sidebar-trigger",
|
|
142
|
+
variant: "ghost",
|
|
143
|
+
size: "icon",
|
|
144
|
+
className: cn("size-7", className),
|
|
145
|
+
onClick: (event) => {
|
|
146
|
+
onClick?.(event);
|
|
147
|
+
toggleSidebar();
|
|
148
|
+
},
|
|
149
|
+
...props,
|
|
150
|
+
children: [/* @__PURE__ */ jsx(Icon, {
|
|
151
|
+
name: "alfakit::panels.sidebar.toggle-button",
|
|
152
|
+
fallback: PanelLeftIcon
|
|
153
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
154
|
+
className: "sr-only",
|
|
155
|
+
children: t("toggle_sidebar", {}, "Toggle sidebar")
|
|
156
|
+
})]
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
function SidebarRail({ className, ...props }) {
|
|
160
|
+
const t = useT();
|
|
161
|
+
const { toggleSidebar } = useSidebar();
|
|
162
|
+
return /* @__PURE__ */ jsx("button", {
|
|
163
|
+
"data-sidebar": "rail",
|
|
164
|
+
"data-slot": "sidebar-rail",
|
|
165
|
+
"aria-label": t("toggle_sidebar", {}, "Toggle sidebar"),
|
|
166
|
+
tabIndex: -1,
|
|
167
|
+
onClick: toggleSidebar,
|
|
168
|
+
title: t("toggle_sidebar", {}, "Toggle sidebar"),
|
|
169
|
+
className: cn("hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex", "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize", "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize", "hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full", "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2", "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2", className),
|
|
170
|
+
...props
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
function SidebarInset({ className, ...props }) {
|
|
174
|
+
return /* @__PURE__ */ jsx("main", {
|
|
175
|
+
"data-slot": "sidebar-inset",
|
|
176
|
+
className: cn("bg-background relative flex w-full min-w-0 flex-1 flex-col", "md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2", className),
|
|
177
|
+
...props
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
function SidebarInput({ className, ...props }) {
|
|
181
|
+
return /* @__PURE__ */ jsx(Input, {
|
|
182
|
+
"data-slot": "sidebar-input",
|
|
183
|
+
"data-sidebar": "input",
|
|
184
|
+
className: cn("bg-background h-8 w-full shadow-none", className),
|
|
185
|
+
...props
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
function SidebarHeader({ className, ...props }) {
|
|
189
|
+
return /* @__PURE__ */ jsx("div", {
|
|
190
|
+
"data-slot": "sidebar-header",
|
|
191
|
+
"data-sidebar": "header",
|
|
192
|
+
className: cn("flex flex-col gap-2 p-2", className),
|
|
193
|
+
...props
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
function SidebarFooter({ className, ...props }) {
|
|
197
|
+
return /* @__PURE__ */ jsx("div", {
|
|
198
|
+
"data-slot": "sidebar-footer",
|
|
199
|
+
"data-sidebar": "footer",
|
|
200
|
+
className: cn("flex flex-col gap-2 p-2", className),
|
|
201
|
+
...props
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
function SidebarSeparator({ className, ...props }) {
|
|
205
|
+
return /* @__PURE__ */ jsx(Separator$1, {
|
|
206
|
+
"data-slot": "sidebar-separator",
|
|
207
|
+
"data-sidebar": "separator",
|
|
208
|
+
className: cn("bg-sidebar-border mx-2 w-auto", className),
|
|
209
|
+
...props
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
function SidebarContent({ className, ...props }) {
|
|
213
|
+
return /* @__PURE__ */ jsx("div", {
|
|
214
|
+
"data-slot": "sidebar-content",
|
|
215
|
+
"data-sidebar": "content",
|
|
216
|
+
className: cn("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden", className),
|
|
217
|
+
...props
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
function SidebarGroup({ className, ...props }) {
|
|
221
|
+
return /* @__PURE__ */ jsx("div", {
|
|
222
|
+
"data-slot": "sidebar-group",
|
|
223
|
+
"data-sidebar": "group",
|
|
224
|
+
className: cn("relative flex w-full min-w-0 flex-col p-2", className),
|
|
225
|
+
...props
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
function SidebarGroupLabel({ className, asChild = false, ...props }) {
|
|
229
|
+
const Comp = asChild ? Slot.Root : "div";
|
|
230
|
+
return /* @__PURE__ */ jsx(Comp, {
|
|
231
|
+
"data-slot": "sidebar-group-label",
|
|
232
|
+
"data-sidebar": "group-label",
|
|
233
|
+
className: cn("text-sidebar-foreground/80 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0", className),
|
|
234
|
+
...props
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
function SidebarGroupAction({ className, asChild = false, ...props }) {
|
|
238
|
+
const Comp = asChild ? Slot.Root : "button";
|
|
239
|
+
return /* @__PURE__ */ jsx(Comp, {
|
|
240
|
+
"data-slot": "sidebar-group-action",
|
|
241
|
+
"data-sidebar": "group-action",
|
|
242
|
+
className: cn("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute end-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "after:absolute after:-inset-2 md:after:hidden", "group-data-[collapsible=icon]:hidden", className),
|
|
243
|
+
...props
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
function SidebarGroupContent({ className, ...props }) {
|
|
247
|
+
return /* @__PURE__ */ jsx("div", {
|
|
248
|
+
"data-slot": "sidebar-group-content",
|
|
249
|
+
"data-sidebar": "group-content",
|
|
250
|
+
className: cn("w-full text-sm", className),
|
|
251
|
+
...props
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
function SidebarMenu({ className, ...props }) {
|
|
255
|
+
return /* @__PURE__ */ jsx("ul", {
|
|
256
|
+
"data-slot": "sidebar-menu",
|
|
257
|
+
"data-sidebar": "menu",
|
|
258
|
+
className: cn("flex w-full min-w-0 flex-col gap-1", className),
|
|
259
|
+
...props
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
function SidebarMenuItem({ className, ...props }) {
|
|
263
|
+
return /* @__PURE__ */ jsx("li", {
|
|
264
|
+
"data-slot": "sidebar-menu-item",
|
|
265
|
+
"data-sidebar": "menu-item",
|
|
266
|
+
className: cn("group/menu-item relative", className),
|
|
267
|
+
...props
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
const sidebarMenuButtonVariants = cva("peer/menu-button ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-start text-sm outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pe-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0", {
|
|
271
|
+
variants: {
|
|
272
|
+
variant: {
|
|
273
|
+
default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
274
|
+
outline: "bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"
|
|
275
|
+
},
|
|
276
|
+
size: {
|
|
277
|
+
default: "h-8 text-sm",
|
|
278
|
+
sm: "h-7 text-xs",
|
|
279
|
+
lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
defaultVariants: {
|
|
283
|
+
variant: "default",
|
|
284
|
+
size: "default"
|
|
285
|
+
}
|
|
286
|
+
});
|
|
287
|
+
function SidebarMenuButton({ asChild = false, isActive = false, variant = "default", size = "default", tooltip, className, ...props }) {
|
|
288
|
+
const Comp = asChild ? Slot.Root : "button";
|
|
289
|
+
const { isMobile, state } = useSidebar();
|
|
290
|
+
const button = /* @__PURE__ */ jsx(Comp, {
|
|
291
|
+
"data-slot": "sidebar-menu-button",
|
|
292
|
+
"data-sidebar": "menu-button",
|
|
293
|
+
"data-size": size,
|
|
294
|
+
"data-active": isActive,
|
|
295
|
+
className: cn(sidebarMenuButtonVariants({
|
|
296
|
+
variant,
|
|
297
|
+
size
|
|
298
|
+
}), className),
|
|
299
|
+
...props
|
|
300
|
+
});
|
|
301
|
+
if (!tooltip) return button;
|
|
302
|
+
return /* @__PURE__ */ jsxs(Tooltip$1, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
|
|
303
|
+
asChild: true,
|
|
304
|
+
children: button
|
|
305
|
+
}), /* @__PURE__ */ jsx(TooltipContent, {
|
|
306
|
+
side: "right",
|
|
307
|
+
align: "center",
|
|
308
|
+
hidden: state !== "collapsed" || isMobile,
|
|
309
|
+
...typeof tooltip === "string" ? { children: tooltip } : tooltip
|
|
310
|
+
})] });
|
|
311
|
+
}
|
|
312
|
+
function SidebarMenuAction({ className, asChild = false, showOnHover = false, ...props }) {
|
|
313
|
+
const Comp = asChild ? Slot.Root : "button";
|
|
314
|
+
return /* @__PURE__ */ jsx(Comp, {
|
|
315
|
+
"data-slot": "sidebar-menu-action",
|
|
316
|
+
"data-sidebar": "menu-action",
|
|
317
|
+
className: cn("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute end-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "after:absolute after:-inset-2 md:after:hidden", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", showOnHover && "peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0", className),
|
|
318
|
+
...props
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
function SidebarMenuBadge({ className, ...props }) {
|
|
322
|
+
return /* @__PURE__ */ jsx("div", {
|
|
323
|
+
"data-slot": "sidebar-menu-badge",
|
|
324
|
+
"data-sidebar": "menu-badge",
|
|
325
|
+
className: cn("text-sidebar-foreground pointer-events-none absolute end-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none", "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", className),
|
|
326
|
+
...props
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
function SidebarMenuSkeleton({ className, showIcon = false, ...props }) {
|
|
330
|
+
const width = "70%";
|
|
331
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
332
|
+
"data-slot": "sidebar-menu-skeleton",
|
|
333
|
+
"data-sidebar": "menu-skeleton",
|
|
334
|
+
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
|
|
335
|
+
...props,
|
|
336
|
+
children: [showIcon && /* @__PURE__ */ jsx(Skeleton, {
|
|
337
|
+
className: "size-4 rounded-md",
|
|
338
|
+
"data-sidebar": "menu-skeleton-icon"
|
|
339
|
+
}), /* @__PURE__ */ jsx(Skeleton, {
|
|
340
|
+
className: "h-4 max-w-(--skeleton-width) flex-1",
|
|
341
|
+
"data-sidebar": "menu-skeleton-text",
|
|
342
|
+
style: { "--skeleton-width": width }
|
|
343
|
+
})]
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
function SidebarMenuSub({ className, ...props }) {
|
|
347
|
+
return /* @__PURE__ */ jsx("ul", {
|
|
348
|
+
"data-slot": "sidebar-menu-sub",
|
|
349
|
+
"data-sidebar": "menu-sub",
|
|
350
|
+
className: cn("border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-s px-2.5 py-0.5 rtl:-translate-x-px", "group-data-[collapsible=icon]:hidden", className),
|
|
351
|
+
...props
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
function SidebarMenuSubItem({ className, ...props }) {
|
|
355
|
+
return /* @__PURE__ */ jsx("li", {
|
|
356
|
+
"data-slot": "sidebar-menu-sub-item",
|
|
357
|
+
"data-sidebar": "menu-sub-item",
|
|
358
|
+
className: cn("group/menu-sub-item relative", className),
|
|
359
|
+
...props
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
function SidebarMenuSubButton({ asChild = false, size = "md", isActive = false, className, ...props }) {
|
|
363
|
+
const Comp = asChild ? Slot.Root : "a";
|
|
364
|
+
return /* @__PURE__ */ jsx(Comp, {
|
|
365
|
+
"data-slot": "sidebar-menu-sub-button",
|
|
366
|
+
"data-sidebar": "menu-sub-button",
|
|
367
|
+
"data-size": size,
|
|
368
|
+
"data-active": isActive,
|
|
369
|
+
className: cn("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 rtl:translate-x-px [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0", "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground", size === "sm" && "text-xs", size === "md" && "text-sm", "group-data-[collapsible=icon]:hidden", className),
|
|
370
|
+
...props
|
|
371
|
+
});
|
|
372
|
+
}
|
|
373
|
+
//#endregion
|
|
374
|
+
export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar };
|
|
375
|
+
|
|
376
|
+
//# sourceMappingURL=sidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar.js","names":["Separator","Tooltip"],"sources":["../../../src/components/ui/sidebar.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority'\nimport { PanelLeftIcon } from 'lucide-react'\nimport { Slot } from 'radix-ui'\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n type ComponentProps,\n type CSSProperties,\n} from 'react'\nimport { useT } from '../../context'\nimport { useIsMobile } from '../../hooks/use-mobile'\nimport { Icon } from '../../lib/icons'\nimport { cn } from '../../lib/utils'\nimport { Button } from './button'\nimport { Input } from './input'\nimport { Separator } from './separator'\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from './sheet'\nimport { Skeleton } from './skeleton'\nimport { Tooltip, TooltipContent, TooltipTrigger } from './tooltip'\n\nconst SIDEBAR_COOKIE_NAME = 'alfakit_sidebar_state'\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = '16rem'\nconst SIDEBAR_WIDTH_MOBILE = '18rem'\nconst SIDEBAR_WIDTH_ICON = '3rem'\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b'\n\ntype SidebarContextProps = {\n state: 'expanded' | 'collapsed'\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = createContext<SidebarContextProps | null>(null)\n\nfunction useSidebar() {\n const context = useContext(SidebarContext)\n\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.')\n }\n\n return context\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: ComponentProps<'div'> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n}) {\n const isMobile = useIsMobile()\n const [openMobile, setOpenMobile] = useState(false)\n const [_open, _setOpen] = useState(defaultOpen)\n const open = openProp ?? _open\n\n const setOpen = useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value\n\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open],\n )\n\n const toggleSidebar = useCallback(\n () => (isMobile ? setOpenMobile((value) => !value) : setOpen((value) => !value)),\n [isMobile, setOpen],\n )\n\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n // Rich text editors use the same shortcut for bold: leave keys they handled alone.\n if (event.defaultPrevented || (event.target as HTMLElement | null)?.isContentEditable) return\n\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n\n return () => window.removeEventListener('keydown', handleKeyDown)\n }, [toggleSidebar])\n\n const state = open ? 'expanded' : 'collapsed'\n\n const contextValue = useMemo<SidebarContextProps>(\n () => ({ state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar }),\n [state, open, setOpen, isMobile, openMobile, toggleSidebar],\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n )\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n}: ComponentProps<'div'> & {\n side?: 'left' | 'right'\n variant?: 'sidebar' | 'floating' | 'inset'\n collapsible?: 'offcanvas' | 'icon' | 'none'\n}) {\n const t = useT()\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === 'none') {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n 'bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={{ '--sidebar-width': SIDEBAR_WIDTH_MOBILE } as CSSProperties}\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>{t('sidebar', {}, 'Sidebar')}</SheetTitle>\n <SheetDescription>\n {t('mobile_sidebar', {}, 'Displays the mobile sidebar.')}\n </SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n className=\"text-sidebar-foreground group peer hidden md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\nfunction SidebarTrigger({ className, onClick, ...props }: ComponentProps<typeof Button>) {\n const t = useT()\n const { toggleSidebar } = useSidebar()\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('size-7', className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <Icon name=\"alfakit::panels.sidebar.toggle-button\" fallback={PanelLeftIcon} />\n <span className=\"sr-only\">{t('toggle_sidebar', {}, 'Toggle sidebar')}</span>\n </Button>\n )\n}\n\nfunction SidebarRail({ className, ...props }: ComponentProps<'button'>) {\n const t = useT()\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label={t('toggle_sidebar', {}, 'Toggle sidebar')}\n tabIndex={-1}\n onClick={toggleSidebar}\n title={t('toggle_sidebar', {}, 'Toggle sidebar')}\n className={cn(\n 'hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex',\n 'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInset({ className, ...props }: ComponentProps<'main'>) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n 'bg-background relative flex w-full min-w-0 flex-1 flex-col',\n 'md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInput({ className, ...props }: ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn('bg-background h-8 w-full shadow-none', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarHeader({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarFooter({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarSeparator({ className, ...props }: ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn('bg-sidebar-border mx-2 w-auto', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarContent({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarGroup({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: ComponentProps<'div'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : 'div'\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n 'text-sidebar-foreground/80 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: ComponentProps<'button'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : 'button'\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute end-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'after:absolute after:-inset-2 md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarGroupContent({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn('w-full text-sm', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenu({ className, ...props }: ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col gap-1', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuItem({ className, ...props }: ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n )\n}\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-start text-sm outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pe-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: { variant: 'default', size: 'default' },\n },\n)\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n}: ComponentProps<'button'> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | ComponentProps<typeof TooltipContent>\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? Slot.Root : 'button'\n const { isMobile, state } = useSidebar()\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n )\n\n if (!tooltip) {\n return button\n }\n\n const tooltipProps = typeof tooltip === 'string' ? { children: tooltip } : tooltip\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile}\n {...tooltipProps}\n />\n </Tooltip>\n )\n}\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: ComponentProps<'button'> & { asChild?: boolean; showOnHover?: boolean }) {\n const Comp = asChild ? Slot.Root : 'button'\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute end-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'after:absolute after:-inset-2 md:after:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuBadge({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n 'text-sidebar-foreground pointer-events-none absolute end-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: ComponentProps<'div'> & { showIcon?: boolean }) {\n const width = '70%'\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={{ '--skeleton-width': width } as CSSProperties}\n />\n </div>\n )\n}\n\nfunction SidebarMenuSub({ className, ...props }: ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n 'border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-s px-2.5 py-0.5 rtl:-translate-x-px',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn('group/menu-sub-item relative', className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: ComponentProps<'a'> & { asChild?: boolean; size?: 'sm' | 'md'; isActive?: boolean }) {\n const Comp = asChild ? Slot.Root : 'a'\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 rtl:translate-x-px [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton.d.ts","names":[],"sources":["../../../src/components/ui/skeleton.tsx"],"mappings":";;iBAGS,WAAW,cAAc,SAAS,wCAAqB,IAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { cn } from "../../lib/utils.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
//#region src/components/ui/skeleton.tsx
|
|
4
|
+
function Skeleton({ className, ...props }) {
|
|
5
|
+
return /* @__PURE__ */ jsx("div", {
|
|
6
|
+
"data-slot": "skeleton",
|
|
7
|
+
className: cn("bg-accent animate-pulse rounded-md", className),
|
|
8
|
+
...props
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { Skeleton };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton.js","names":[],"sources":["../../../src/components/ui/skeleton.tsx"],"sourcesContent":["import type { ComponentProps } from 'react'\nimport { cn } from '../../lib/utils'\n\nfunction Skeleton({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn('bg-accent animate-pulse rounded-md', className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n"],"mappings":";;;AAGA,SAAS,SAAS,EAAE,WAAW,GAAG,SAAgC;CAChE,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,sCAAsC,SAAS;EAC7D,GAAI;CACL,CAAA;AAEL"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ToasterProps } from "sonner";
|
|
2
|
+
//#region src/components/ui/sonner.d.ts
|
|
3
|
+
declare function Toaster$1({ toastOptions, ...props }: ToasterProps): import("react").JSX.Element;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { Toaster$1 as Toaster };
|
|
6
|
+
//# sourceMappingURL=sonner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sonner.d.ts","names":["Toaster"],"sources":["../../../src/components/ui/sonner.tsx"],"mappings":";;iBAUSA,YAAU,iBAAiB,SAAS,+BAAY,IAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { useT } from "../../context.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { CircleCheckIcon, CircleXIcon, InfoIcon, Loader2Icon, TriangleAlertIcon } from "lucide-react";
|
|
4
|
+
import { Toaster } from "sonner";
|
|
5
|
+
//#region src/components/ui/sonner.tsx
|
|
6
|
+
function Toaster$1({ toastOptions, ...props }) {
|
|
7
|
+
const t = useT();
|
|
8
|
+
return /* @__PURE__ */ jsx(Toaster, {
|
|
9
|
+
theme: "system",
|
|
10
|
+
className: "toaster group",
|
|
11
|
+
containerAriaLabel: t("notifications", {}, "Notifications"),
|
|
12
|
+
toastOptions: {
|
|
13
|
+
closeButtonAriaLabel: t("close_notification", {}, "Close notification"),
|
|
14
|
+
...toastOptions
|
|
15
|
+
},
|
|
16
|
+
icons: {
|
|
17
|
+
success: /* @__PURE__ */ jsx(CircleCheckIcon, { className: "size-4" }),
|
|
18
|
+
info: /* @__PURE__ */ jsx(InfoIcon, { className: "size-4" }),
|
|
19
|
+
warning: /* @__PURE__ */ jsx(TriangleAlertIcon, { className: "size-4" }),
|
|
20
|
+
error: /* @__PURE__ */ jsx(CircleXIcon, { className: "size-4" }),
|
|
21
|
+
loading: /* @__PURE__ */ jsx(Loader2Icon, { className: "size-4 animate-spin" })
|
|
22
|
+
},
|
|
23
|
+
style: {
|
|
24
|
+
"--normal-bg": "var(--popover)",
|
|
25
|
+
"--normal-text": "var(--popover-foreground)",
|
|
26
|
+
"--normal-border": "var(--border)"
|
|
27
|
+
},
|
|
28
|
+
...props
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { Toaster$1 as Toaster };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=sonner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sonner.js","names":["Toaster","Sonner"],"sources":["../../../src/components/ui/sonner.tsx"],"sourcesContent":["import {\n CircleCheckIcon,\n CircleXIcon,\n InfoIcon,\n Loader2Icon,\n TriangleAlertIcon,\n} from 'lucide-react'\nimport { Toaster as Sonner, type ToasterProps } from 'sonner'\nimport { useT } from '../../context'\n\nfunction Toaster({ toastOptions, ...props }: ToasterProps) {\n const t = useT()\n\n return (\n <Sonner\n theme=\"system\"\n className=\"toaster group\"\n // sonner appends the hotkey: \"Notifications alt+T\".\n containerAriaLabel={t('notifications', {}, 'Notifications')}\n toastOptions={{\n closeButtonAriaLabel: t('close_notification', {}, 'Close notification'),\n ...toastOptions,\n }}\n icons={{\n success: <CircleCheckIcon className=\"size-4\" />,\n info: <InfoIcon className=\"size-4\" />,\n warning: <TriangleAlertIcon className=\"size-4\" />,\n error: <CircleXIcon className=\"size-4\" />,\n loading: <Loader2Icon className=\"size-4 animate-spin\" />,\n }}\n style={\n {\n '--normal-bg': 'var(--popover)',\n '--normal-text': 'var(--popover-foreground)',\n '--normal-border': 'var(--border)',\n } as React.CSSProperties\n }\n {...props}\n />\n )\n}\n\nexport { Toaster }\n"],"mappings":";;;;;AAUA,SAASA,UAAQ,EAAE,cAAc,GAAG,SAAuB;CACzD,MAAM,IAAI,KAAK;CAEf,OACE,oBAACC,SAAD;EACE,OAAM;EACN,WAAU;EAEV,oBAAoB,EAAE,iBAAiB,CAAC,GAAG,eAAe;EAC1D,cAAc;GACZ,sBAAsB,EAAE,sBAAsB,CAAC,GAAG,oBAAoB;GACtE,GAAG;EACL;EACA,OAAO;GACL,SAAS,oBAAC,iBAAD,EAAiB,WAAU,SAAU,CAAA;GAC9C,MAAM,oBAAC,UAAD,EAAU,WAAU,SAAU,CAAA;GACpC,SAAS,oBAAC,mBAAD,EAAmB,WAAU,SAAU,CAAA;GAChD,OAAO,oBAAC,aAAD,EAAa,WAAU,SAAU,CAAA;GACxC,SAAS,oBAAC,aAAD,EAAa,WAAU,sBAAuB,CAAA;EACzD;EACA,OACE;GACE,eAAe;GACf,iBAAiB;GACjB,mBAAmB;EACrB;EAEF,GAAI;CACL,CAAA;AAEL"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ComponentProps } from "react";
|
|
2
|
+
//#region src/components/ui/spinner.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* The loading indicator. Its glyph is the `alfakit::support.loading-indicator` icon alias,
|
|
5
|
+
* so an app replaces it everywhere with `Icons::register()` (or a `panel:icon` component).
|
|
6
|
+
*/
|
|
7
|
+
declare function Spinner({ className, ...props }: Omit<ComponentProps<'svg'>, 'ref'>): import("react").JSX.Element;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { Spinner };
|
|
10
|
+
//# sourceMappingURL=spinner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.d.ts","names":[],"sources":["../../../src/components/ui/spinner.tsx"],"mappings":";;;;;;iBAUS,UAAU,cAAc,SAAS,KAAK,gDAA6B,IAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { useT } from "../../context.js";
|
|
2
|
+
import { cn } from "../../lib/utils.js";
|
|
3
|
+
import { Icon } from "../../lib/icons.js";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { Loader2Icon } from "lucide-react";
|
|
6
|
+
//#region src/components/ui/spinner.tsx
|
|
7
|
+
/**
|
|
8
|
+
* The loading indicator. Its glyph is the `alfakit::support.loading-indicator` icon alias,
|
|
9
|
+
* so an app replaces it everywhere with `Icons::register()` (or a `panel:icon` component).
|
|
10
|
+
*/
|
|
11
|
+
function Spinner({ className, ...props }) {
|
|
12
|
+
const t = useT();
|
|
13
|
+
return /* @__PURE__ */ jsx("span", {
|
|
14
|
+
role: "status",
|
|
15
|
+
"aria-label": t("loading", {}, "Loading"),
|
|
16
|
+
"data-slot": "spinner",
|
|
17
|
+
className: "inline-flex shrink-0",
|
|
18
|
+
children: /* @__PURE__ */ jsx(Icon, {
|
|
19
|
+
name: "alfakit::support.loading-indicator",
|
|
20
|
+
fallback: Loader2Icon,
|
|
21
|
+
"aria-hidden": "true",
|
|
22
|
+
className: cn("size-4 animate-spin", className),
|
|
23
|
+
...props
|
|
24
|
+
})
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { Spinner };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.js","names":[],"sources":["../../../src/components/ui/spinner.tsx"],"sourcesContent":["import { Loader2Icon } from 'lucide-react'\nimport type { ComponentProps } from 'react'\nimport { useT } from '../../context'\nimport { Icon } from '../../lib/icons'\nimport { cn } from '../../lib/utils'\n\n/**\n * The loading indicator. Its glyph is the `alfakit::support.loading-indicator` icon alias,\n * so an app replaces it everywhere with `Icons::register()` (or a `panel:icon` component).\n */\nfunction Spinner({ className, ...props }: Omit<ComponentProps<'svg'>, 'ref'>) {\n const t = useT()\n return (\n <span\n role=\"status\"\n aria-label={t('loading', {}, 'Loading')}\n data-slot=\"spinner\"\n className=\"inline-flex shrink-0\"\n >\n <Icon\n name=\"alfakit::support.loading-indicator\"\n fallback={Loader2Icon}\n aria-hidden=\"true\"\n className={cn('size-4 animate-spin', className)}\n {...props}\n />\n </span>\n )\n}\n\nexport { Spinner }\n"],"mappings":";;;;;;;;;;AAUA,SAAS,QAAQ,EAAE,WAAW,GAAG,SAA6C;CAC5E,MAAM,IAAI,KAAK;CACf,OACE,oBAAC,QAAD;EACE,MAAK;EACL,cAAY,EAAE,WAAW,CAAC,GAAG,SAAS;EACtC,aAAU;EACV,WAAU;EAEV,UAAA,oBAAC,MAAD;GACE,MAAK;GACL,UAAU;GACV,eAAY;GACZ,WAAW,GAAG,uBAAuB,SAAS;GAC9C,GAAI;EACL,CAAA;CACG,CAAA;AAEV"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ComponentProps } from "react";
|
|
2
|
+
import { Switch } from "radix-ui";
|
|
3
|
+
//#region src/components/ui/switch.d.ts
|
|
4
|
+
declare function Switch$1({ className, ...props }: ComponentProps<typeof Switch.Root>): import("react").JSX.Element;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { Switch$1 as Switch };
|
|
7
|
+
//# sourceMappingURL=switch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.d.ts","names":["Switch","SwitchPrimitive"],"sources":["../../../src/components/ui/switch.tsx"],"mappings":";;;iBAISA,WAAS,cAAc,SAAS,sBAAsBC,OAAgB,wBAAK,IAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { cn } from "../../lib/utils.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Switch } from "radix-ui";
|
|
4
|
+
//#region src/components/ui/switch.tsx
|
|
5
|
+
function Switch$1({ className, ...props }) {
|
|
6
|
+
return /* @__PURE__ */ jsx(Switch.Root, {
|
|
7
|
+
"data-slot": "switch",
|
|
8
|
+
className: cn("data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 peer inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", className),
|
|
9
|
+
...props,
|
|
10
|
+
children: /* @__PURE__ */ jsx(Switch.Thumb, {
|
|
11
|
+
"data-slot": "switch-thumb",
|
|
12
|
+
className: cn("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 rtl:data-[state=checked]:-translate-x-[calc(100%-2px)]")
|
|
13
|
+
})
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { Switch$1 as Switch };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.js","names":["Switch","SwitchPrimitive"],"sources":["../../../src/components/ui/switch.tsx"],"sourcesContent":["import { Switch as SwitchPrimitive } from 'radix-ui'\nimport type { ComponentProps } from 'react'\nimport { cn } from '../../lib/utils'\n\nfunction Switch({ className, ...props }: ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n 'data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 peer inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 rtl:data-[state=checked]:-translate-x-[calc(100%-2px)]',\n )}\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n"],"mappings":";;;;AAIA,SAASA,SAAO,EAAE,WAAW,GAAG,SAAsD;CACpF,OACE,oBAACC,OAAgB,MAAjB;EACE,aAAU;EACV,WAAW,GACT,6WACA,SACF;EACA,GAAI;EAEJ,UAAA,oBAACA,OAAgB,OAAjB;GACE,aAAU;GACV,WAAW,GACT,iUACF;EACD,CAAA;CACmB,CAAA;AAE1B"}
|