@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,472 @@
|
|
|
1
|
+
import { usePanel, useRegistry, useT } from "../../context.js";
|
|
2
|
+
import { cn } from "../../lib/utils.js";
|
|
3
|
+
import { colorClass, iconSizeClasses, switchOffColorClasses, switchOnColorClasses, textColorClasses } from "../../lib/colors.js";
|
|
4
|
+
import { Icon } from "../../lib/icons.js";
|
|
5
|
+
import { Button } from "../ui/button.js";
|
|
6
|
+
import { extraProps } from "../../lib/attributes.js";
|
|
7
|
+
import { Spinner } from "../ui/spinner.js";
|
|
8
|
+
import { Input } from "../ui/input.js";
|
|
9
|
+
import { Popover, PopoverContent, PopoverTrigger } from "../ui/popover.js";
|
|
10
|
+
import { Checkbox } from "../ui/checkbox.js";
|
|
11
|
+
import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from "../ui/command.js";
|
|
12
|
+
import { Switch } from "../ui/switch.js";
|
|
13
|
+
import { FormattedText } from "../entries/text-entry.js";
|
|
14
|
+
import { columnRegistryKey, filterSelectColumnOptions, isOptionGroup, optionText, remainingTextSizeClass, resolvePartialProps, searchTableColumnOptions, selectColumnEmptyMessage, stackedImageStyle, updateTableCell, usesDefaultImageStack } from "@alfakit/core";
|
|
15
|
+
import { router } from "@inertiajs/react";
|
|
16
|
+
import { createElement, useEffect, useRef, useState } from "react";
|
|
17
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
18
|
+
import { CheckIcon, ChevronsUpDownIcon } from "lucide-react";
|
|
19
|
+
//#region src/components/table/cells.tsx
|
|
20
|
+
function TableCellContent(props) {
|
|
21
|
+
const { column } = props;
|
|
22
|
+
const Custom = useRegistry().resolve(columnRegistryKey(column));
|
|
23
|
+
if (Custom) return createElement(Custom, props);
|
|
24
|
+
switch (column.type) {
|
|
25
|
+
case "IconColumn": return /* @__PURE__ */ jsx(IconCell, { ...props });
|
|
26
|
+
case "ImageColumn": return /* @__PURE__ */ jsx(ImageCell, { ...props });
|
|
27
|
+
case "ColorColumn": return /* @__PURE__ */ jsx(ColorCell, { ...props });
|
|
28
|
+
case "ToggleColumn":
|
|
29
|
+
case "CheckboxColumn": return /* @__PURE__ */ jsx(BooleanCell, { ...props });
|
|
30
|
+
case "SelectColumn": return /* @__PURE__ */ jsx(SelectCell, { ...props });
|
|
31
|
+
case "TextInputColumn": return /* @__PURE__ */ jsx(TextInputCell, { ...props });
|
|
32
|
+
case "ViewColumn": return /* @__PURE__ */ jsx(ViewCell, { ...props });
|
|
33
|
+
default: return /* @__PURE__ */ jsx(TextCell, { ...props });
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/** `IconColumn`: one icon, or one per item of a list state (`wrap()` lets them wrap). */
|
|
37
|
+
function IconCell({ column, cell }) {
|
|
38
|
+
const icons = cell.icons ?? (cell.icon ? [{
|
|
39
|
+
icon: cell.icon,
|
|
40
|
+
color: cell.color
|
|
41
|
+
}] : []);
|
|
42
|
+
const sizeClass = colorClass(iconSizeClasses, cell.size, "md");
|
|
43
|
+
if (icons.length === 0) return /* @__PURE__ */ jsx("span", {
|
|
44
|
+
className: "text-muted-foreground",
|
|
45
|
+
children: "—"
|
|
46
|
+
});
|
|
47
|
+
if (!cell.icons) return /* @__PURE__ */ jsx(Icon, {
|
|
48
|
+
name: icons[0].icon,
|
|
49
|
+
className: cn(sizeClass, icons[0].color && textColorClasses[icons[0].color])
|
|
50
|
+
});
|
|
51
|
+
return /* @__PURE__ */ jsx("div", {
|
|
52
|
+
"data-slot": "icon-column-icons",
|
|
53
|
+
className: cn("flex items-center gap-1.5", column.wrap ? "flex-wrap" : "flex-nowrap"),
|
|
54
|
+
children: icons.map((item, index) => /* @__PURE__ */ jsx(Icon, {
|
|
55
|
+
name: item.icon,
|
|
56
|
+
className: cn(sizeClass, item.color && textColorClasses[item.color])
|
|
57
|
+
}, index))
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/** `ViewColumn`: the application component registered under the column's `view()` name. */
|
|
61
|
+
function ViewCell(props) {
|
|
62
|
+
const t = useT();
|
|
63
|
+
const name = props.column.component ?? "";
|
|
64
|
+
const Custom = useRegistry().resolve(name);
|
|
65
|
+
if (!name || !Custom) return /* @__PURE__ */ jsx("span", {
|
|
66
|
+
className: "text-destructive text-xs",
|
|
67
|
+
children: t("component_not_registered", { component: name }, `Component ${name} is not registered.`)
|
|
68
|
+
});
|
|
69
|
+
return createElement(Custom, {
|
|
70
|
+
...props.cell.props ?? {},
|
|
71
|
+
state: props.cell.state,
|
|
72
|
+
...props
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
function TextCell({ column, cell }) {
|
|
76
|
+
const text = /* @__PURE__ */ jsx(FormattedText, {
|
|
77
|
+
value: cell.state,
|
|
78
|
+
schema: {
|
|
79
|
+
...column,
|
|
80
|
+
color: cell.color,
|
|
81
|
+
icon: cell.icon,
|
|
82
|
+
iconPosition: cell.iconPosition,
|
|
83
|
+
iconColor: cell.iconColor,
|
|
84
|
+
itemColors: cell.itemColors,
|
|
85
|
+
itemIcons: cell.itemIcons,
|
|
86
|
+
itemUrls: cell.itemUrls
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
const description = cell.description ? /* @__PURE__ */ jsx("span", {
|
|
90
|
+
className: "text-muted-foreground block text-xs",
|
|
91
|
+
children: cell.description
|
|
92
|
+
}) : null;
|
|
93
|
+
const position = column.descriptionPosition ?? "below";
|
|
94
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
95
|
+
className: "flex flex-col gap-0.5",
|
|
96
|
+
children: [
|
|
97
|
+
position === "above" && description,
|
|
98
|
+
text,
|
|
99
|
+
position === "below" && description
|
|
100
|
+
]
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
function ImageCell({ column, cell }) {
|
|
104
|
+
const urls = Array.isArray(cell.state) ? cell.state : [];
|
|
105
|
+
const schema = column;
|
|
106
|
+
const limit = schema.limit ?? urls.length;
|
|
107
|
+
const size = schema.size ?? 40;
|
|
108
|
+
if (urls.length === 0) return /* @__PURE__ */ jsx("span", {
|
|
109
|
+
className: "text-muted-foreground",
|
|
110
|
+
children: "—"
|
|
111
|
+
});
|
|
112
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
113
|
+
className: cn("flex items-center", schema.wrap && "flex-wrap", schema.stacked ? usesDefaultImageStack(schema) && "-space-x-2" : "gap-1.5", schema.wrap && schema.stacked && "gap-y-1.5"),
|
|
114
|
+
children: [urls.slice(0, limit).map((url, index) => /* @__PURE__ */ jsx("img", {
|
|
115
|
+
src: url,
|
|
116
|
+
alt: cell.alt ?? "",
|
|
117
|
+
style: {
|
|
118
|
+
height: schema.height ?? size,
|
|
119
|
+
width: schema.width ?? (schema.square || schema.circular ? size : void 0),
|
|
120
|
+
...stackedImageStyle(index, schema)
|
|
121
|
+
},
|
|
122
|
+
...extraProps(cell.extraImgAttributes, cn("object-cover", schema.circular ? "rounded-full" : "rounded-md", schema.stacked && usesDefaultImageStack(schema) && "ring-background ring-2"))
|
|
123
|
+
}, index)), schema.limitedRemainingText && urls.length > limit && /* @__PURE__ */ jsxs("span", {
|
|
124
|
+
"data-slot": "image-remaining",
|
|
125
|
+
className: cn("text-muted-foreground ms-1", remainingTextSizeClass(schema.limitedRemainingTextSize)),
|
|
126
|
+
children: ["+", urls.length - limit]
|
|
127
|
+
})]
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
function ColorCell({ column, cell }) {
|
|
131
|
+
const t = useT();
|
|
132
|
+
const schema = column;
|
|
133
|
+
const [copied, setCopied] = useState(null);
|
|
134
|
+
const colors = Array.isArray(cell.state) ? cell.state : cell.state ? [String(cell.state)] : [];
|
|
135
|
+
if (colors.length === 0) return /* @__PURE__ */ jsx("span", {
|
|
136
|
+
className: "text-muted-foreground",
|
|
137
|
+
children: "—"
|
|
138
|
+
});
|
|
139
|
+
const copy = (color) => {
|
|
140
|
+
navigator.clipboard?.writeText(color).then(() => {
|
|
141
|
+
setCopied(color);
|
|
142
|
+
setTimeout(() => setCopied(null), schema.copyMessageDuration ?? 1500);
|
|
143
|
+
});
|
|
144
|
+
};
|
|
145
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
146
|
+
className: cn("flex items-center gap-1.5", schema.wrap ? "flex-wrap" : "flex-nowrap"),
|
|
147
|
+
children: [colors.map((color) => schema.copyable ? /* @__PURE__ */ jsx("button", {
|
|
148
|
+
type: "button",
|
|
149
|
+
"data-slot": "color-copy",
|
|
150
|
+
title: color,
|
|
151
|
+
"aria-label": `${t("copy", {}, "Copy")} ${color}`,
|
|
152
|
+
className: "focus-visible:ring-ring/50 inline-flex rounded outline-none focus-visible:ring-[3px]",
|
|
153
|
+
onClick: (event) => {
|
|
154
|
+
event.preventDefault();
|
|
155
|
+
event.stopPropagation();
|
|
156
|
+
copy(color);
|
|
157
|
+
},
|
|
158
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
159
|
+
className: "inline-flex size-5 items-center justify-center rounded border shadow-xs",
|
|
160
|
+
style: { backgroundColor: color },
|
|
161
|
+
children: copied === color && /* @__PURE__ */ jsx(CheckIcon, { className: "size-3 text-white mix-blend-difference" })
|
|
162
|
+
})
|
|
163
|
+
}, color) : /* @__PURE__ */ jsx("span", {
|
|
164
|
+
title: color,
|
|
165
|
+
className: "size-5 rounded border shadow-xs",
|
|
166
|
+
style: { backgroundColor: color }
|
|
167
|
+
}, color)), schema.copyable && copied && /* @__PURE__ */ jsx("span", {
|
|
168
|
+
role: "status",
|
|
169
|
+
className: cn("text-xs", !schema.copyMessage && "sr-only"),
|
|
170
|
+
children: schema.copyMessage ?? t("copied", {}, "Copied")
|
|
171
|
+
})]
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
function useCellUpdate({ recordKey, column, token, component }) {
|
|
175
|
+
const panel = usePanel();
|
|
176
|
+
const [saving, setSaving] = useState(false);
|
|
177
|
+
const [error, setError] = useState(null);
|
|
178
|
+
const update = async (state) => {
|
|
179
|
+
if (!panel.endpoints.tableCell || !panel.endpoints.tableReorder) return;
|
|
180
|
+
setSaving(true);
|
|
181
|
+
setError(null);
|
|
182
|
+
try {
|
|
183
|
+
await updateTableCell({
|
|
184
|
+
cell: panel.endpoints.tableCell,
|
|
185
|
+
reorder: panel.endpoints.tableReorder
|
|
186
|
+
}, token, component, recordKey, column.name, state);
|
|
187
|
+
router.reload({ only: resolvePartialProps(["page"]) });
|
|
188
|
+
} catch (caught) {
|
|
189
|
+
const errors = caught.errors;
|
|
190
|
+
setError(errors?.state?.[0] ?? caught.message);
|
|
191
|
+
} finally {
|
|
192
|
+
setSaving(false);
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
return {
|
|
196
|
+
update,
|
|
197
|
+
saving,
|
|
198
|
+
error
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
function BooleanCell(props) {
|
|
202
|
+
const { column, cell } = props;
|
|
203
|
+
const { update, saving } = useCellUpdate(props);
|
|
204
|
+
const [checked, setChecked] = useState(Boolean(cell.state));
|
|
205
|
+
const disabled = Boolean(cell.disabled) || saving;
|
|
206
|
+
const toggle = column;
|
|
207
|
+
const onChange = (next) => {
|
|
208
|
+
setChecked(next);
|
|
209
|
+
update(next);
|
|
210
|
+
};
|
|
211
|
+
if (column.type === "CheckboxColumn") return /* @__PURE__ */ jsx(Checkbox, {
|
|
212
|
+
checked,
|
|
213
|
+
disabled,
|
|
214
|
+
"aria-label": column.label || column.name,
|
|
215
|
+
onCheckedChange: (value) => onChange(value === true),
|
|
216
|
+
onClick: (event) => event.stopPropagation()
|
|
217
|
+
});
|
|
218
|
+
return /* @__PURE__ */ jsxs("span", {
|
|
219
|
+
className: "inline-flex items-center gap-2",
|
|
220
|
+
onClick: (event) => event.stopPropagation(),
|
|
221
|
+
children: [/* @__PURE__ */ jsx(Switch, {
|
|
222
|
+
checked,
|
|
223
|
+
disabled,
|
|
224
|
+
"aria-label": column.label || column.name,
|
|
225
|
+
onCheckedChange: onChange,
|
|
226
|
+
className: cn(toggle.onColor && colorClass(switchOnColorClasses, toggle.onColor), toggle.offColor && colorClass(switchOffColorClasses, toggle.offColor))
|
|
227
|
+
}), (checked ? toggle.onIcon : toggle.offIcon) && /* @__PURE__ */ jsx(Icon, {
|
|
228
|
+
name: checked ? toggle.onIcon : toggle.offIcon,
|
|
229
|
+
className: cn(colorClass(textColorClasses, checked ? toggle.onColor : toggle.offColor, "gray"))
|
|
230
|
+
})]
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
function flatten(options) {
|
|
234
|
+
return options.flatMap((option) => isOptionGroup(option) ? option.options : [option]);
|
|
235
|
+
}
|
|
236
|
+
function SelectCell(props) {
|
|
237
|
+
return props.column.native === false ? /* @__PURE__ */ jsx(SelectComboboxCell, { ...props }) : /* @__PURE__ */ jsx(NativeSelectCell, { ...props });
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* An option label: sanitised HTML under `allowOptionsHtml()`, text otherwise. Long labels
|
|
241
|
+
* wrap unless `wrapOptionLabels(false)` truncates them.
|
|
242
|
+
*/
|
|
243
|
+
function SelectOptionLabel({ label, html, truncate }) {
|
|
244
|
+
const className = truncate ? "min-w-0 truncate" : "min-w-0 break-words whitespace-normal";
|
|
245
|
+
return html ? /* @__PURE__ */ jsx("span", {
|
|
246
|
+
className,
|
|
247
|
+
dangerouslySetInnerHTML: { __html: label }
|
|
248
|
+
}) : /* @__PURE__ */ jsx("span", {
|
|
249
|
+
className,
|
|
250
|
+
children: label
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* `SelectColumn::native(false)`: a combobox, searchable with `searchableOptions()`. Options
|
|
255
|
+
* come with the table, or from the server (`optionsSearchPath`) as the user types.
|
|
256
|
+
*/
|
|
257
|
+
function SelectComboboxCell(props) {
|
|
258
|
+
const { column, cell, recordKey, token, component } = props;
|
|
259
|
+
const schema = column;
|
|
260
|
+
const t = useT();
|
|
261
|
+
const panel = usePanel();
|
|
262
|
+
const { update, saving, error } = useCellUpdate(props);
|
|
263
|
+
const [value, setValue] = useState(cell.state === null || cell.state === void 0 ? "" : String(cell.state));
|
|
264
|
+
const [label, setLabel] = useState(cell.optionLabel);
|
|
265
|
+
const [open, setOpen] = useState(false);
|
|
266
|
+
const [search, setSearch] = useState("");
|
|
267
|
+
const [loading, setLoading] = useState(false);
|
|
268
|
+
const [remote, setRemote] = useState([]);
|
|
269
|
+
const request = useRef(0);
|
|
270
|
+
const isRemote = Boolean(schema.optionsSearchPath);
|
|
271
|
+
const debounce = schema.optionsSearchDebounce ?? 300;
|
|
272
|
+
const staticOptions = flatten(schema.options);
|
|
273
|
+
useEffect(() => {
|
|
274
|
+
if (!open || !isRemote || !panel.endpoints.schemaOptions) return;
|
|
275
|
+
const url = panel.endpoints.schemaOptions;
|
|
276
|
+
const timer = setTimeout(() => {
|
|
277
|
+
const current = ++request.current;
|
|
278
|
+
setLoading(true);
|
|
279
|
+
searchTableColumnOptions(url, token, component, schema, search).then((results) => current === request.current && setRemote(results)).catch(() => current === request.current && setRemote([])).finally(() => current === request.current && setLoading(false));
|
|
280
|
+
}, debounce);
|
|
281
|
+
return () => clearTimeout(timer);
|
|
282
|
+
}, [
|
|
283
|
+
open,
|
|
284
|
+
search,
|
|
285
|
+
isRemote,
|
|
286
|
+
panel.endpoints.schemaOptions,
|
|
287
|
+
token,
|
|
288
|
+
component,
|
|
289
|
+
schema,
|
|
290
|
+
debounce
|
|
291
|
+
]);
|
|
292
|
+
const options = filterSelectColumnOptions(isRemote ? remote : staticOptions, schema, isRemote ? "" : search, recordKey);
|
|
293
|
+
const emptyMessage = selectColumnEmptyMessage(schema, {
|
|
294
|
+
loading,
|
|
295
|
+
search,
|
|
296
|
+
optionCount: options.length
|
|
297
|
+
});
|
|
298
|
+
const currentLabel = staticOptions.find((option) => option.value === value)?.label ?? remote.find((option) => option.value === value)?.label ?? label;
|
|
299
|
+
const choose = (next, nextLabel) => {
|
|
300
|
+
setValue(next);
|
|
301
|
+
setLabel(nextLabel);
|
|
302
|
+
setOpen(false);
|
|
303
|
+
update(next === "" ? null : next);
|
|
304
|
+
};
|
|
305
|
+
return /* @__PURE__ */ jsxs("span", {
|
|
306
|
+
onClick: (event) => event.stopPropagation(),
|
|
307
|
+
children: [/* @__PURE__ */ jsxs(Popover, {
|
|
308
|
+
open,
|
|
309
|
+
onOpenChange: (next) => {
|
|
310
|
+
setOpen(next);
|
|
311
|
+
if (!next) setSearch("");
|
|
312
|
+
},
|
|
313
|
+
children: [/* @__PURE__ */ jsx(PopoverTrigger, {
|
|
314
|
+
asChild: true,
|
|
315
|
+
children: /* @__PURE__ */ jsxs(Button, {
|
|
316
|
+
type: "button",
|
|
317
|
+
variant: "outline",
|
|
318
|
+
size: "sm",
|
|
319
|
+
role: "combobox",
|
|
320
|
+
"aria-expanded": open,
|
|
321
|
+
"aria-label": column.label || column.name,
|
|
322
|
+
"aria-invalid": error ? true : void 0,
|
|
323
|
+
disabled: Boolean(cell.disabled) || saving,
|
|
324
|
+
className: cn("h-8 min-w-32 justify-between font-normal", error && "border-destructive"),
|
|
325
|
+
children: [value !== "" && currentLabel !== void 0 ? /* @__PURE__ */ jsx(SelectOptionLabel, {
|
|
326
|
+
label: currentLabel,
|
|
327
|
+
html: schema.allowOptionsHtml,
|
|
328
|
+
truncate: true
|
|
329
|
+
}) : /* @__PURE__ */ jsx("span", {
|
|
330
|
+
className: "text-muted-foreground",
|
|
331
|
+
children: schema.placeholder ?? (value !== "" ? value : t("select_option", {}, "Select an option"))
|
|
332
|
+
}), loading ? /* @__PURE__ */ jsx(Spinner, { className: "opacity-50" }) : /* @__PURE__ */ jsx(ChevronsUpDownIcon, { className: "size-4 shrink-0 opacity-50" })]
|
|
333
|
+
})
|
|
334
|
+
}), /* @__PURE__ */ jsx(PopoverContent, {
|
|
335
|
+
className: "w-64 p-0",
|
|
336
|
+
align: "start",
|
|
337
|
+
children: /* @__PURE__ */ jsxs(Command, {
|
|
338
|
+
shouldFilter: false,
|
|
339
|
+
children: [schema.searchableOptions && /* @__PURE__ */ jsx(CommandInput, {
|
|
340
|
+
placeholder: schema.searchPrompt ?? t("form.search_placeholder", {}, "Type to search…"),
|
|
341
|
+
value: search,
|
|
342
|
+
onValueChange: setSearch
|
|
343
|
+
}), /* @__PURE__ */ jsxs(CommandList, { children: [/* @__PURE__ */ jsx(CommandEmpty, {
|
|
344
|
+
"data-slot": "select-column-message",
|
|
345
|
+
children: emptyMessage.message ?? t(emptyMessage.key, {}, emptyMessage.fallback)
|
|
346
|
+
}), /* @__PURE__ */ jsxs(CommandGroup, { children: [schema.selectablePlaceholder && value !== "" && /* @__PURE__ */ jsx(CommandItem, {
|
|
347
|
+
value: "",
|
|
348
|
+
onSelect: () => choose(""),
|
|
349
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
350
|
+
className: "text-muted-foreground",
|
|
351
|
+
children: schema.placeholder ?? t("clear", {}, "Clear")
|
|
352
|
+
})
|
|
353
|
+
}), options.map((option) => /* @__PURE__ */ jsxs(CommandItem, {
|
|
354
|
+
value: option.value,
|
|
355
|
+
keywords: [optionText(option.label)],
|
|
356
|
+
disabled: option.disabled,
|
|
357
|
+
onSelect: () => choose(option.value, option.label),
|
|
358
|
+
children: [/* @__PURE__ */ jsx(CheckIcon, { className: cn("size-4", option.value === value ? "opacity-100" : "opacity-0") }), /* @__PURE__ */ jsx(SelectOptionLabel, {
|
|
359
|
+
label: option.label,
|
|
360
|
+
html: schema.allowOptionsHtml,
|
|
361
|
+
truncate: schema.wrapOptionLabels === false
|
|
362
|
+
})]
|
|
363
|
+
}, option.value))] })] })]
|
|
364
|
+
})
|
|
365
|
+
})]
|
|
366
|
+
}), error && /* @__PURE__ */ jsx("span", {
|
|
367
|
+
className: "text-destructive block text-xs",
|
|
368
|
+
children: error
|
|
369
|
+
})]
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
function NativeSelectCell(props) {
|
|
373
|
+
const { column, cell } = props;
|
|
374
|
+
const schema = column;
|
|
375
|
+
const { update, saving, error } = useCellUpdate(props);
|
|
376
|
+
const [value, setValue] = useState(cell.state === null || cell.state === void 0 ? "" : String(cell.state));
|
|
377
|
+
return /* @__PURE__ */ jsxs("span", {
|
|
378
|
+
onClick: (event) => event.stopPropagation(),
|
|
379
|
+
children: [/* @__PURE__ */ jsxs("select", {
|
|
380
|
+
value,
|
|
381
|
+
disabled: Boolean(cell.disabled) || saving,
|
|
382
|
+
onChange: (event) => {
|
|
383
|
+
setValue(event.target.value);
|
|
384
|
+
update(event.target.value === "" ? null : event.target.value);
|
|
385
|
+
},
|
|
386
|
+
"aria-invalid": error ? true : void 0,
|
|
387
|
+
className: cn("border-input dark:bg-input/30 focus-visible:ring-ring/50 h-8 min-w-32 rounded-md border bg-transparent px-2 text-sm shadow-xs outline-none focus-visible:ring-[3px]", error && "border-destructive"),
|
|
388
|
+
children: [schema.selectablePlaceholder && /* @__PURE__ */ jsx("option", {
|
|
389
|
+
value: "",
|
|
390
|
+
children: schema.placeholder ?? ""
|
|
391
|
+
}), flatten(schema.options).filter((option) => !(schema.ignoreRecord && option.value === String(props.recordKey))).map((option) => /* @__PURE__ */ jsx("option", {
|
|
392
|
+
value: option.value,
|
|
393
|
+
disabled: option.disabled,
|
|
394
|
+
children: option.label
|
|
395
|
+
}, option.value))]
|
|
396
|
+
}), error && /* @__PURE__ */ jsx("span", {
|
|
397
|
+
className: "text-destructive block text-xs",
|
|
398
|
+
children: error
|
|
399
|
+
})]
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
function TextInputCell(props) {
|
|
403
|
+
const { column, cell } = props;
|
|
404
|
+
const schema = column;
|
|
405
|
+
const { update, saving, error } = useCellUpdate(props);
|
|
406
|
+
const [value, setValue] = useState(cell.state === null || cell.state === void 0 ? "" : String(cell.state));
|
|
407
|
+
const initial = cell.state === null || cell.state === void 0 ? "" : String(cell.state);
|
|
408
|
+
const grouped = Boolean(cell.prefix || cell.suffix);
|
|
409
|
+
const field = /* @__PURE__ */ jsxs("span", {
|
|
410
|
+
className: cn("relative block", grouped && "min-w-0 flex-1"),
|
|
411
|
+
children: [
|
|
412
|
+
schema.prefixIcon && /* @__PURE__ */ jsx("span", {
|
|
413
|
+
"data-slot": "input-prefix-icon",
|
|
414
|
+
"aria-hidden": "true",
|
|
415
|
+
className: cn("pointer-events-none absolute start-2.5 top-1/2 flex -translate-y-1/2", colorClass(textColorClasses, schema.prefixIconColor, "gray")),
|
|
416
|
+
children: /* @__PURE__ */ jsx(Icon, {
|
|
417
|
+
name: schema.prefixIcon,
|
|
418
|
+
className: "size-4"
|
|
419
|
+
})
|
|
420
|
+
}),
|
|
421
|
+
/* @__PURE__ */ jsx(Input, {
|
|
422
|
+
type: schema.inputType,
|
|
423
|
+
value,
|
|
424
|
+
placeholder: schema.placeholder,
|
|
425
|
+
step: schema.step,
|
|
426
|
+
inputMode: schema.inputMode,
|
|
427
|
+
disabled: Boolean(cell.disabled) || saving,
|
|
428
|
+
"aria-invalid": error ? true : void 0,
|
|
429
|
+
className: cn("h-8 min-w-32", schema.prefixIcon && "ps-8", schema.suffixIcon && "pe-8", grouped && "h-full rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent"),
|
|
430
|
+
onChange: (event) => setValue(event.target.value),
|
|
431
|
+
onBlur: () => value !== initial && void update(value),
|
|
432
|
+
onKeyDown: (event) => event.key === "Enter" && event.target.blur()
|
|
433
|
+
}),
|
|
434
|
+
schema.suffixIcon && /* @__PURE__ */ jsx("span", {
|
|
435
|
+
"data-slot": "input-suffix-icon",
|
|
436
|
+
"aria-hidden": "true",
|
|
437
|
+
className: cn("pointer-events-none absolute end-2.5 top-1/2 flex -translate-y-1/2", colorClass(textColorClasses, schema.suffixIconColor, "gray")),
|
|
438
|
+
children: /* @__PURE__ */ jsx(Icon, {
|
|
439
|
+
name: schema.suffixIcon,
|
|
440
|
+
className: "size-4"
|
|
441
|
+
})
|
|
442
|
+
})
|
|
443
|
+
]
|
|
444
|
+
});
|
|
445
|
+
return /* @__PURE__ */ jsxs("span", {
|
|
446
|
+
onClick: (event) => event.stopPropagation(),
|
|
447
|
+
children: [grouped ? /* @__PURE__ */ jsxs("span", {
|
|
448
|
+
"data-slot": "input-group",
|
|
449
|
+
className: cn("border-input dark:bg-input/30 has-[input:focus-visible]:border-ring has-[input:focus-visible]:ring-ring/50 flex h-8 min-w-32 items-stretch overflow-hidden rounded-md border shadow-xs has-[input:focus-visible]:ring-[3px]", error && "border-destructive"),
|
|
450
|
+
children: [
|
|
451
|
+
cell.prefix && /* @__PURE__ */ jsx("span", {
|
|
452
|
+
"data-slot": "input-prefix",
|
|
453
|
+
className: "text-muted-foreground bg-muted/50 flex items-center border-e px-2 text-sm",
|
|
454
|
+
children: cell.prefix
|
|
455
|
+
}),
|
|
456
|
+
field,
|
|
457
|
+
cell.suffix && /* @__PURE__ */ jsx("span", {
|
|
458
|
+
"data-slot": "input-suffix",
|
|
459
|
+
className: "text-muted-foreground bg-muted/50 flex items-center border-s px-2 text-sm",
|
|
460
|
+
children: cell.suffix
|
|
461
|
+
})
|
|
462
|
+
]
|
|
463
|
+
}) : field, error && /* @__PURE__ */ jsx("span", {
|
|
464
|
+
className: "text-destructive block text-xs",
|
|
465
|
+
children: error
|
|
466
|
+
})]
|
|
467
|
+
});
|
|
468
|
+
}
|
|
469
|
+
//#endregion
|
|
470
|
+
export { TableCellContent };
|
|
471
|
+
|
|
472
|
+
//# sourceMappingURL=cells.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cells.js","names":[],"sources":["../../../src/components/table/cells.tsx"],"sourcesContent":["import type {\n CellSchema,\n ColorColumnSchema,\n ColumnSchema,\n IconColumnSchema,\n Option,\n OptionOrGroup,\n RecordKey,\n SelectColumnSchema,\n TextInputColumnSchema,\n ToggleColumnSchema,\n ViewColumnSchema,\n} from '@alfakit/core'\nimport {\n columnRegistryKey,\n filterSelectColumnOptions,\n isOptionGroup,\n optionText,\n remainingTextSizeClass,\n resolvePartialProps,\n searchTableColumnOptions,\n selectColumnEmptyMessage,\n stackedImageStyle,\n updateTableCell,\n usesDefaultImageStack,\n} from '@alfakit/core'\nimport { router } from '@inertiajs/react'\nimport { CheckIcon, ChevronsUpDownIcon } from 'lucide-react'\nimport { createElement, useEffect, useRef, useState } from 'react'\nimport { usePanel, useRegistry, useT } from '../../context'\nimport { extraProps } from '../../lib/attributes'\nimport {\n colorClass,\n iconSizeClasses,\n switchOffColorClasses,\n switchOnColorClasses,\n textColorClasses,\n} from '../../lib/colors'\nimport { Icon } from '../../lib/icons'\nimport { cn } from '../../lib/utils'\nimport { FormattedText } from '../entries/text-entry'\nimport { Button } from '../ui/button'\nimport { Checkbox } from '../ui/checkbox'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '../ui/command'\nimport { Input } from '../ui/input'\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover'\nimport { Spinner } from '../ui/spinner'\nimport { Switch } from '../ui/switch'\n\nexport interface CellProps {\n column: ColumnSchema\n cell: CellSchema\n recordKey: RecordKey\n token: string\n component: string\n}\n\nexport function TableCellContent(props: CellProps) {\n const { column } = props\n // A component registered as `column:<type>` replaces the built-in cell renderer.\n const Custom = useRegistry().resolve(columnRegistryKey(column))\n\n if (Custom) {\n return createElement(Custom, props)\n }\n\n switch (column.type) {\n case 'IconColumn':\n return <IconCell {...props} />\n case 'ImageColumn':\n return <ImageCell {...props} />\n case 'ColorColumn':\n return <ColorCell {...props} />\n case 'ToggleColumn':\n case 'CheckboxColumn':\n return <BooleanCell {...props} />\n case 'SelectColumn':\n return <SelectCell {...props} />\n case 'TextInputColumn':\n return <TextInputCell {...props} />\n case 'ViewColumn':\n return <ViewCell {...props} />\n default:\n return <TextCell {...props} />\n }\n}\n\n/** `IconColumn`: one icon, or one per item of a list state (`wrap()` lets them wrap). */\nfunction IconCell({ column, cell }: CellProps) {\n const icons = cell.icons ?? (cell.icon ? [{ icon: cell.icon, color: cell.color }] : [])\n const sizeClass = colorClass(iconSizeClasses, cell.size, 'md')\n\n if (icons.length === 0) {\n return <span className=\"text-muted-foreground\">—</span>\n }\n\n if (!cell.icons) {\n return (\n <Icon\n name={icons[0]!.icon}\n className={cn(sizeClass, icons[0]!.color && textColorClasses[icons[0]!.color])}\n />\n )\n }\n\n return (\n <div\n data-slot=\"icon-column-icons\"\n className={cn(\n 'flex items-center gap-1.5',\n (column as IconColumnSchema).wrap ? 'flex-wrap' : 'flex-nowrap',\n )}\n >\n {icons.map((item, index) => (\n <Icon\n key={index}\n name={item.icon}\n className={cn(sizeClass, item.color && textColorClasses[item.color])}\n />\n ))}\n </div>\n )\n}\n\n/** `ViewColumn`: the application component registered under the column's `view()` name. */\nfunction ViewCell(props: CellProps) {\n const t = useT()\n const name = (props.column as ViewColumnSchema).component ?? ''\n const Custom = useRegistry().resolve(name)\n\n if (!name || !Custom) {\n return (\n <span className=\"text-destructive text-xs\">\n {t('component_not_registered', { component: name }, `Component ${name} is not registered.`)}\n </span>\n )\n }\n\n return createElement(Custom, { ...(props.cell.props ?? {}), state: props.cell.state, ...props })\n}\n\nfunction TextCell({ column, cell }: CellProps) {\n const text = (\n <FormattedText\n value={cell.state}\n schema={{\n ...(column as object),\n color: cell.color,\n icon: cell.icon,\n iconPosition: cell.iconPosition,\n iconColor: cell.iconColor,\n itemColors: cell.itemColors,\n itemIcons: cell.itemIcons,\n itemUrls: cell.itemUrls,\n }}\n />\n )\n const description = cell.description ? (\n <span className=\"text-muted-foreground block text-xs\">{cell.description}</span>\n ) : null\n const position =\n (column as { descriptionPosition?: 'above' | 'below' }).descriptionPosition ?? 'below'\n\n return (\n <div className=\"flex flex-col gap-0.5\">\n {position === 'above' && description}\n {text}\n {position === 'below' && description}\n </div>\n )\n}\n\nfunction ImageCell({ column, cell }: CellProps) {\n const urls = Array.isArray(cell.state) ? (cell.state as string[]) : []\n const schema = column as {\n circular?: boolean\n square?: boolean\n size?: number | string\n height?: number | string\n width?: string\n stacked?: boolean\n limit?: number\n limitedRemainingText?: boolean\n limitedRemainingTextSize?: string\n wrap?: boolean\n ring?: number\n overlap?: number\n }\n const limit = schema.limit ?? urls.length\n const size = schema.size ?? 40\n\n if (urls.length === 0) {\n return <span className=\"text-muted-foreground\">—</span>\n }\n\n return (\n <div\n className={cn(\n 'flex items-center',\n schema.wrap && 'flex-wrap',\n schema.stacked ? usesDefaultImageStack(schema) && '-space-x-2' : 'gap-1.5',\n schema.wrap && schema.stacked && 'gap-y-1.5',\n )}\n >\n {urls.slice(0, limit).map((url, index) => (\n <img\n key={index}\n src={url}\n alt={cell.alt ?? ''}\n style={{\n height: schema.height ?? size,\n width: schema.width ?? (schema.square || schema.circular ? size : undefined),\n ...stackedImageStyle(index, schema),\n }}\n {...extraProps(\n cell.extraImgAttributes,\n cn(\n 'object-cover',\n schema.circular ? 'rounded-full' : 'rounded-md',\n schema.stacked && usesDefaultImageStack(schema) && 'ring-background ring-2',\n ),\n )}\n />\n ))}\n {schema.limitedRemainingText && urls.length > limit && (\n <span\n data-slot=\"image-remaining\"\n className={cn(\n 'text-muted-foreground ms-1',\n remainingTextSizeClass(schema.limitedRemainingTextSize),\n )}\n >\n +{urls.length - limit}\n </span>\n )}\n </div>\n )\n}\n\nfunction ColorCell({ column, cell }: CellProps) {\n const t = useT()\n const schema = column as ColorColumnSchema\n const [copied, setCopied] = useState<string | null>(null)\n const colors = Array.isArray(cell.state)\n ? (cell.state as string[])\n : cell.state\n ? [String(cell.state)]\n : []\n\n if (colors.length === 0) {\n return <span className=\"text-muted-foreground\">—</span>\n }\n\n const copy = (color: string) => {\n void navigator.clipboard?.writeText(color).then(() => {\n setCopied(color)\n setTimeout(() => setCopied(null), schema.copyMessageDuration ?? 1500)\n })\n }\n\n return (\n <div className={cn('flex items-center gap-1.5', schema.wrap ? 'flex-wrap' : 'flex-nowrap')}>\n {colors.map((color) =>\n schema.copyable ? (\n <button\n key={color}\n type=\"button\"\n data-slot=\"color-copy\"\n title={color}\n aria-label={`${t('copy', {}, 'Copy')} ${color}`}\n className=\"focus-visible:ring-ring/50 inline-flex rounded outline-none focus-visible:ring-[3px]\"\n onClick={(event) => {\n // The cell may sit inside a link or a clickable row.\n event.preventDefault()\n event.stopPropagation()\n copy(color)\n }}\n >\n <span\n className=\"inline-flex size-5 items-center justify-center rounded border shadow-xs\"\n style={{ backgroundColor: color }}\n >\n {copied === color && <CheckIcon className=\"size-3 text-white mix-blend-difference\" />}\n </span>\n </button>\n ) : (\n <span\n key={color}\n title={color}\n className=\"size-5 rounded border shadow-xs\"\n style={{ backgroundColor: color }}\n />\n ),\n )}\n {schema.copyable && copied && (\n <span role=\"status\" className={cn('text-xs', !schema.copyMessage && 'sr-only')}>\n {schema.copyMessage ?? t('copied', {}, 'Copied')}\n </span>\n )}\n </div>\n )\n}\n\nfunction useCellUpdate({ recordKey, column, token, component }: CellProps) {\n const panel = usePanel()\n const [saving, setSaving] = useState(false)\n const [error, setError] = useState<string | null>(null)\n\n const update = async (state: unknown) => {\n if (!panel.endpoints.tableCell || !panel.endpoints.tableReorder) return\n\n setSaving(true)\n setError(null)\n\n try {\n await updateTableCell(\n { cell: panel.endpoints.tableCell, reorder: panel.endpoints.tableReorder },\n token,\n component,\n recordKey,\n column.name,\n state,\n )\n router.reload({ only: resolvePartialProps(['page']) })\n } catch (caught) {\n const errors = (caught as { errors?: Record<string, string[]> }).errors\n setError(errors?.state?.[0] ?? (caught as Error).message)\n } finally {\n setSaving(false)\n }\n }\n\n return { update, saving, error }\n}\n\nfunction BooleanCell(props: CellProps) {\n const { column, cell } = props\n const { update, saving } = useCellUpdate(props)\n const [checked, setChecked] = useState(Boolean(cell.state))\n const disabled = Boolean(cell.disabled) || saving\n const toggle = column as ToggleColumnSchema\n\n const onChange = (next: boolean) => {\n setChecked(next)\n void update(next)\n }\n\n if (column.type === 'CheckboxColumn') {\n return (\n <Checkbox\n checked={checked}\n disabled={disabled}\n aria-label={column.label || column.name}\n onCheckedChange={(value) => onChange(value === true)}\n onClick={(event) => event.stopPropagation()}\n />\n )\n }\n\n return (\n <span className=\"inline-flex items-center gap-2\" onClick={(event) => event.stopPropagation()}>\n <Switch\n checked={checked}\n disabled={disabled}\n aria-label={column.label || column.name}\n onCheckedChange={onChange}\n className={cn(\n toggle.onColor && colorClass(switchOnColorClasses, toggle.onColor),\n toggle.offColor && colorClass(switchOffColorClasses, toggle.offColor),\n )}\n />\n {(checked ? toggle.onIcon : toggle.offIcon) && (\n <Icon\n name={checked ? toggle.onIcon : toggle.offIcon}\n className={cn(\n colorClass(textColorClasses, checked ? toggle.onColor : toggle.offColor, 'gray'),\n )}\n />\n )}\n </span>\n )\n}\n\nfunction flatten(options: OptionOrGroup[]) {\n return options.flatMap((option) => (isOptionGroup(option) ? option.options : [option]))\n}\n\nfunction SelectCell(props: CellProps) {\n const schema = props.column as SelectColumnSchema\n\n return schema.native === false ? (\n <SelectComboboxCell {...props} />\n ) : (\n <NativeSelectCell {...props} />\n )\n}\n\n/**\n * An option label: sanitised HTML under `allowOptionsHtml()`, text otherwise. Long labels\n * wrap unless `wrapOptionLabels(false)` truncates them.\n */\nfunction SelectOptionLabel({\n label,\n html,\n truncate,\n}: {\n label: string\n html?: boolean\n truncate?: boolean\n}) {\n const className = truncate ? 'min-w-0 truncate' : 'min-w-0 break-words whitespace-normal'\n\n // The server sanitises HTML labels (`Support\\Html::sanitize`).\n return html ? (\n <span className={className} dangerouslySetInnerHTML={{ __html: label }} />\n ) : (\n <span className={className}>{label}</span>\n )\n}\n\n/**\n * `SelectColumn::native(false)`: a combobox, searchable with `searchableOptions()`. Options\n * come with the table, or from the server (`optionsSearchPath`) as the user types.\n */\nfunction SelectComboboxCell(props: CellProps) {\n const { column, cell, recordKey, token, component } = props\n const schema = column as SelectColumnSchema\n const t = useT()\n const panel = usePanel()\n const { update, saving, error } = useCellUpdate(props)\n const [value, setValue] = useState(\n cell.state === null || cell.state === undefined ? '' : String(cell.state),\n )\n const [label, setLabel] = useState(cell.optionLabel)\n const [open, setOpen] = useState(false)\n const [search, setSearch] = useState('')\n const [loading, setLoading] = useState(false)\n const [remote, setRemote] = useState<Option[]>([])\n const request = useRef(0)\n const isRemote = Boolean(schema.optionsSearchPath)\n const debounce = schema.optionsSearchDebounce ?? 300\n const staticOptions = flatten(schema.options)\n\n useEffect(() => {\n if (!open || !isRemote || !panel.endpoints.schemaOptions) return\n\n const url = panel.endpoints.schemaOptions\n const timer = setTimeout(() => {\n const current = ++request.current\n setLoading(true)\n\n void searchTableColumnOptions(url, token, component, schema, search)\n .then((results) => current === request.current && setRemote(results))\n .catch(() => current === request.current && setRemote([]))\n .finally(() => current === request.current && setLoading(false))\n }, debounce)\n\n return () => clearTimeout(timer)\n }, [open, search, isRemote, panel.endpoints.schemaOptions, token, component, schema, debounce])\n\n const options = filterSelectColumnOptions(\n isRemote ? remote : staticOptions,\n schema,\n isRemote ? '' : search,\n recordKey,\n )\n const emptyMessage = selectColumnEmptyMessage(schema, {\n loading,\n search,\n optionCount: options.length,\n })\n const currentLabel =\n staticOptions.find((option) => option.value === value)?.label ??\n remote.find((option) => option.value === value)?.label ??\n label\n\n const choose = (next: string, nextLabel?: string) => {\n setValue(next)\n setLabel(nextLabel)\n setOpen(false)\n void update(next === '' ? null : next)\n }\n\n return (\n <span onClick={(event) => event.stopPropagation()}>\n <Popover\n open={open}\n onOpenChange={(next) => {\n setOpen(next)\n\n if (!next) setSearch('')\n }}\n >\n <PopoverTrigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n role=\"combobox\"\n aria-expanded={open}\n aria-label={column.label || column.name}\n aria-invalid={error ? true : undefined}\n disabled={Boolean(cell.disabled) || saving}\n className={cn(\n 'h-8 min-w-32 justify-between font-normal',\n error && 'border-destructive',\n )}\n >\n {value !== '' && currentLabel !== undefined ? (\n <SelectOptionLabel label={currentLabel} html={schema.allowOptionsHtml} truncate />\n ) : (\n <span className=\"text-muted-foreground\">\n {schema.placeholder ??\n (value !== '' ? value : t('select_option', {}, 'Select an option'))}\n </span>\n )}\n {loading ? (\n <Spinner className=\"opacity-50\" />\n ) : (\n <ChevronsUpDownIcon className=\"size-4 shrink-0 opacity-50\" />\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-64 p-0\" align=\"start\">\n <Command shouldFilter={false}>\n {schema.searchableOptions && (\n <CommandInput\n placeholder={\n schema.searchPrompt ?? t('form.search_placeholder', {}, 'Type to search…')\n }\n value={search}\n onValueChange={setSearch}\n />\n )}\n <CommandList>\n <CommandEmpty data-slot=\"select-column-message\">\n {emptyMessage.message ?? t(emptyMessage.key, {}, emptyMessage.fallback)}\n </CommandEmpty>\n <CommandGroup>\n {schema.selectablePlaceholder && value !== '' && (\n <CommandItem value=\"\" onSelect={() => choose('')}>\n <span className=\"text-muted-foreground\">\n {schema.placeholder ?? t('clear', {}, 'Clear')}\n </span>\n </CommandItem>\n )}\n {options.map((option) => (\n <CommandItem\n key={option.value}\n value={option.value}\n keywords={[optionText(option.label)]}\n disabled={option.disabled}\n onSelect={() => choose(option.value, option.label)}\n >\n <CheckIcon\n className={cn('size-4', option.value === value ? 'opacity-100' : 'opacity-0')}\n />\n <SelectOptionLabel\n label={option.label}\n html={schema.allowOptionsHtml}\n truncate={schema.wrapOptionLabels === false}\n />\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n {error && <span className=\"text-destructive block text-xs\">{error}</span>}\n </span>\n )\n}\n\nfunction NativeSelectCell(props: CellProps) {\n const { column, cell } = props\n const schema = column as SelectColumnSchema\n const { update, saving, error } = useCellUpdate(props)\n const [value, setValue] = useState(\n cell.state === null || cell.state === undefined ? '' : String(cell.state),\n )\n\n return (\n <span onClick={(event) => event.stopPropagation()}>\n <select\n value={value}\n disabled={Boolean(cell.disabled) || saving}\n onChange={(event) => {\n setValue(event.target.value)\n void update(event.target.value === '' ? null : event.target.value)\n }}\n aria-invalid={error ? true : undefined}\n className={cn(\n 'border-input dark:bg-input/30 focus-visible:ring-ring/50 h-8 min-w-32 rounded-md border bg-transparent px-2 text-sm shadow-xs outline-none focus-visible:ring-[3px]',\n error && 'border-destructive',\n )}\n >\n {schema.selectablePlaceholder && <option value=\"\">{schema.placeholder ?? ''}</option>}\n {flatten(schema.options)\n .filter((option) => !(schema.ignoreRecord && option.value === String(props.recordKey)))\n .map((option) => (\n <option key={option.value} value={option.value} disabled={option.disabled}>\n {option.label}\n </option>\n ))}\n </select>\n {error && <span className=\"text-destructive block text-xs\">{error}</span>}\n </span>\n )\n}\n\nfunction TextInputCell(props: CellProps) {\n const { column, cell } = props\n const schema = column as TextInputColumnSchema\n const { update, saving, error } = useCellUpdate(props)\n const [value, setValue] = useState(\n cell.state === null || cell.state === undefined ? '' : String(cell.state),\n )\n const initial = cell.state === null || cell.state === undefined ? '' : String(cell.state)\n // `prefix()` / `suffix()`: text affixes around the input, like the TextInput field.\n const grouped = Boolean(cell.prefix || cell.suffix)\n\n const field = (\n <span className={cn('relative block', grouped && 'min-w-0 flex-1')}>\n {schema.prefixIcon && (\n <span\n data-slot=\"input-prefix-icon\"\n aria-hidden=\"true\"\n className={cn(\n 'pointer-events-none absolute start-2.5 top-1/2 flex -translate-y-1/2',\n colorClass(textColorClasses, schema.prefixIconColor, 'gray'),\n )}\n >\n <Icon name={schema.prefixIcon} className=\"size-4\" />\n </span>\n )}\n <Input\n type={schema.inputType}\n value={value}\n placeholder={schema.placeholder}\n step={schema.step}\n inputMode={schema.inputMode as React.HTMLAttributes<HTMLInputElement>['inputMode']}\n disabled={Boolean(cell.disabled) || saving}\n aria-invalid={error ? true : undefined}\n className={cn(\n 'h-8 min-w-32',\n schema.prefixIcon && 'ps-8',\n schema.suffixIcon && 'pe-8',\n grouped &&\n 'h-full rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent',\n )}\n onChange={(event) => setValue(event.target.value)}\n onBlur={() => value !== initial && void update(value)}\n onKeyDown={(event) => event.key === 'Enter' && (event.target as HTMLInputElement).blur()}\n />\n {schema.suffixIcon && (\n <span\n data-slot=\"input-suffix-icon\"\n aria-hidden=\"true\"\n className={cn(\n 'pointer-events-none absolute end-2.5 top-1/2 flex -translate-y-1/2',\n colorClass(textColorClasses, schema.suffixIconColor, 'gray'),\n )}\n >\n <Icon name={schema.suffixIcon} className=\"size-4\" />\n </span>\n )}\n </span>\n )\n\n return (\n <span onClick={(event) => event.stopPropagation()}>\n {grouped ? (\n <span\n data-slot=\"input-group\"\n className={cn(\n 'border-input dark:bg-input/30 has-[input:focus-visible]:border-ring has-[input:focus-visible]:ring-ring/50 flex h-8 min-w-32 items-stretch overflow-hidden rounded-md border shadow-xs has-[input:focus-visible]:ring-[3px]',\n error && 'border-destructive',\n )}\n >\n {cell.prefix && (\n <span\n data-slot=\"input-prefix\"\n className=\"text-muted-foreground bg-muted/50 flex items-center border-e px-2 text-sm\"\n >\n {cell.prefix}\n </span>\n )}\n {field}\n {cell.suffix && (\n <span\n data-slot=\"input-suffix\"\n className=\"text-muted-foreground bg-muted/50 flex items-center border-s px-2 text-sm\"\n >\n {cell.suffix}\n </span>\n )}\n </span>\n ) : (\n field\n )}\n {error && <span className=\"text-destructive block text-xs\">{error}</span>}\n </span>\n )\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TableSchema } from "@alfakit/core";
|
|
2
|
+
//#region src/components/table/column-manager.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* The column manager: show / hide toggleable columns (kept in the query string) and,
|
|
5
|
+
* with `reorderableColumns()`, move columns (stored per user on the server) by dragging a
|
|
6
|
+
* row onto another or with the move up / down buttons (the keyboard path).
|
|
7
|
+
*
|
|
8
|
+
* `deferColumnManager()` keeps toggles in a draft until "Apply"; `columnManagerLayout()`
|
|
9
|
+
* opens it in a dialog; `columnManagerColumns()` lays the list out in a grid.
|
|
10
|
+
*/
|
|
11
|
+
export declare function ColumnManager({ table, token, component }: {
|
|
12
|
+
table: TableSchema;
|
|
13
|
+
token: string;
|
|
14
|
+
component: string;
|
|
15
|
+
}): import("react").JSX.Element | null;
|
|
16
|
+
//#endregion
|
|
17
|
+
//# sourceMappingURL=column-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-manager.d.ts","names":[],"sources":["../../../src/components/table/column-manager.tsx"],"mappings":";;;;;;;;;;wBAqDgB,gBACd,OACA,OACA;EAEA,OAAO;EACP;EACA;oBACD,IAAA"}
|