@nuraly/lumenui 0.2.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn.js +1 -0
- package/dist/nuralyui.bundle.js +3434 -2085
- package/dist/nuralyui.bundle.js.gz +0 -0
- package/dist/src/components/button/controllers/base.controller.d.ts +15 -0
- package/dist/src/components/button/controllers/base.controller.js +13 -0
- package/dist/src/components/button/controllers/index.d.ts +10 -0
- package/dist/src/components/button/controllers/index.js +10 -0
- package/dist/src/components/button/controllers/keyboard.controller.d.ts +32 -0
- package/dist/src/components/button/controllers/keyboard.controller.js +78 -0
- package/dist/src/components/button/controllers/link.controller.d.ts +30 -0
- package/dist/src/components/button/controllers/link.controller.js +75 -0
- package/dist/src/components/button/controllers/ripple.controller.d.ts +23 -0
- package/dist/src/components/button/controllers/ripple.controller.js +69 -0
- package/dist/src/components/button/interfaces/base-controller.interface.d.ts +61 -0
- package/dist/src/components/button/interfaces/base-controller.interface.js +7 -0
- package/dist/src/components/button/interfaces/index.d.ts +2 -0
- package/dist/src/components/button/interfaces/index.js +2 -0
- package/dist/src/components/button/test/nr-button_test.d.ts +2 -0
- package/dist/src/components/button/test/nr-button_test.js +91 -0
- package/dist/src/components/canvas/base-canvas.component.d.ts +2 -1
- package/dist/src/components/canvas/base-canvas.component.js +6 -0
- package/dist/src/components/canvas/bundle.js +1083 -491
- package/dist/src/components/canvas/bundle.js.gz +0 -0
- package/dist/src/components/canvas/canvas.constants.d.ts +1 -1
- package/dist/src/components/canvas/canvas.constants.js +1 -1
- package/dist/src/components/canvas/chatbot-panel.style.js +50 -59
- package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger-fields.component.d.ts +115 -0
- package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger-fields.component.js +480 -0
- package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger-fields.style.d.ts +7 -0
- package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger-fields.style.js +323 -0
- package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger.types.d.ts +162 -0
- package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger.types.js +88 -0
- package/dist/src/components/canvas/chatbot-trigger/index.d.ts +9 -0
- package/dist/src/components/canvas/chatbot-trigger/index.js +12 -0
- package/dist/src/components/canvas/controllers/base.controller.d.ts +53 -0
- package/dist/src/components/canvas/controllers/base.controller.js +80 -0
- package/dist/src/components/canvas/controllers/clipboard.controller.d.ts +80 -0
- package/dist/src/components/canvas/controllers/clipboard.controller.js +300 -0
- package/dist/src/components/canvas/controllers/collaboration.controller.d.ts +54 -0
- package/dist/src/components/canvas/controllers/collaboration.controller.js +425 -0
- package/dist/src/components/canvas/controllers/config.controller.d.ts +61 -0
- package/dist/src/components/canvas/controllers/config.controller.js +118 -0
- package/dist/src/components/canvas/controllers/connection.controller.d.ts +69 -0
- package/dist/src/components/canvas/controllers/connection.controller.js +183 -0
- package/dist/src/components/canvas/controllers/drag.controller.d.ts +56 -0
- package/dist/src/components/canvas/controllers/drag.controller.js +195 -0
- package/dist/src/components/canvas/controllers/frame.controller.d.ts +94 -0
- package/dist/src/components/canvas/controllers/frame.controller.js +456 -0
- package/dist/src/components/canvas/controllers/index.d.ts +19 -0
- package/dist/src/components/canvas/controllers/index.js +32 -0
- package/dist/src/components/canvas/controllers/keyboard.controller.d.ts +44 -0
- package/dist/src/components/canvas/controllers/keyboard.controller.js +275 -0
- package/dist/src/components/canvas/controllers/marquee.controller.d.ts +71 -0
- package/dist/src/components/canvas/controllers/marquee.controller.js +128 -0
- package/dist/src/components/canvas/controllers/selection.controller.d.ts +85 -0
- package/dist/src/components/canvas/controllers/selection.controller.js +202 -0
- package/dist/src/components/canvas/controllers/touch.controller.d.ts +55 -0
- package/dist/src/components/canvas/controllers/touch.controller.js +299 -0
- package/dist/src/components/canvas/controllers/undo.controller.d.ts +100 -0
- package/dist/src/components/canvas/controllers/undo.controller.js +218 -0
- package/dist/src/components/canvas/controllers/viewport.controller.d.ts +91 -0
- package/dist/src/components/canvas/controllers/viewport.controller.js +287 -0
- package/dist/src/components/canvas/data-node/data-node-config.component.d.ts +67 -0
- package/dist/src/components/canvas/data-node/data-node-config.component.js +496 -0
- package/dist/src/components/canvas/data-node/data-node-fields.component.d.ts +198 -0
- package/dist/src/components/canvas/data-node/data-node-fields.component.js +931 -0
- package/dist/src/components/canvas/data-node/data-node-fields.style.d.ts +7 -0
- package/dist/src/components/canvas/data-node/data-node-fields.style.js +448 -0
- package/dist/src/components/canvas/data-node/data-node.types.d.ts +245 -0
- package/dist/src/components/canvas/data-node/data-node.types.js +158 -0
- package/dist/src/components/canvas/data-node/index.d.ts +9 -0
- package/dist/src/components/canvas/data-node/index.js +12 -0
- package/dist/src/components/canvas/data-node/schema-select.component.d.ts +36 -0
- package/dist/src/components/canvas/data-node/schema-select.component.js +196 -0
- package/dist/src/components/canvas/data-node/table-select.component.d.ts +38 -0
- package/dist/src/components/canvas/data-node/table-select.component.js +199 -0
- package/dist/src/components/canvas/interfaces/canvas-host.interface.d.ts +91 -0
- package/dist/src/components/canvas/interfaces/canvas-host.interface.js +7 -0
- package/dist/src/components/canvas/interfaces/collaboration.interface.d.ts +58 -0
- package/dist/src/components/canvas/interfaces/collaboration.interface.js +10 -0
- package/dist/src/components/canvas/interfaces/index.d.ts +8 -0
- package/dist/src/components/canvas/interfaces/index.js +7 -0
- package/dist/src/components/canvas/templates/chatbot-panel.template.d.ts +28 -0
- package/dist/src/components/canvas/templates/chatbot-panel.template.js +49 -0
- package/dist/src/components/canvas/templates/config-panel.template.d.ts +22 -0
- package/dist/src/components/canvas/templates/config-panel.template.js +22 -0
- package/dist/src/components/canvas/templates/context-menu.template.d.ts +30 -0
- package/dist/src/components/canvas/templates/context-menu.template.js +80 -0
- package/dist/src/components/canvas/templates/edges.template.d.ts +41 -0
- package/dist/src/components/canvas/templates/edges.template.js +243 -0
- package/dist/src/components/canvas/templates/empty-state.template.d.ts +17 -0
- package/dist/src/components/canvas/templates/empty-state.template.js +25 -0
- package/dist/src/components/canvas/templates/frame.template.d.ts +24 -0
- package/dist/src/components/canvas/templates/frame.template.js +74 -0
- package/dist/src/components/canvas/templates/index.d.ts +18 -0
- package/dist/src/components/canvas/templates/index.js +30 -0
- package/dist/src/components/canvas/templates/palette.template.d.ts +27 -0
- package/dist/src/components/canvas/templates/palette.template.js +110 -0
- package/dist/src/components/canvas/templates/presence-bar.template.d.ts +18 -0
- package/dist/src/components/canvas/templates/presence-bar.template.js +60 -0
- package/dist/src/components/canvas/templates/remote-cursors.template.d.ts +19 -0
- package/dist/src/components/canvas/templates/remote-cursors.template.js +43 -0
- package/dist/src/components/canvas/templates/toolbar.template.d.ts +52 -0
- package/dist/src/components/canvas/templates/toolbar.template.js +118 -0
- package/dist/src/components/canvas/templates/wb-floating-toolbar.template.d.ts +30 -0
- package/dist/src/components/canvas/templates/wb-floating-toolbar.template.js +219 -0
- package/dist/src/components/canvas/templates/wb-sidebar.template.d.ts +23 -0
- package/dist/src/components/canvas/templates/wb-sidebar.template.js +152 -0
- package/dist/src/components/canvas/utils/variable-resolver.d.ts +71 -0
- package/dist/src/components/canvas/utils/variable-resolver.js +280 -0
- package/dist/src/components/canvas/workflow-canvas.component.d.ts +7 -0
- package/dist/src/components/canvas/workflow-canvas.component.js +52 -2
- package/dist/src/components/canvas/workflow-canvas.style.js +46 -55
- package/dist/src/components/canvas/workflow-canvas.types.d.ts +8 -1
- package/dist/src/components/canvas/workflow-canvas.types.js +157 -0
- package/dist/src/components/carousel/demo/carousel-demo.d.ts +6 -0
- package/dist/src/components/carousel/demo/carousel-demo.js +68 -0
- package/dist/src/components/chat-panel/bundle.js +216 -0
- package/dist/src/components/chat-panel/bundle.js.gz +0 -0
- package/dist/src/components/chat-panel/chat-panel.component.d.ts +85 -0
- package/dist/src/components/chat-panel/chat-panel.component.js +510 -0
- package/dist/src/components/chat-panel/chat-panel.style.d.ts +2 -0
- package/dist/src/components/chat-panel/chat-panel.style.js +127 -0
- package/dist/src/components/chat-panel/chat-panel.types.d.ts +54 -0
- package/dist/src/components/chat-panel/chat-panel.types.js +2 -0
- package/dist/src/components/chat-panel/index.d.ts +3 -0
- package/dist/src/components/chat-panel/index.js +2 -0
- package/dist/src/components/chatbot/audio-compress.d.ts +26 -0
- package/dist/src/components/chatbot/audio-compress.js +84 -0
- package/dist/src/components/chatbot/bundle.js +388 -144
- package/dist/src/components/chatbot/bundle.js.gz +0 -0
- package/dist/src/components/chatbot/chatbot-audio.controller.d.ts +35 -0
- package/dist/src/components/chatbot/chatbot-audio.controller.js +160 -0
- package/dist/src/components/chatbot/chatbot.component.d.ts +12 -0
- package/dist/src/components/chatbot/chatbot.component.js +41 -2
- package/dist/src/components/chatbot/chatbot.style.js +141 -0
- package/dist/src/components/chatbot/chatbot.types.d.ts +8 -0
- package/dist/src/components/chatbot/controllers/index.d.ts +8 -0
- package/dist/src/components/chatbot/controllers/index.js +8 -0
- package/dist/src/components/chatbot/controllers/scroll.controller.d.ts +34 -0
- package/dist/src/components/chatbot/controllers/scroll.controller.js +43 -0
- package/dist/src/components/chatbot/core/chatbot-core.controller.d.ts +283 -0
- package/dist/src/components/chatbot/core/chatbot-core.controller.js +824 -0
- package/dist/src/components/chatbot/core/event-bus.d.ts +54 -0
- package/dist/src/components/chatbot/core/event-bus.js +102 -0
- package/dist/src/components/chatbot/core/index.d.ts +12 -0
- package/dist/src/components/chatbot/core/index.js +15 -0
- package/dist/src/components/chatbot/core/types.d.ts +403 -0
- package/dist/src/components/chatbot/core/types.js +16 -0
- package/dist/src/components/chatbot/locales/locale-codes.d.ts +14 -0
- package/dist/src/components/chatbot/locales/locale-codes.js +23 -0
- package/dist/src/components/chatbot/plugins/analytics-plugin.d.ts +23 -0
- package/dist/src/components/chatbot/plugins/analytics-plugin.js +52 -0
- package/dist/src/components/chatbot/plugins/artifact-plugin.d.ts +71 -0
- package/dist/src/components/chatbot/plugins/artifact-plugin.js +313 -0
- package/dist/src/components/chatbot/plugins/chat-plugin.d.ts +44 -0
- package/dist/src/components/chatbot/plugins/chat-plugin.js +58 -0
- package/dist/src/components/chatbot/plugins/flight-card-plugin.d.ts +116 -0
- package/dist/src/components/chatbot/plugins/flight-card-plugin.js +594 -0
- package/dist/src/components/chatbot/plugins/flow-diagram-plugin.d.ts +23 -0
- package/dist/src/components/chatbot/plugins/flow-diagram-plugin.js +495 -0
- package/dist/src/components/chatbot/plugins/index.d.ts +16 -0
- package/dist/src/components/chatbot/plugins/index.js +17 -0
- package/dist/src/components/chatbot/plugins/json-graph-renderer-plugin.d.ts +43 -0
- package/dist/src/components/chatbot/plugins/json-graph-renderer-plugin.js +166 -0
- package/dist/src/components/chatbot/plugins/markdown-plugin.d.ts +26 -0
- package/dist/src/components/chatbot/plugins/markdown-plugin.js +68 -0
- package/dist/src/components/chatbot/plugins/persistence-plugin.d.ts +30 -0
- package/dist/src/components/chatbot/plugins/persistence-plugin.js +91 -0
- package/dist/src/components/chatbot/plugins/print-job-card-plugin.d.ts +110 -0
- package/dist/src/components/chatbot/plugins/print-job-card-plugin.js +505 -0
- package/dist/src/components/chatbot/plugins/selection-card-plugin.d.ts +111 -0
- package/dist/src/components/chatbot/plugins/selection-card-plugin.js +318 -0
- package/dist/src/components/chatbot/providers/custom-api-provider.d.ts +63 -0
- package/dist/src/components/chatbot/providers/custom-api-provider.js +240 -0
- package/dist/src/components/chatbot/providers/index.d.ts +16 -0
- package/dist/src/components/chatbot/providers/index.js +13 -0
- package/dist/src/components/chatbot/providers/mock-provider.d.ts +154 -0
- package/dist/src/components/chatbot/providers/mock-provider.js +411 -0
- package/dist/src/components/chatbot/providers/native-ws-provider.d.ts +184 -0
- package/dist/src/components/chatbot/providers/native-ws-provider.js +544 -0
- package/dist/src/components/chatbot/providers/openai-provider.d.ts +32 -0
- package/dist/src/components/chatbot/providers/openai-provider.js +246 -0
- package/dist/src/components/chatbot/providers/socket-provider.d.ts +159 -0
- package/dist/src/components/chatbot/providers/socket-provider.js +390 -0
- package/dist/src/components/chatbot/providers/workflow-socket-provider.d.ts +116 -0
- package/dist/src/components/chatbot/providers/workflow-socket-provider.js +484 -0
- package/dist/src/components/chatbot/storage/index.d.ts +7 -0
- package/dist/src/components/chatbot/storage/index.js +8 -0
- package/dist/src/components/chatbot/storage/storage-implementations.d.ts +43 -0
- package/dist/src/components/chatbot/storage/storage-implementations.js +179 -0
- package/dist/src/components/chatbot/templates/artifact-panel.template.d.ts +22 -0
- package/dist/src/components/chatbot/templates/artifact-panel.template.js +81 -0
- package/dist/src/components/chatbot/templates/chatbot-main.template.d.ts +49 -0
- package/dist/src/components/chatbot/templates/chatbot-main.template.js +115 -0
- package/dist/src/components/chatbot/templates/file-preview-modal.template.d.ts +19 -0
- package/dist/src/components/chatbot/templates/file-preview-modal.template.js +74 -0
- package/dist/src/components/chatbot/templates/file-upload-area.template.d.ts +19 -0
- package/dist/src/components/chatbot/templates/file-upload-area.template.js +29 -0
- package/dist/src/components/chatbot/templates/index.d.ts +15 -0
- package/dist/src/components/chatbot/templates/index.js +15 -0
- package/dist/src/components/chatbot/templates/input-box.template.d.ts +49 -0
- package/dist/src/components/chatbot/templates/input-box.template.js +317 -0
- package/dist/src/components/chatbot/templates/message.template.d.ts +31 -0
- package/dist/src/components/chatbot/templates/message.template.js +214 -0
- package/dist/src/components/chatbot/templates/suggestion.template.d.ts +20 -0
- package/dist/src/components/chatbot/templates/suggestion.template.js +40 -0
- package/dist/src/components/chatbot/templates/thread-sidebar.template.d.ts +24 -0
- package/dist/src/components/chatbot/templates/thread-sidebar.template.js +160 -0
- package/dist/src/components/chatbot/templates/url-modal.template.d.ts +25 -0
- package/dist/src/components/chatbot/templates/url-modal.template.js +100 -0
- package/dist/src/components/chatbot/utils/format.d.ts +23 -0
- package/dist/src/components/chatbot/utils/format.js +84 -0
- package/dist/src/components/chatbot/utils/index.d.ts +7 -0
- package/dist/src/components/chatbot/utils/index.js +7 -0
- package/dist/src/components/checkbox/mixins/checkbox-event-mixin.d.ts +87 -0
- package/dist/src/components/checkbox/mixins/checkbox-event-mixin.js +94 -0
- package/dist/src/components/checkbox/mixins/checkbox-focus-mixin.d.ts +55 -0
- package/dist/src/components/checkbox/mixins/checkbox-focus-mixin.js +57 -0
- package/dist/src/components/checkbox/mixins/index.d.ts +10 -0
- package/dist/src/components/checkbox/mixins/index.js +8 -0
- package/dist/src/components/checkbox/test/checkbox_test.d.ts +2 -0
- package/dist/src/components/checkbox/test/checkbox_test.js +88 -0
- package/dist/src/components/collapse/controllers/accordion.controller.d.ts +60 -0
- package/dist/src/components/collapse/controllers/accordion.controller.js +132 -0
- package/dist/src/components/collapse/controllers/animation.controller.d.ts +40 -0
- package/dist/src/components/collapse/controllers/animation.controller.js +125 -0
- package/dist/src/components/collapse/controllers/base.controller.d.ts +48 -0
- package/dist/src/components/collapse/controllers/base.controller.js +69 -0
- package/dist/src/components/collapse/controllers/index.d.ts +12 -0
- package/dist/src/components/collapse/controllers/index.js +11 -0
- package/dist/src/components/collapse/controllers/keyboard.controller.d.ts +73 -0
- package/dist/src/components/collapse/controllers/keyboard.controller.js +186 -0
- package/dist/src/components/colorpicker/controllers/base.controller.d.ts +14 -0
- package/dist/src/components/colorpicker/controllers/base.controller.js +15 -0
- package/dist/src/components/colorpicker/controllers/dropdown.controller.d.ts +60 -0
- package/dist/src/components/colorpicker/controllers/dropdown.controller.js +243 -0
- package/dist/src/components/colorpicker/controllers/event.controller.d.ts +46 -0
- package/dist/src/components/colorpicker/controllers/event.controller.js +130 -0
- package/dist/src/components/colorpicker/controllers/index.d.ts +4 -0
- package/dist/src/components/colorpicker/controllers/index.js +4 -0
- package/dist/src/components/colorpicker/interfaces/index.d.ts +60 -0
- package/dist/src/components/colorpicker/interfaces/index.js +2 -0
- package/dist/src/components/datepicker/controllers/calendar.controller.d.ts +78 -0
- package/dist/src/components/datepicker/controllers/calendar.controller.js +225 -0
- package/dist/src/components/datepicker/controllers/index.d.ts +11 -0
- package/dist/src/components/datepicker/controllers/index.js +11 -0
- package/dist/src/components/datepicker/controllers/keyboard.controller.d.ts +96 -0
- package/dist/src/components/datepicker/controllers/keyboard.controller.js +246 -0
- package/dist/src/components/datepicker/controllers/month-year-dropdown.controller.d.ts +48 -0
- package/dist/src/components/datepicker/controllers/month-year-dropdown.controller.js +92 -0
- package/dist/src/components/datepicker/controllers/positioning.controller.d.ts +82 -0
- package/dist/src/components/datepicker/controllers/positioning.controller.js +247 -0
- package/dist/src/components/datepicker/controllers/selection.controller.d.ts +92 -0
- package/dist/src/components/datepicker/controllers/selection.controller.js +267 -0
- package/dist/src/components/datepicker/interfaces/base-controller.interface.d.ts +40 -0
- package/dist/src/components/datepicker/interfaces/base-controller.interface.js +7 -0
- package/dist/src/components/datepicker/interfaces/datepicker-controllers.interface.d.ts +112 -0
- package/dist/src/components/datepicker/interfaces/datepicker-controllers.interface.js +7 -0
- package/dist/src/components/datepicker/interfaces/index.d.ts +8 -0
- package/dist/src/components/datepicker/interfaces/index.js +7 -0
- package/dist/src/components/datepicker/templates/days.template.d.ts +4 -0
- package/dist/src/components/datepicker/templates/days.template.js +40 -0
- package/dist/src/components/datepicker/templates/dropdown.template.d.ts +10 -0
- package/dist/src/components/datepicker/templates/dropdown.template.js +50 -0
- package/dist/src/components/datepicker/templates/headers.template.d.ts +2 -0
- package/dist/src/components/datepicker/templates/headers.template.js +5 -0
- package/dist/src/components/datepicker/templates/months.template.d.ts +6 -0
- package/dist/src/components/datepicker/templates/months.template.js +10 -0
- package/dist/src/components/datepicker/templates/years.template.d.ts +6 -0
- package/dist/src/components/datepicker/templates/years.template.js +11 -0
- package/dist/src/components/datepicker/test/datepicker_test.d.ts +2 -0
- package/dist/src/components/datepicker/test/datepicker_test.js +134 -0
- package/dist/src/components/datepicker/utils/day.helper.d.ts +5 -0
- package/dist/src/components/datepicker/utils/day.helper.js +53 -0
- package/dist/src/components/datepicker/utils/formatter.d.ts +2 -0
- package/dist/src/components/datepicker/utils/formatter.js +9 -0
- package/dist/src/components/datepicker/utils/index.d.ts +11 -0
- package/dist/src/components/datepicker/utils/index.js +11 -0
- package/dist/src/components/datepicker/utils/locale.helper.d.ts +144 -0
- package/dist/src/components/datepicker/utils/locale.helper.js +151 -0
- package/dist/src/components/datepicker/utils/month.helper.d.ts +3 -0
- package/dist/src/components/datepicker/utils/month.helper.js +24 -0
- package/dist/src/components/datepicker/utils/string.helper.d.ts +2 -0
- package/dist/src/components/datepicker/utils/string.helper.js +4 -0
- package/dist/src/components/document/demo/document-demo.d.ts +12 -0
- package/dist/src/components/document/demo/document-demo.js +40 -0
- package/dist/src/components/dropdown/controllers/base.controller.d.ts +18 -0
- package/dist/src/components/dropdown/controllers/base.controller.js +22 -0
- package/dist/src/components/dropdown/controllers/dropdown.controller.d.ts +50 -0
- package/dist/src/components/dropdown/controllers/dropdown.controller.js +408 -0
- package/dist/src/components/dropdown/controllers/index.d.ts +3 -0
- package/dist/src/components/dropdown/controllers/index.js +3 -0
- package/dist/src/components/dropdown/interfaces/controller-interfaces.d.ts +79 -0
- package/dist/src/components/dropdown/interfaces/controller-interfaces.js +2 -0
- package/dist/src/components/dropdown/interfaces/index.d.ts +2 -0
- package/dist/src/components/dropdown/interfaces/index.js +2 -0
- package/dist/src/components/dropdown/templates/nr-dropdown-item.d.ts +12 -0
- package/dist/src/components/dropdown/templates/nr-dropdown-item.js +55 -0
- package/dist/src/components/dropdown/templates/nr-dropdown-item.style.d.ts +2 -0
- package/dist/src/components/dropdown/templates/nr-dropdown-item.style.js +34 -0
- package/dist/src/components/dropdown/templates/nr-dropdown-menu.d.ts +18 -0
- package/dist/src/components/dropdown/templates/nr-dropdown-menu.js +70 -0
- package/dist/src/components/dropdown/templates/nr-dropdown-menu.style.d.ts +2 -0
- package/dist/src/components/dropdown/templates/nr-dropdown-menu.style.js +49 -0
- package/dist/src/components/file-upload/demo/file-upload-demo.d.ts +18 -0
- package/dist/src/components/file-upload/demo/file-upload-demo.js +156 -0
- package/dist/src/components/form/controllers/submission.controller.d.ts +60 -0
- package/dist/src/components/form/controllers/submission.controller.js +220 -0
- package/dist/src/components/form/controllers/validation.controller.d.ts +87 -0
- package/dist/src/components/form/controllers/validation.controller.js +236 -0
- package/dist/src/components/form/interfaces/validation.interface.d.ts +118 -0
- package/dist/src/components/form/interfaces/validation.interface.js +7 -0
- package/dist/src/components/icon/mixins/clickable-mixin.d.ts +57 -0
- package/dist/src/components/icon/mixins/clickable-mixin.js +111 -0
- package/dist/src/components/icon/mixins/index.d.ts +7 -0
- package/dist/src/components/icon/mixins/index.js +7 -0
- package/dist/src/components/iconpicker/controllers/event.controller.d.ts +38 -0
- package/dist/src/components/iconpicker/controllers/event.controller.js +68 -0
- package/dist/src/components/iconpicker/controllers/index.d.ts +9 -0
- package/dist/src/components/iconpicker/controllers/index.js +9 -0
- package/dist/src/components/iconpicker/controllers/search.controller.d.ts +34 -0
- package/dist/src/components/iconpicker/controllers/search.controller.js +55 -0
- package/dist/src/components/iconpicker/controllers/selection.controller.d.ts +27 -0
- package/dist/src/components/iconpicker/controllers/selection.controller.js +39 -0
- package/dist/src/components/iconpicker/interfaces/icon-picker.interface.d.ts +13 -0
- package/dist/src/components/iconpicker/interfaces/icon-picker.interface.js +7 -0
- package/dist/src/components/iconpicker/interfaces/index.d.ts +7 -0
- package/dist/src/components/iconpicker/interfaces/index.js +7 -0
- package/dist/src/components/iconpicker/utils/icon-filter.utils.d.ts +29 -0
- package/dist/src/components/iconpicker/utils/icon-filter.utils.js +96 -0
- package/dist/src/components/iconpicker/utils/icon-loader.utils.d.ts +39 -0
- package/dist/src/components/iconpicker/utils/icon-loader.utils.js +115 -0
- package/dist/src/components/iconpicker/utils/index.d.ts +8 -0
- package/dist/src/components/iconpicker/utils/index.js +8 -0
- package/dist/src/components/iconpicker/utils/lucide-icons.d.ts +10 -0
- package/dist/src/components/iconpicker/utils/lucide-icons.js +1624 -0
- package/dist/src/components/input/controllers/base.controller.d.ts +35 -0
- package/dist/src/components/input/controllers/base.controller.js +13 -0
- package/dist/src/components/input/controllers/event.controller.d.ts +111 -0
- package/dist/src/components/input/controllers/event.controller.js +355 -0
- package/dist/src/components/input/controllers/index.d.ts +14 -0
- package/dist/src/components/input/controllers/index.js +10 -0
- package/dist/src/components/input/controllers/state.controller.d.ts +153 -0
- package/dist/src/components/input/controllers/state.controller.js +245 -0
- package/dist/src/components/input/controllers/validation.controller.d.ts +205 -0
- package/dist/src/components/input/controllers/validation.controller.js +698 -0
- package/dist/src/components/input/mixins/focus-mixin.d.ts +60 -0
- package/dist/src/components/input/mixins/focus-mixin.js +65 -0
- package/dist/src/components/input/mixins/index.d.ts +12 -0
- package/dist/src/components/input/mixins/index.js +9 -0
- package/dist/src/components/input/mixins/number-mixin.d.ts +51 -0
- package/dist/src/components/input/mixins/number-mixin.js +128 -0
- package/dist/src/components/input/mixins/selection-mixin.d.ts +57 -0
- package/dist/src/components/input/mixins/selection-mixin.js +80 -0
- package/dist/src/components/input/test/nr-input_test.d.ts +2 -0
- package/dist/src/components/input/test/nr-input_test.js +159 -0
- package/dist/src/components/input/utils/index.d.ts +8 -0
- package/dist/src/components/input/utils/index.js +8 -0
- package/dist/src/components/input/utils/input-renderers.d.ts +54 -0
- package/dist/src/components/input/utils/input-renderers.js +178 -0
- package/dist/src/components/input/utils/input-validation.utils.d.ts +26 -0
- package/dist/src/components/input/utils/input-validation.utils.js +103 -0
- package/dist/src/components/menu/controllers/accessibility.controller.d.ts +86 -0
- package/dist/src/components/menu/controllers/accessibility.controller.js +235 -0
- package/dist/src/components/menu/controllers/base.controller.d.ts +41 -0
- package/dist/src/components/menu/controllers/base.controller.js +61 -0
- package/dist/src/components/menu/controllers/index.d.ts +10 -0
- package/dist/src/components/menu/controllers/index.js +10 -0
- package/dist/src/components/menu/controllers/keyboard.controller.d.ts +84 -0
- package/dist/src/components/menu/controllers/keyboard.controller.js +328 -0
- package/dist/src/components/menu/controllers/state.controller.d.ts +106 -0
- package/dist/src/components/menu/controllers/state.controller.js +249 -0
- package/dist/src/components/menu/interfaces/controller.interface.d.ts +51 -0
- package/dist/src/components/menu/interfaces/controller.interface.js +7 -0
- package/dist/src/components/menu/interfaces/index.d.ts +7 -0
- package/dist/src/components/menu/interfaces/index.js +7 -0
- package/dist/src/components/modal/controllers/index.d.ts +8 -0
- package/dist/src/components/modal/controllers/index.js +8 -0
- package/dist/src/components/modal/controllers/modal-drag-controller.d.ts +39 -0
- package/dist/src/components/modal/controllers/modal-drag-controller.js +108 -0
- package/dist/src/components/modal/controllers/modal-keyboard-controller.d.ts +36 -0
- package/dist/src/components/modal/controllers/modal-keyboard-controller.js +128 -0
- package/dist/src/components/panel/controllers/index.d.ts +8 -0
- package/dist/src/components/panel/controllers/index.js +8 -0
- package/dist/src/components/panel/controllers/panel-drag-controller.d.ts +40 -0
- package/dist/src/components/panel/controllers/panel-drag-controller.js +118 -0
- package/dist/src/components/panel/controllers/panel-resize-controller.d.ts +37 -0
- package/dist/src/components/panel/controllers/panel-resize-controller.js +124 -0
- package/dist/src/components/presence/bundle.js +555 -0
- package/dist/src/components/presence/bundle.js.gz +0 -0
- package/dist/src/components/presence/index.d.ts +10 -0
- package/dist/src/components/presence/index.js +10 -0
- package/dist/src/components/presence/presence-avatars.component.d.ts +40 -0
- package/dist/src/components/presence/presence-avatars.component.js +83 -0
- package/dist/src/components/presence/presence-avatars.style.d.ts +7 -0
- package/dist/src/components/presence/presence-avatars.style.js +105 -0
- package/dist/src/components/presence/presence-chat.component.d.ts +55 -0
- package/dist/src/components/presence/presence-chat.component.js +238 -0
- package/dist/src/components/presence/presence-chat.style.d.ts +7 -0
- package/dist/src/components/presence/presence-chat.style.js +248 -0
- package/dist/src/components/presence/presence.component.d.ts +95 -0
- package/dist/src/components/presence/presence.component.js +510 -0
- package/dist/src/components/presence/presence.style.d.ts +7 -0
- package/dist/src/components/presence/presence.style.js +12 -0
- package/dist/src/components/presence/presence.types.d.ts +33 -0
- package/dist/src/components/presence/presence.types.js +7 -0
- package/dist/src/components/presence/react.d.ts +24 -0
- package/dist/src/components/presence/react.js +41 -0
- package/dist/src/components/radio-group/controllers/focus.controller.d.ts +98 -0
- package/dist/src/components/radio-group/controllers/focus.controller.js +216 -0
- package/dist/src/components/radio-group/controllers/group.controller.d.ts +140 -0
- package/dist/src/components/radio-group/controllers/group.controller.js +179 -0
- package/dist/src/components/radio-group/controllers/index.d.ts +11 -0
- package/dist/src/components/radio-group/controllers/index.js +11 -0
- package/dist/src/components/radio-group/controllers/keyboard.controller.d.ts +24 -0
- package/dist/src/components/radio-group/controllers/keyboard.controller.js +93 -0
- package/dist/src/components/radio-group/controllers/ripple.controller.d.ts +59 -0
- package/dist/src/components/radio-group/controllers/ripple.controller.js +208 -0
- package/dist/src/components/radio-group/controllers/validation.controller.d.ts +73 -0
- package/dist/src/components/radio-group/controllers/validation.controller.js +108 -0
- package/dist/src/components/radio-group/interfaces/base-controller.interface.d.ts +75 -0
- package/dist/src/components/radio-group/interfaces/base-controller.interface.js +7 -0
- package/dist/src/components/radio-group/interfaces/focus-controller.interface.d.ts +40 -0
- package/dist/src/components/radio-group/interfaces/focus-controller.interface.js +7 -0
- package/dist/src/components/radio-group/interfaces/index.d.ts +11 -0
- package/dist/src/components/radio-group/interfaces/index.js +7 -0
- package/dist/src/components/radio-group/interfaces/ripple-controller.interface.d.ts +31 -0
- package/dist/src/components/radio-group/interfaces/ripple-controller.interface.js +7 -0
- package/dist/src/components/radio-group/interfaces/selection-controller.interface.d.ts +45 -0
- package/dist/src/components/radio-group/interfaces/selection-controller.interface.js +7 -0
- package/dist/src/components/radio-group/interfaces/validation-controller.interface.d.ts +48 -0
- package/dist/src/components/radio-group/interfaces/validation-controller.interface.js +7 -0
- package/dist/src/components/radio-group/test/radio_test.d.ts +2 -0
- package/dist/src/components/radio-group/test/radio_test.js +79 -0
- package/dist/src/components/select/controllers/base.controller.d.ts +10 -0
- package/dist/src/components/select/controllers/base.controller.js +8 -0
- package/dist/src/components/select/controllers/dropdown.controller.d.ts +76 -0
- package/dist/src/components/select/controllers/dropdown.controller.js +281 -0
- package/dist/src/components/select/controllers/event.controller.d.ts +54 -0
- package/dist/src/components/select/controllers/event.controller.js +113 -0
- package/dist/src/components/select/controllers/focus.controller.d.ts +79 -0
- package/dist/src/components/select/controllers/focus.controller.js +230 -0
- package/dist/src/components/select/controllers/index.d.ts +9 -0
- package/dist/src/components/select/controllers/index.js +9 -0
- package/dist/src/components/select/controllers/keyboard.controller.d.ts +75 -0
- package/dist/src/components/select/controllers/keyboard.controller.js +369 -0
- package/dist/src/components/select/controllers/search.controller.d.ts +71 -0
- package/dist/src/components/select/controllers/search.controller.js +167 -0
- package/dist/src/components/select/controllers/selection.controller.d.ts +67 -0
- package/dist/src/components/select/controllers/selection.controller.js +217 -0
- package/dist/src/components/select/controllers/validation.controller.d.ts +66 -0
- package/dist/src/components/select/controllers/validation.controller.js +189 -0
- package/dist/src/components/select/interfaces/base-controller.interface.d.ts +147 -0
- package/dist/src/components/select/interfaces/base-controller.interface.js +2 -0
- package/dist/src/components/select/interfaces/controller-interfaces.d.ts +94 -0
- package/dist/src/components/select/interfaces/controller-interfaces.js +11 -0
- package/dist/src/components/select/interfaces/index.d.ts +3 -0
- package/dist/src/components/select/interfaces/index.js +3 -0
- package/dist/src/components/slider-input/utils/debounce.d.ts +2 -0
- package/dist/src/components/slider-input/utils/debounce.js +8 -0
- package/dist/src/components/slider-input/utils/index.d.ts +2 -0
- package/dist/src/components/slider-input/utils/index.js +2 -0
- package/dist/src/components/table/controllers/base.controller.d.ts +15 -0
- package/dist/src/components/table/controllers/base.controller.js +13 -0
- package/dist/src/components/table/controllers/filter.controller.d.ts +48 -0
- package/dist/src/components/table/controllers/filter.controller.js +152 -0
- package/dist/src/components/table/controllers/index.d.ts +11 -0
- package/dist/src/components/table/controllers/index.js +11 -0
- package/dist/src/components/table/controllers/pagination.controller.d.ts +36 -0
- package/dist/src/components/table/controllers/pagination.controller.js +110 -0
- package/dist/src/components/table/controllers/selection.controller.d.ts +40 -0
- package/dist/src/components/table/controllers/selection.controller.js +120 -0
- package/dist/src/components/table/controllers/sort.controller.d.ts +32 -0
- package/dist/src/components/table/controllers/sort.controller.js +102 -0
- package/dist/src/components/table/interfaces/index.d.ts +7 -0
- package/dist/src/components/table/interfaces/index.js +7 -0
- package/dist/src/components/table/interfaces/table-host.interface.d.ts +48 -0
- package/dist/src/components/table/interfaces/table-host.interface.js +7 -0
- package/dist/src/components/table/templates/actions.template.d.ts +14 -0
- package/dist/src/components/table/templates/actions.template.js +15 -0
- package/dist/src/components/table/templates/column-filter.template.d.ts +24 -0
- package/dist/src/components/table/templates/column-filter.template.js +76 -0
- package/dist/src/components/table/templates/content.template.d.ts +37 -0
- package/dist/src/components/table/templates/content.template.js +208 -0
- package/dist/src/components/table/templates/empty.template.d.ts +8 -0
- package/dist/src/components/table/templates/empty.template.js +47 -0
- package/dist/src/components/table/templates/filter.template.d.ts +14 -0
- package/dist/src/components/table/templates/filter.template.js +28 -0
- package/dist/src/components/table/templates/index.d.ts +8 -0
- package/dist/src/components/table/templates/index.js +8 -0
- package/dist/src/components/table/templates/loading.template.d.ts +21 -0
- package/dist/src/components/table/templates/loading.template.js +51 -0
- package/dist/src/components/table/templates/pagination.template.d.ts +24 -0
- package/dist/src/components/table/templates/pagination.template.js +52 -0
- package/dist/src/components/tabs/controllers/base.controller.d.ts +49 -0
- package/dist/src/components/tabs/controllers/base.controller.js +26 -0
- package/dist/src/components/tabs/controllers/dragdrop.controller.d.ts +84 -0
- package/dist/src/components/tabs/controllers/dragdrop.controller.js +202 -0
- package/dist/src/components/tabs/controllers/editable.controller.d.ts +100 -0
- package/dist/src/components/tabs/controllers/editable.controller.js +242 -0
- package/dist/src/components/tabs/controllers/event.controller.d.ts +104 -0
- package/dist/src/components/tabs/controllers/event.controller.js +239 -0
- package/dist/src/components/tabs/controllers/index.d.ts +12 -0
- package/dist/src/components/tabs/controllers/index.js +18 -0
- package/dist/src/components/tabs/controllers/keyboard.controller.d.ts +85 -0
- package/dist/src/components/tabs/controllers/keyboard.controller.js +233 -0
- package/dist/src/components/tabs/controllers/popout.controller.d.ts +96 -0
- package/dist/src/components/tabs/controllers/popout.controller.js +441 -0
- package/dist/src/components/textarea/controllers/base.controller.d.ts +43 -0
- package/dist/src/components/textarea/controllers/base.controller.js +19 -0
- package/dist/src/components/textarea/controllers/event.controller.d.ts +169 -0
- package/dist/src/components/textarea/controllers/event.controller.js +408 -0
- package/dist/src/components/textarea/controllers/index.d.ts +9 -0
- package/dist/src/components/textarea/controllers/index.js +9 -0
- package/dist/src/components/textarea/controllers/validation.controller.d.ts +133 -0
- package/dist/src/components/textarea/controllers/validation.controller.js +315 -0
- package/dist/src/components/timepicker/controllers/formatting.controller.d.ts +93 -0
- package/dist/src/components/timepicker/controllers/formatting.controller.js +195 -0
- package/dist/src/components/timepicker/controllers/index.d.ts +9 -0
- package/dist/src/components/timepicker/controllers/index.js +9 -0
- package/dist/src/components/timepicker/controllers/selection.controller.d.ts +72 -0
- package/dist/src/components/timepicker/controllers/selection.controller.js +175 -0
- package/dist/src/components/timepicker/controllers/validation.controller.d.ts +88 -0
- package/dist/src/components/timepicker/controllers/validation.controller.js +200 -0
- package/dist/src/components/timepicker/interfaces/timepicker.interface.d.ts +103 -0
- package/dist/src/components/timepicker/interfaces/timepicker.interface.js +7 -0
- package/dist/src/components/timepicker/test/timepicker_test.d.ts +7 -0
- package/dist/src/components/timepicker/test/timepicker_test.js +218 -0
- package/dist/src/components/timepicker/utils/time.utils.d.ts +87 -0
- package/dist/src/components/timepicker/utils/time.utils.js +235 -0
- package/dist/src/components/toast/bundle.js +11 -9
- package/dist/src/components/toast/bundle.js.gz +0 -0
- package/dist/src/components/toast/controllers/base.controller.d.ts +20 -0
- package/dist/src/components/toast/controllers/base.controller.js +12 -0
- package/dist/src/components/toast/controllers/index.d.ts +8 -0
- package/dist/src/components/toast/controllers/index.js +7 -0
- package/dist/src/components/toast/toast.component.d.ts +8 -0
- package/dist/src/components/toast/toast.component.js +17 -7
- package/dist/src/components/tooltips/demo/tooltips-demo.d.ts +18 -0
- package/dist/src/components/tooltips/demo/tooltips-demo.js +132 -0
- package/dist/src/components/tooltips/test/tooltips_test.d.ts +2 -0
- package/dist/src/components/tooltips/test/tooltips_test.js +145 -0
- package/dist/src/components/video/bundle.js +13 -12
- package/dist/src/components/video/bundle.js.gz +0 -0
- package/dist/src/components/video/video.component.d.ts +15 -1
- package/dist/src/components/video/video.component.js +131 -3
- package/package.json +31 -10
- package/packages/common/dist/VERSIONS.md +1 -1
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Nuraly, Laabidi Aymen
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Controller that manages keyboard navigation for radio groups
|
|
8
|
+
* This controller ACTUALLY handles keyboard events instead of being a fake controller
|
|
9
|
+
*/
|
|
10
|
+
export class RadioKeyboardController {
|
|
11
|
+
constructor(host, groupController) {
|
|
12
|
+
this.groupController = groupController;
|
|
13
|
+
this.host = host;
|
|
14
|
+
this.boundKeyDownHandler = this.handleKeyDown.bind(this);
|
|
15
|
+
host.addController(this);
|
|
16
|
+
}
|
|
17
|
+
hostConnected() {
|
|
18
|
+
this.host.addEventListener('keydown', this.boundKeyDownHandler);
|
|
19
|
+
}
|
|
20
|
+
hostDisconnected() {
|
|
21
|
+
this.host.removeEventListener('keydown', this.boundKeyDownHandler);
|
|
22
|
+
}
|
|
23
|
+
handleKeyDown(event) {
|
|
24
|
+
const options = this.host.options;
|
|
25
|
+
if (!options || options.length === 0)
|
|
26
|
+
return;
|
|
27
|
+
const currentIndex = options.findIndex((option) => this.groupController.isOptionSelected(option));
|
|
28
|
+
switch (event.key) {
|
|
29
|
+
case 'ArrowDown':
|
|
30
|
+
case 'ArrowRight':
|
|
31
|
+
event.preventDefault();
|
|
32
|
+
this.selectNextOption(options, currentIndex);
|
|
33
|
+
break;
|
|
34
|
+
case 'ArrowUp':
|
|
35
|
+
case 'ArrowLeft':
|
|
36
|
+
event.preventDefault();
|
|
37
|
+
this.selectPreviousOption(options, currentIndex);
|
|
38
|
+
break;
|
|
39
|
+
case ' ':
|
|
40
|
+
case 'Enter':
|
|
41
|
+
event.preventDefault();
|
|
42
|
+
// If no option is selected, select the first non-disabled option
|
|
43
|
+
if (currentIndex === -1) {
|
|
44
|
+
this.selectFirstEnabledOption(options);
|
|
45
|
+
}
|
|
46
|
+
break;
|
|
47
|
+
case 'Home':
|
|
48
|
+
event.preventDefault();
|
|
49
|
+
this.selectFirstEnabledOption(options);
|
|
50
|
+
break;
|
|
51
|
+
case 'End':
|
|
52
|
+
event.preventDefault();
|
|
53
|
+
this.selectLastEnabledOption(options);
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
selectNextOption(options, currentIndex) {
|
|
58
|
+
const startIndex = currentIndex === -1 ? 0 : currentIndex + 1;
|
|
59
|
+
for (let i = 0; i < options.length; i++) {
|
|
60
|
+
const index = (startIndex + i) % options.length;
|
|
61
|
+
const option = options[index];
|
|
62
|
+
if (!this.groupController.isOptionDisabled(option)) {
|
|
63
|
+
this.groupController.selectOption(option);
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
selectPreviousOption(options, currentIndex) {
|
|
69
|
+
const startIndex = currentIndex === -1 ? options.length - 1 : currentIndex - 1;
|
|
70
|
+
for (let i = 0; i < options.length; i++) {
|
|
71
|
+
const index = (startIndex - i + options.length) % options.length;
|
|
72
|
+
const option = options[index];
|
|
73
|
+
if (!this.groupController.isOptionDisabled(option)) {
|
|
74
|
+
this.groupController.selectOption(option);
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
selectFirstEnabledOption(options) {
|
|
80
|
+
const firstEnabled = options.find((option) => !this.groupController.isOptionDisabled(option));
|
|
81
|
+
if (firstEnabled) {
|
|
82
|
+
this.groupController.selectOption(firstEnabled);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
selectLastEnabledOption(options) {
|
|
86
|
+
const enabledOptions = options.filter((option) => !this.groupController.isOptionDisabled(option));
|
|
87
|
+
const lastEnabled = enabledOptions[enabledOptions.length - 1];
|
|
88
|
+
if (lastEnabled) {
|
|
89
|
+
this.groupController.selectOption(lastEnabled);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=keyboard.controller.js.map
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Nuraly, Laabidi Aymen
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { ReactiveControllerHost } from 'lit';
|
|
7
|
+
import { RippleController } from '../interfaces/ripple-controller.interface.js';
|
|
8
|
+
/**
|
|
9
|
+
* Controller that manages ripple effects for radio interactions
|
|
10
|
+
* Implements performance optimizations with debouncing and throttling
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const controller = new RadioRippleController(hostElement);
|
|
15
|
+
* controller.addRippleEffect(clickEvent); // Throttled for performance
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare class RadioRippleController implements RippleController {
|
|
19
|
+
readonly host: ReactiveControllerHost;
|
|
20
|
+
private _rippleEnabled;
|
|
21
|
+
private boundClickHandler;
|
|
22
|
+
private activeRipples;
|
|
23
|
+
private ripplePool;
|
|
24
|
+
constructor(host: ReactiveControllerHost);
|
|
25
|
+
hostConnected(): void;
|
|
26
|
+
hostDisconnected(): void;
|
|
27
|
+
get rippleEnabled(): boolean;
|
|
28
|
+
set rippleEnabled(value: boolean);
|
|
29
|
+
private handleClick;
|
|
30
|
+
addRippleEffect(event: Event): void;
|
|
31
|
+
addRippleToElement(target: HTMLElement): void;
|
|
32
|
+
private addButtonRippleEffect;
|
|
33
|
+
private createRippleElement;
|
|
34
|
+
private parseDuration;
|
|
35
|
+
triggerRipple(optionValue?: string): void;
|
|
36
|
+
disableRipple(): void;
|
|
37
|
+
enableRipple(): void;
|
|
38
|
+
/**
|
|
39
|
+
* Clear all active ripple effects for performance
|
|
40
|
+
* Implements object pooling for memory efficiency
|
|
41
|
+
*/
|
|
42
|
+
clearRipples(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Get a ripple element from pool or create new one
|
|
45
|
+
* Improves performance by reusing DOM elements
|
|
46
|
+
*/
|
|
47
|
+
private getRippleElement;
|
|
48
|
+
/**
|
|
49
|
+
* Add ripple effect to a specific element (interface method)
|
|
50
|
+
* @param element - The element to add ripple effect to
|
|
51
|
+
*/
|
|
52
|
+
addRippleEffectToElement(element: HTMLElement): void;
|
|
53
|
+
/**
|
|
54
|
+
* Set whether ripple effects are enabled (interface method)
|
|
55
|
+
* @param enabled - True to enable ripple effects
|
|
56
|
+
*/
|
|
57
|
+
setRippleEnabled(enabled: boolean): void;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=ripple.controller.d.ts.map
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Nuraly, Laabidi Aymen
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { throttle } from '@nuralyui/common/utils';
|
|
7
|
+
/**
|
|
8
|
+
* Controller that manages ripple effects for radio interactions
|
|
9
|
+
* Implements performance optimizations with debouncing and throttling
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const controller = new RadioRippleController(hostElement);
|
|
14
|
+
* controller.addRippleEffect(clickEvent); // Throttled for performance
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export class RadioRippleController {
|
|
18
|
+
constructor(host) {
|
|
19
|
+
this._rippleEnabled = true;
|
|
20
|
+
this.activeRipples = new Set();
|
|
21
|
+
this.ripplePool = []; // Object pooling for performance
|
|
22
|
+
this.host = host;
|
|
23
|
+
this.boundClickHandler = this.handleClick.bind(this);
|
|
24
|
+
host.addController(this);
|
|
25
|
+
// Create throttled version of addRippleEffect for performance (60fps)
|
|
26
|
+
const originalAddRippleEffect = this.addRippleEffect.bind(this);
|
|
27
|
+
this.addRippleEffect = throttle(originalAddRippleEffect, 16);
|
|
28
|
+
}
|
|
29
|
+
hostConnected() {
|
|
30
|
+
this.host.addEventListener('click', this.boundClickHandler);
|
|
31
|
+
}
|
|
32
|
+
hostDisconnected() {
|
|
33
|
+
this.host.removeEventListener('click', this.boundClickHandler);
|
|
34
|
+
}
|
|
35
|
+
// Getters and setters
|
|
36
|
+
get rippleEnabled() {
|
|
37
|
+
return this._rippleEnabled;
|
|
38
|
+
}
|
|
39
|
+
set rippleEnabled(value) {
|
|
40
|
+
this._rippleEnabled = value;
|
|
41
|
+
}
|
|
42
|
+
// Event handler
|
|
43
|
+
handleClick(event) {
|
|
44
|
+
if (!this._rippleEnabled)
|
|
45
|
+
return;
|
|
46
|
+
const target = event.target;
|
|
47
|
+
// Handle ripple for radio inputs
|
|
48
|
+
if (target && target.matches('input[type="radio"]')) {
|
|
49
|
+
this.addRippleToElement(target);
|
|
50
|
+
}
|
|
51
|
+
// Handle ripple for button-style radios (if needed)
|
|
52
|
+
if (target && target.matches('nr-button[role="radio"]')) {
|
|
53
|
+
this.addButtonRippleEffect(target);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// Public method for event-based ripple
|
|
57
|
+
addRippleEffect(event) {
|
|
58
|
+
const target = event.target;
|
|
59
|
+
if (target) {
|
|
60
|
+
this.addRippleToElement(target);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Add ripple effect to radio input element
|
|
64
|
+
addRippleToElement(target) {
|
|
65
|
+
// Remove any existing ripple animation
|
|
66
|
+
target.style.animation = 'none';
|
|
67
|
+
// Force reflow to ensure animation is cleared
|
|
68
|
+
target.getAnimations();
|
|
69
|
+
// Add ripple animation using CSS custom properties
|
|
70
|
+
const duration = getComputedStyle(target).getPropertyValue('--nuraly-radio-ripple-duration') ||
|
|
71
|
+
getComputedStyle(target).getPropertyValue('--nuraly-radio-local-ripple-duration') ||
|
|
72
|
+
'300ms';
|
|
73
|
+
target.style.animation = `radioRipple ${duration} ease-out`;
|
|
74
|
+
// Clean up animation after completion
|
|
75
|
+
const animationDuration = this.parseDuration(duration);
|
|
76
|
+
setTimeout(() => {
|
|
77
|
+
target.style.animation = '';
|
|
78
|
+
}, animationDuration);
|
|
79
|
+
}
|
|
80
|
+
// Add ripple effect to button-style radio
|
|
81
|
+
addButtonRippleEffect(target) {
|
|
82
|
+
// For button-style radios, we can trigger the button's own ripple effect
|
|
83
|
+
// or create a custom one
|
|
84
|
+
const rippleElement = this.createRippleElement(target);
|
|
85
|
+
if (rippleElement) {
|
|
86
|
+
target.appendChild(rippleElement);
|
|
87
|
+
// Remove ripple element after animation
|
|
88
|
+
setTimeout(() => {
|
|
89
|
+
if (rippleElement.parentNode) {
|
|
90
|
+
rippleElement.parentNode.removeChild(rippleElement);
|
|
91
|
+
}
|
|
92
|
+
}, 600);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Create ripple element for manual ripple effects (uses object pooling)
|
|
96
|
+
createRippleElement(container) {
|
|
97
|
+
const ripple = this.getRippleElement(container);
|
|
98
|
+
ripple.style.animation = 'radioRippleSpread 600ms ease-out';
|
|
99
|
+
return ripple;
|
|
100
|
+
}
|
|
101
|
+
// Parse CSS duration string to milliseconds
|
|
102
|
+
parseDuration(duration) {
|
|
103
|
+
const match = duration.match(/^([\d.]+)(s|ms)$/);
|
|
104
|
+
if (!match)
|
|
105
|
+
return 300;
|
|
106
|
+
const value = Number.parseFloat(match[1]);
|
|
107
|
+
const unit = match[2];
|
|
108
|
+
return unit === 's' ? value * 1000 : value;
|
|
109
|
+
}
|
|
110
|
+
// Programmatic ripple trigger
|
|
111
|
+
triggerRipple(optionValue) {
|
|
112
|
+
if (!this._rippleEnabled)
|
|
113
|
+
return;
|
|
114
|
+
const host = this.host;
|
|
115
|
+
const shadowRoot = host.shadowRoot;
|
|
116
|
+
if (!shadowRoot)
|
|
117
|
+
return;
|
|
118
|
+
let target = null;
|
|
119
|
+
if (optionValue) {
|
|
120
|
+
// Find specific radio input by value
|
|
121
|
+
target = shadowRoot.querySelector(`input[type="radio"][value="${optionValue}"]`);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
// Find selected radio input
|
|
125
|
+
target = shadowRoot.querySelector('input[type="radio"]:checked');
|
|
126
|
+
}
|
|
127
|
+
if (target) {
|
|
128
|
+
this.addRippleToElement(target);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// Disable ripple effects
|
|
132
|
+
disableRipple() {
|
|
133
|
+
this._rippleEnabled = false;
|
|
134
|
+
}
|
|
135
|
+
// Enable ripple effects
|
|
136
|
+
enableRipple() {
|
|
137
|
+
this._rippleEnabled = true;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Clear all active ripple effects for performance
|
|
141
|
+
* Implements object pooling for memory efficiency
|
|
142
|
+
*/
|
|
143
|
+
clearRipples() {
|
|
144
|
+
// Clear all active ripples and return elements to pool
|
|
145
|
+
this.activeRipples.forEach(ripple => {
|
|
146
|
+
if (ripple.parentNode) {
|
|
147
|
+
ripple.parentNode.removeChild(ripple);
|
|
148
|
+
}
|
|
149
|
+
// Return to pool for reuse
|
|
150
|
+
if (this.ripplePool.length < 10) { // Limit pool size
|
|
151
|
+
ripple.style.animation = '';
|
|
152
|
+
ripple.style.transform = 'scale(0)';
|
|
153
|
+
this.ripplePool.push(ripple);
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
this.activeRipples.clear();
|
|
157
|
+
// Clear any CSS animations on radio inputs
|
|
158
|
+
const host = this.host;
|
|
159
|
+
const shadowRoot = host.shadowRoot;
|
|
160
|
+
if (shadowRoot) {
|
|
161
|
+
const radioInputs = shadowRoot.querySelectorAll('input[type="radio"]');
|
|
162
|
+
radioInputs.forEach((input) => {
|
|
163
|
+
input.style.animation = '';
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Get a ripple element from pool or create new one
|
|
169
|
+
* Improves performance by reusing DOM elements
|
|
170
|
+
*/
|
|
171
|
+
getRippleElement(container) {
|
|
172
|
+
let ripple = this.ripplePool.pop();
|
|
173
|
+
if (!ripple) {
|
|
174
|
+
ripple = document.createElement('span');
|
|
175
|
+
ripple.className = 'radio-ripple';
|
|
176
|
+
ripple.style.position = 'absolute';
|
|
177
|
+
ripple.style.borderRadius = '50%';
|
|
178
|
+
ripple.style.background = 'currentColor';
|
|
179
|
+
ripple.style.opacity = '0.1';
|
|
180
|
+
ripple.style.pointerEvents = 'none';
|
|
181
|
+
}
|
|
182
|
+
// Calculate ripple size and position
|
|
183
|
+
const rect = container.getBoundingClientRect();
|
|
184
|
+
const size = Math.max(rect.width, rect.height);
|
|
185
|
+
ripple.style.width = `${size}px`;
|
|
186
|
+
ripple.style.height = `${size}px`;
|
|
187
|
+
ripple.style.left = `${-size / 2}px`;
|
|
188
|
+
ripple.style.top = `${-size / 2}px`;
|
|
189
|
+
ripple.style.transform = 'scale(0)';
|
|
190
|
+
this.activeRipples.add(ripple);
|
|
191
|
+
return ripple;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Add ripple effect to a specific element (interface method)
|
|
195
|
+
* @param element - The element to add ripple effect to
|
|
196
|
+
*/
|
|
197
|
+
addRippleEffectToElement(element) {
|
|
198
|
+
this.addRippleToElement(element);
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Set whether ripple effects are enabled (interface method)
|
|
202
|
+
* @param enabled - True to enable ripple effects
|
|
203
|
+
*/
|
|
204
|
+
setRippleEnabled(enabled) {
|
|
205
|
+
this._rippleEnabled = enabled;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=ripple.controller.js.map
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Nuraly, Laabidi Aymen
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { ReactiveControllerHost } from 'lit';
|
|
7
|
+
import { BaseValidationController } from '@nuralyui/common/controllers';
|
|
8
|
+
import { ValidationController } from '../interfaces/validation-controller.interface.js';
|
|
9
|
+
/**
|
|
10
|
+
* Host interface for radio group validation
|
|
11
|
+
*/
|
|
12
|
+
interface RadioGroupValidationHost extends ReactiveControllerHost {
|
|
13
|
+
required: boolean;
|
|
14
|
+
value: string;
|
|
15
|
+
name: string;
|
|
16
|
+
requestUpdate(): void;
|
|
17
|
+
dispatchEvent(event: Event): boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Controller that manages validation logic and form integration for radio groups
|
|
21
|
+
* Implements HTML5 form validation patterns with custom validation support
|
|
22
|
+
*
|
|
23
|
+
* Features:
|
|
24
|
+
* - Required field validation
|
|
25
|
+
* - Custom validation message support
|
|
26
|
+
* - Form integration with native validation API
|
|
27
|
+
* - Real-time validation state tracking
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const controller = new RadioValidationController(hostElement);
|
|
32
|
+
* const isValid = controller.validate(); // Validate current state
|
|
33
|
+
* console.log(controller.validationMessage); // Get validation error
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare class RadioValidationController extends BaseValidationController<RadioGroupValidationHost> implements ValidationController {
|
|
37
|
+
/**
|
|
38
|
+
* Validates the current radio group state
|
|
39
|
+
* Checks required field constraints and custom validation rules
|
|
40
|
+
*
|
|
41
|
+
* @returns True if validation passes, false otherwise
|
|
42
|
+
* @fires invalid - When validation fails (for form integration)
|
|
43
|
+
*/
|
|
44
|
+
validate(): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Set a custom validation message
|
|
47
|
+
*/
|
|
48
|
+
setCustomValidity(message: string): void;
|
|
49
|
+
/**
|
|
50
|
+
* Get form data for form submission
|
|
51
|
+
*/
|
|
52
|
+
getFormData(): {
|
|
53
|
+
[key: string]: string;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Report validation state (similar to native form elements)
|
|
57
|
+
*/
|
|
58
|
+
reportValidity(): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Form reset handler
|
|
61
|
+
*/
|
|
62
|
+
reset(): void;
|
|
63
|
+
/**
|
|
64
|
+
* Get FormData object for native form submission
|
|
65
|
+
*/
|
|
66
|
+
getFormDataObject(): FormData | null;
|
|
67
|
+
/**
|
|
68
|
+
* Validate on value change
|
|
69
|
+
*/
|
|
70
|
+
validateOnChange(): void;
|
|
71
|
+
}
|
|
72
|
+
export {};
|
|
73
|
+
//# sourceMappingURL=validation.controller.d.ts.map
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Nuraly, Laabidi Aymen
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { BaseValidationController } from '@nuralyui/common/controllers';
|
|
7
|
+
/**
|
|
8
|
+
* Controller that manages validation logic and form integration for radio groups
|
|
9
|
+
* Implements HTML5 form validation patterns with custom validation support
|
|
10
|
+
*
|
|
11
|
+
* Features:
|
|
12
|
+
* - Required field validation
|
|
13
|
+
* - Custom validation message support
|
|
14
|
+
* - Form integration with native validation API
|
|
15
|
+
* - Real-time validation state tracking
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const controller = new RadioValidationController(hostElement);
|
|
20
|
+
* const isValid = controller.validate(); // Validate current state
|
|
21
|
+
* console.log(controller.validationMessage); // Get validation error
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export class RadioValidationController extends BaseValidationController {
|
|
25
|
+
/**
|
|
26
|
+
* Validates the current radio group state
|
|
27
|
+
* Checks required field constraints and custom validation rules
|
|
28
|
+
*
|
|
29
|
+
* @returns True if validation passes, false otherwise
|
|
30
|
+
* @fires invalid - When validation fails (for form integration)
|
|
31
|
+
*/
|
|
32
|
+
validate() {
|
|
33
|
+
const isRequired = this.host.required;
|
|
34
|
+
const selectedValue = this.host.value;
|
|
35
|
+
if (isRequired && !selectedValue) {
|
|
36
|
+
this._isValid = false;
|
|
37
|
+
this._validationMessage = 'Please select an option';
|
|
38
|
+
this.requestUpdate();
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
this._isValid = true;
|
|
42
|
+
this._validationMessage = '';
|
|
43
|
+
this.requestUpdate();
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Set a custom validation message
|
|
48
|
+
*/
|
|
49
|
+
setCustomValidity(message) {
|
|
50
|
+
this._isValid = !message;
|
|
51
|
+
this._validationMessage = message;
|
|
52
|
+
this.requestUpdate();
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get form data for form submission
|
|
56
|
+
*/
|
|
57
|
+
getFormData() {
|
|
58
|
+
const name = this.host.name;
|
|
59
|
+
const value = this.host.value;
|
|
60
|
+
return name ? { [name]: value } : {};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Report validation state (similar to native form elements)
|
|
64
|
+
*/
|
|
65
|
+
reportValidity() {
|
|
66
|
+
const isValid = this.validate();
|
|
67
|
+
if (!isValid) {
|
|
68
|
+
// Dispatch invalid event
|
|
69
|
+
const invalidEvent = new CustomEvent('invalid', {
|
|
70
|
+
detail: {
|
|
71
|
+
message: this._validationMessage
|
|
72
|
+
},
|
|
73
|
+
bubbles: true,
|
|
74
|
+
composed: true
|
|
75
|
+
});
|
|
76
|
+
this._host.dispatchEvent(invalidEvent);
|
|
77
|
+
}
|
|
78
|
+
return isValid;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Form reset handler
|
|
82
|
+
*/
|
|
83
|
+
reset() {
|
|
84
|
+
this.clearValidation();
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get FormData object for native form submission
|
|
88
|
+
*/
|
|
89
|
+
getFormDataObject() {
|
|
90
|
+
const name = this.host.name;
|
|
91
|
+
const value = this.host.value;
|
|
92
|
+
if (!name || !value)
|
|
93
|
+
return null;
|
|
94
|
+
const formData = new FormData();
|
|
95
|
+
formData.append(name, value);
|
|
96
|
+
return formData;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Validate on value change
|
|
100
|
+
*/
|
|
101
|
+
validateOnChange() {
|
|
102
|
+
// Auto-validate when value changes if validation was previously invalid
|
|
103
|
+
if (!this._isValid) {
|
|
104
|
+
this.validate();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=validation.controller.js.map
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Nuraly, Laabidi Aymen
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { ReactiveController } from 'lit';
|
|
7
|
+
/**
|
|
8
|
+
* Base interface that all radio controllers must implement
|
|
9
|
+
* Extends Lit's ReactiveController with common functionality
|
|
10
|
+
*/
|
|
11
|
+
export interface RadioBaseController extends ReactiveController {
|
|
12
|
+
/**
|
|
13
|
+
* Called when the host element is connected to the DOM
|
|
14
|
+
* Used for setting up event listeners, observers, etc.
|
|
15
|
+
*/
|
|
16
|
+
hostConnected(): void;
|
|
17
|
+
/**
|
|
18
|
+
* Called when the host element is disconnected from the DOM
|
|
19
|
+
* Used for cleanup of event listeners, observers, etc.
|
|
20
|
+
*/
|
|
21
|
+
hostDisconnected(): void;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Error handling interface for controllers
|
|
25
|
+
*/
|
|
26
|
+
export interface ErrorHandler {
|
|
27
|
+
/**
|
|
28
|
+
* Handle errors that occur within the controller
|
|
29
|
+
* @param operation - The operation that failed
|
|
30
|
+
* @param error - The error that occurred
|
|
31
|
+
*/
|
|
32
|
+
handleError(operation: string, error: Error): void;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Interface representing the radio component host element that extends ReactiveControllerHost
|
|
36
|
+
*/
|
|
37
|
+
export interface RadioHost {
|
|
38
|
+
/**
|
|
39
|
+
* The radio button options
|
|
40
|
+
*/
|
|
41
|
+
options: any[];
|
|
42
|
+
/**
|
|
43
|
+
* The currently selected value
|
|
44
|
+
*/
|
|
45
|
+
value: string;
|
|
46
|
+
/**
|
|
47
|
+
* The default value to select initially
|
|
48
|
+
*/
|
|
49
|
+
defaultValue: string;
|
|
50
|
+
/**
|
|
51
|
+
* The name attribute for form submission
|
|
52
|
+
*/
|
|
53
|
+
name: string;
|
|
54
|
+
/**
|
|
55
|
+
* Whether the radio group is required
|
|
56
|
+
*/
|
|
57
|
+
required: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Whether the radio group is disabled
|
|
60
|
+
*/
|
|
61
|
+
disabled: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Request an update of the component
|
|
64
|
+
*/
|
|
65
|
+
requestUpdate(): void;
|
|
66
|
+
/**
|
|
67
|
+
* Dispatch an event from the component
|
|
68
|
+
*/
|
|
69
|
+
dispatchEvent(event: Event): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Add a reactive controller to the host
|
|
72
|
+
*/
|
|
73
|
+
addController(controller: ReactiveController): void;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=base-controller.interface.d.ts.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Nuraly, Laabidi Aymen
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { RadioBaseController } from './base-controller.interface.js';
|
|
7
|
+
/**
|
|
8
|
+
* Interface for controllers that handle keyboard navigation
|
|
9
|
+
*/
|
|
10
|
+
export interface KeyboardController extends RadioBaseController {
|
|
11
|
+
/**
|
|
12
|
+
* Handle keyboard events for radio group navigation
|
|
13
|
+
* @param event - The keyboard event to handle
|
|
14
|
+
*/
|
|
15
|
+
handleKeyDown(event: KeyboardEvent): void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Interface for controllers that handle focus management
|
|
19
|
+
*/
|
|
20
|
+
export interface FocusController extends RadioBaseController {
|
|
21
|
+
/**
|
|
22
|
+
* Set focus to a specific option by index
|
|
23
|
+
* @param index - The index of the option to focus
|
|
24
|
+
*/
|
|
25
|
+
setFocusedOption(index: number): void;
|
|
26
|
+
/**
|
|
27
|
+
* Focus the radio group (usually the selected or first option)
|
|
28
|
+
*/
|
|
29
|
+
focus(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Remove focus from the radio group
|
|
32
|
+
*/
|
|
33
|
+
blur(): void;
|
|
34
|
+
/**
|
|
35
|
+
* Get the currently focused option index
|
|
36
|
+
* @returns The focused option index or -1 if none focused
|
|
37
|
+
*/
|
|
38
|
+
getFocusedIndex(): number;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=focus-controller.interface.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Nuraly, Laabidi Aymen
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
export { RadioBaseController, ErrorHandler, RadioHost } from './base-controller.interface.js';
|
|
7
|
+
export { SelectionController } from './selection-controller.interface.js';
|
|
8
|
+
export { KeyboardController, FocusController } from './focus-controller.interface.js';
|
|
9
|
+
export { ValidationController } from './validation-controller.interface.js';
|
|
10
|
+
export { RippleController } from './ripple-controller.interface.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|