@sekiui/elements 0.0.56 → 0.0.57
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/index.js +1053 -91
- package/dist/cdn/p-BJCq8m2o.js +138 -0
- package/dist/cdn/p-BfRJQMIU.js +111 -0
- package/dist/cdn/{p-bMBhrs0a.js → p-Bp7tjKwQ.js} +427 -7
- package/dist/cdn/seki-button.js +1 -1
- package/dist/cdn/seki-card-action.js +1 -1
- package/dist/cdn/seki-card-content.js +1 -1
- package/dist/cdn/seki-card-description.js +1 -1
- package/dist/cdn/seki-card-footer.js +1 -1
- package/dist/cdn/seki-card-header.js +1 -1
- package/dist/cdn/seki-card-title.js +1 -1
- package/dist/cdn/seki-card.js +1 -1
- package/dist/cdn/seki-field-description.js +1 -1
- package/dist/cdn/seki-field-error.js +1 -1
- package/dist/cdn/seki-field-group.js +1 -1
- package/dist/cdn/seki-field-label.js +1 -1
- package/dist/cdn/seki-field-legend.js +1 -1
- package/dist/cdn/seki-field.js +1 -1
- package/dist/cdn/seki-fieldset.js +1 -1
- package/dist/cdn/seki-input.js +1 -1
- package/dist/cdn/seki-select-content.js +1 -1
- package/dist/cdn/seki-select-group.js +1 -1
- package/dist/cdn/seki-select-option.js +1 -1
- package/dist/cdn/seki-select-trigger.js +1 -1
- package/dist/cdn/seki-select.js +1 -1
- package/dist/cdn/seki-sidebar-content.d.ts +11 -0
- package/dist/cdn/seki-sidebar-content.js +38 -0
- package/dist/cdn/seki-sidebar-footer.d.ts +11 -0
- package/dist/cdn/seki-sidebar-footer.js +38 -0
- package/dist/cdn/seki-sidebar-group.d.ts +11 -0
- package/dist/cdn/seki-sidebar-group.js +131 -0
- package/dist/cdn/seki-sidebar-header.d.ts +11 -0
- package/dist/cdn/seki-sidebar-header.js +38 -0
- package/dist/cdn/seki-sidebar-menu-item.d.ts +11 -0
- package/dist/cdn/seki-sidebar-menu-item.js +200 -0
- package/dist/cdn/seki-sidebar-menu-sub.d.ts +11 -0
- package/dist/cdn/seki-sidebar-menu-sub.js +123 -0
- package/dist/cdn/seki-sidebar-menu.d.ts +11 -0
- package/dist/cdn/seki-sidebar-menu.js +38 -0
- package/dist/cdn/seki-sidebar-trigger.d.ts +11 -0
- package/dist/cdn/seki-sidebar-trigger.js +109 -0
- package/dist/cdn/seki-sidebar.d.ts +11 -0
- package/dist/cdn/seki-sidebar.js +380 -0
- package/dist/cdn/seki-skeleton.js +2 -2
- package/dist/cdn/seki-switch.js +1 -1
- package/dist/cdn/seki-tooltip.js +1 -1
- package/dist/cjs/{index-Dd6_-KaR.js → index-tQYksITZ.js} +426 -6
- package/dist/cjs/index.cjs.js +1115 -63
- package/dist/cjs/keyboard-Cjl5HYES.js +142 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/seki-button.cjs.entry.js +1 -1
- package/dist/cjs/seki-card-action.cjs.entry.js +1 -1
- package/dist/cjs/seki-card-content.cjs.entry.js +1 -1
- package/dist/cjs/seki-card-description.cjs.entry.js +1 -1
- package/dist/cjs/seki-card-footer.cjs.entry.js +1 -1
- package/dist/cjs/seki-card-header.cjs.entry.js +1 -1
- package/dist/cjs/seki-card-title.cjs.entry.js +1 -1
- package/dist/cjs/seki-card.cjs.entry.js +1 -1
- package/dist/cjs/seki-field-description.cjs.entry.js +1 -1
- package/dist/cjs/seki-field-error.cjs.entry.js +1 -1
- package/dist/cjs/seki-field-group.cjs.entry.js +1 -1
- package/dist/cjs/seki-field-label.cjs.entry.js +1 -1
- package/dist/cjs/seki-field-legend.cjs.entry.js +1 -1
- package/dist/cjs/seki-field.cjs.entry.js +1 -1
- package/dist/cjs/seki-fieldset.cjs.entry.js +1 -1
- package/dist/cjs/seki-input.cjs.entry.js +1 -1
- package/dist/cjs/seki-select-content.cjs.entry.js +1 -1
- package/dist/cjs/seki-select-group.cjs.entry.js +1 -1
- package/dist/cjs/seki-select-option.cjs.entry.js +1 -1
- package/dist/cjs/seki-select-trigger.cjs.entry.js +1 -1
- package/dist/cjs/seki-select.cjs.entry.js +1 -1
- package/dist/cjs/seki-sidebar-content.cjs.entry.js +20 -0
- package/dist/cjs/seki-sidebar-footer.cjs.entry.js +20 -0
- package/dist/cjs/seki-sidebar-group.cjs.entry.js +105 -0
- package/dist/cjs/seki-sidebar-header.cjs.entry.js +20 -0
- package/dist/cjs/seki-sidebar-menu-item.cjs.entry.js +174 -0
- package/dist/cjs/seki-sidebar-menu-sub.cjs.entry.js +99 -0
- package/dist/cjs/seki-sidebar-menu.cjs.entry.js +20 -0
- package/dist/cjs/seki-sidebar-trigger.cjs.entry.js +86 -0
- package/dist/cjs/seki-sidebar.cjs.entry.js +342 -0
- package/dist/cjs/seki-skeleton.cjs.entry.js +2 -2
- package/dist/cjs/seki-switch.cjs.entry.js +81 -3
- package/dist/cjs/seki-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/sekiui.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +9 -0
- package/dist/collection/components/sidebar/seki-sidebar-content.css +82 -0
- package/dist/collection/components/sidebar/seki-sidebar-content.js +33 -0
- package/dist/collection/components/sidebar/seki-sidebar-footer.css +44 -0
- package/dist/collection/components/sidebar/seki-sidebar-footer.js +31 -0
- package/dist/collection/components/sidebar/seki-sidebar-group.css +158 -0
- package/dist/collection/components/sidebar/seki-sidebar-group.js +300 -0
- package/dist/collection/components/sidebar/seki-sidebar-header.css +44 -0
- package/dist/collection/components/sidebar/seki-sidebar-header.js +32 -0
- package/dist/collection/components/sidebar/seki-sidebar-menu-item.css +196 -0
- package/dist/collection/components/sidebar/seki-sidebar-menu-item.js +403 -0
- package/dist/collection/components/sidebar/seki-sidebar-menu-sub.css +357 -0
- package/dist/collection/components/sidebar/seki-sidebar-menu-sub.js +256 -0
- package/dist/collection/components/sidebar/seki-sidebar-menu.css +25 -0
- package/dist/collection/components/sidebar/seki-sidebar-menu.js +32 -0
- package/dist/collection/components/sidebar/seki-sidebar-trigger.css +68 -0
- package/dist/collection/components/sidebar/seki-sidebar-trigger.js +175 -0
- package/dist/collection/components/sidebar/seki-sidebar.css +352 -0
- package/dist/collection/components/sidebar/seki-sidebar.js +812 -0
- package/dist/collection/components/sidebar/types.js +18 -0
- package/dist/collection/components/skeleton/seki-skeleton.js +1 -1
- package/dist/collection/index.js +7 -0
- package/dist/collection/services/focus.js +192 -0
- package/dist/collection/services/index.js +7 -0
- package/dist/collection/services/keyboard.js +136 -0
- package/dist/collection/services/media-query.js +254 -0
- package/dist/collection/types.js +41 -0
- package/dist/collection/utils/a11y.js +291 -0
- package/dist/collection/utils/common.js +286 -0
- package/dist/components/index.js +1053 -91
- package/dist/components/p-BJCq8m2o.js +138 -0
- package/dist/components/{p-QhPshhKB.js → p-BzYKy7d3.js} +427 -7
- package/dist/components/p-DwTISp-i.js +111 -0
- package/dist/components/seki-button.js +1 -1
- package/dist/components/seki-card-action.js +1 -1
- package/dist/components/seki-card-content.js +1 -1
- package/dist/components/seki-card-description.js +1 -1
- package/dist/components/seki-card-footer.js +1 -1
- package/dist/components/seki-card-header.js +1 -1
- package/dist/components/seki-card-title.js +1 -1
- package/dist/components/seki-card.js +1 -1
- package/dist/components/seki-field-description.js +1 -1
- package/dist/components/seki-field-error.js +1 -1
- package/dist/components/seki-field-group.js +1 -1
- package/dist/components/seki-field-label.js +1 -1
- package/dist/components/seki-field-legend.js +1 -1
- package/dist/components/seki-field.js +1 -1
- package/dist/components/seki-fieldset.js +1 -1
- package/dist/components/seki-input.js +1 -1
- package/dist/components/seki-select-content.js +1 -1
- package/dist/components/seki-select-group.js +1 -1
- package/dist/components/seki-select-option.js +1 -1
- package/dist/components/seki-select-trigger.js +1 -1
- package/dist/components/seki-select.js +1 -1
- package/dist/components/seki-sidebar-content.d.ts +11 -0
- package/dist/components/seki-sidebar-content.js +38 -0
- package/dist/components/seki-sidebar-footer.d.ts +11 -0
- package/dist/components/seki-sidebar-footer.js +38 -0
- package/dist/components/seki-sidebar-group.d.ts +11 -0
- package/dist/components/seki-sidebar-group.js +131 -0
- package/dist/components/seki-sidebar-header.d.ts +11 -0
- package/dist/components/seki-sidebar-header.js +38 -0
- package/dist/components/seki-sidebar-menu-item.d.ts +11 -0
- package/dist/components/seki-sidebar-menu-item.js +200 -0
- package/dist/components/seki-sidebar-menu-sub.d.ts +11 -0
- package/dist/components/seki-sidebar-menu-sub.js +123 -0
- package/dist/components/seki-sidebar-menu.d.ts +11 -0
- package/dist/components/seki-sidebar-menu.js +38 -0
- package/dist/components/seki-sidebar-trigger.d.ts +11 -0
- package/dist/components/seki-sidebar-trigger.js +109 -0
- package/dist/components/seki-sidebar.d.ts +11 -0
- package/dist/components/seki-sidebar.js +380 -0
- package/dist/components/seki-skeleton.js +2 -2
- package/dist/components/seki-switch.js +1 -1
- package/dist/components/seki-tooltip.js +1 -1
- package/dist/esm/{index-CuXbV_yz.js → index-Dfzpqq0a.js} +426 -6
- package/dist/esm/index.js +1053 -63
- package/dist/esm/keyboard-BJCq8m2o.js +138 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/seki-button.entry.js +1 -1
- package/dist/esm/seki-card-action.entry.js +1 -1
- package/dist/esm/seki-card-content.entry.js +1 -1
- package/dist/esm/seki-card-description.entry.js +1 -1
- package/dist/esm/seki-card-footer.entry.js +1 -1
- package/dist/esm/seki-card-header.entry.js +1 -1
- package/dist/esm/seki-card-title.entry.js +1 -1
- package/dist/esm/seki-card.entry.js +1 -1
- package/dist/esm/seki-field-description.entry.js +1 -1
- package/dist/esm/seki-field-error.entry.js +1 -1
- package/dist/esm/seki-field-group.entry.js +1 -1
- package/dist/esm/seki-field-label.entry.js +1 -1
- package/dist/esm/seki-field-legend.entry.js +1 -1
- package/dist/esm/seki-field.entry.js +1 -1
- package/dist/esm/seki-fieldset.entry.js +1 -1
- package/dist/esm/seki-input.entry.js +1 -1
- package/dist/esm/seki-select-content.entry.js +1 -1
- package/dist/esm/seki-select-group.entry.js +1 -1
- package/dist/esm/seki-select-option.entry.js +1 -1
- package/dist/esm/seki-select-trigger.entry.js +1 -1
- package/dist/esm/seki-select.entry.js +1 -1
- package/dist/esm/seki-sidebar-content.entry.js +18 -0
- package/dist/esm/seki-sidebar-footer.entry.js +18 -0
- package/dist/esm/seki-sidebar-group.entry.js +103 -0
- package/dist/esm/seki-sidebar-header.entry.js +18 -0
- package/dist/esm/seki-sidebar-menu-item.entry.js +172 -0
- package/dist/esm/seki-sidebar-menu-sub.entry.js +97 -0
- package/dist/esm/seki-sidebar-menu.entry.js +18 -0
- package/dist/esm/seki-sidebar-trigger.entry.js +84 -0
- package/dist/esm/seki-sidebar.entry.js +340 -0
- package/dist/esm/seki-skeleton.entry.js +2 -2
- package/dist/esm/seki-switch.entry.js +84 -2
- package/dist/esm/seki-tooltip.entry.js +1 -1
- package/dist/esm/sekiui.js +3 -3
- package/dist/sekiui/index.esm.js +1 -1
- package/dist/sekiui/p-01cfb4e7.entry.js +1 -0
- package/dist/sekiui/{p-97e6e5ce.entry.js → p-042ec460.entry.js} +1 -1
- package/dist/sekiui/{p-3e088b5a.entry.js → p-10c008fc.entry.js} +1 -1
- package/dist/sekiui/{p-ed440425.entry.js → p-352bd295.entry.js} +1 -1
- package/dist/sekiui/p-37c5f4d9.entry.js +1 -0
- package/dist/sekiui/p-40fb71d6.entry.js +1 -0
- package/dist/sekiui/{p-eefbc037.entry.js → p-44191aed.entry.js} +1 -1
- package/dist/sekiui/{p-81709fc2.entry.js → p-4423d621.entry.js} +1 -1
- package/dist/sekiui/{p-9af5286b.entry.js → p-4636588f.entry.js} +1 -1
- package/dist/sekiui/p-471b97a5.entry.js +1 -0
- package/dist/sekiui/{p-0544d787.entry.js → p-56f0d754.entry.js} +1 -1
- package/dist/sekiui/{p-43f7c542.entry.js → p-5bc0f5aa.entry.js} +1 -1
- package/dist/sekiui/{p-eedf44b5.entry.js → p-6164cd8a.entry.js} +1 -1
- package/dist/sekiui/{p-b479935d.entry.js → p-635f4098.entry.js} +1 -1
- package/dist/sekiui/{p-35f8f9c4.entry.js → p-743fc6d9.entry.js} +1 -1
- package/dist/sekiui/p-83e65cbe.entry.js +1 -0
- package/dist/sekiui/p-8b7bd061.entry.js +1 -0
- package/dist/sekiui/{p-009183ab.entry.js → p-8d9a4878.entry.js} +1 -1
- package/dist/sekiui/p-9cb9cdfe.entry.js +1 -0
- package/dist/sekiui/p-9f2d95d7.entry.js +1 -0
- package/dist/sekiui/p-BJCq8m2o.js +1 -0
- package/dist/sekiui/p-Dfzpqq0a.js +2 -0
- package/dist/sekiui/{p-b22df79e.entry.js → p-a1a71958.entry.js} +1 -1
- package/dist/sekiui/{p-dd1e3e87.entry.js → p-a71e0c55.entry.js} +1 -1
- package/dist/sekiui/{p-1607dc4d.entry.js → p-ae227955.entry.js} +1 -1
- package/dist/sekiui/{p-cf11115c.entry.js → p-b365f5fb.entry.js} +1 -1
- package/dist/sekiui/{p-6bde807e.entry.js → p-b387a2a5.entry.js} +1 -1
- package/dist/sekiui/p-b8590f4d.entry.js +1 -0
- package/dist/sekiui/{p-88f91658.entry.js → p-c98b6d6a.entry.js} +1 -1
- package/dist/sekiui/{p-e71ad432.entry.js → p-d73cdb9a.entry.js} +1 -1
- package/dist/sekiui/{p-b10d81a6.entry.js → p-d96e770e.entry.js} +1 -1
- package/dist/sekiui/p-e62dd89b.entry.js +1 -0
- package/dist/sekiui/{p-d4c92041.entry.js → p-e7bb140c.entry.js} +1 -1
- package/dist/sekiui/{p-6e238adf.entry.js → p-eecc18f3.entry.js} +1 -1
- package/dist/sekiui/{p-4d57c6ea.entry.js → p-ff636955.entry.js} +1 -1
- package/dist/sekiui/sekiui.esm.js +1 -1
- package/dist/types/components/sidebar/seki-sidebar-content.d.ts +18 -0
- package/dist/types/components/sidebar/seki-sidebar-footer.d.ts +16 -0
- package/dist/types/components/sidebar/seki-sidebar-group.d.ts +81 -0
- package/dist/types/components/sidebar/seki-sidebar-header.d.ts +17 -0
- package/dist/types/components/sidebar/seki-sidebar-menu-item.d.ts +104 -0
- package/dist/types/components/sidebar/seki-sidebar-menu-sub.d.ts +81 -0
- package/dist/types/components/sidebar/seki-sidebar-menu.d.ts +17 -0
- package/dist/types/components/sidebar/seki-sidebar-trigger.d.ts +53 -0
- package/dist/types/components/sidebar/seki-sidebar.d.ts +185 -0
- package/dist/types/components/sidebar/types.d.ts +245 -0
- package/dist/types/components.d.ts +508 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/services/focus.d.ts +74 -0
- package/dist/types/services/index.d.ts +7 -0
- package/dist/types/services/keyboard.d.ts +74 -0
- package/dist/types/services/media-query.d.ts +121 -0
- package/dist/types/types.d.ts +105 -0
- package/dist/types/utils/a11y.d.ts +130 -0
- package/dist/types/utils/common.d.ts +142 -0
- package/package.json +2 -1
- package/dist/sekiui/p-9fe07f6e.entry.js +0 -1
- package/dist/sekiui/p-CuXbV_yz.js +0 -2
|
@@ -7,9 +7,11 @@
|
|
|
7
7
|
import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
|
|
8
8
|
import { Event } from "./stencil-public-runtime";
|
|
9
9
|
import { SelectChangeEventDetail, SelectOpenChangeEventDetail, SelectPlacement, SelectValidateEventDetail, SelectValue } from "./utils/select";
|
|
10
|
+
import { CollapsedChangeDetail, CollapseModeChangeDetail, MobileStateChangeDetail, NavigateDetail, OpenChangeDetail, SidebarGroupProps, SidebarMenuItemProps, SidebarMenuSubProps, SidebarProps, SidebarState, SidebarTriggerProps, VariantChangeDetail } from "./components/sidebar/types";
|
|
10
11
|
import { TooltipHideDetail, TooltipPositionedDetail, TooltipShowDetail, TooltipSide } from "./components/tooltip/seki-tooltip";
|
|
11
12
|
export { Event } from "./stencil-public-runtime";
|
|
12
13
|
export { SelectChangeEventDetail, SelectOpenChangeEventDetail, SelectPlacement, SelectValidateEventDetail, SelectValue } from "./utils/select";
|
|
14
|
+
export { CollapsedChangeDetail, CollapseModeChangeDetail, MobileStateChangeDetail, NavigateDetail, OpenChangeDetail, SidebarGroupProps, SidebarMenuItemProps, SidebarMenuSubProps, SidebarProps, SidebarState, SidebarTriggerProps, VariantChangeDetail } from "./components/sidebar/types";
|
|
13
15
|
export { TooltipHideDetail, TooltipPositionedDetail, TooltipShowDetail, TooltipSide } from "./components/tooltip/seki-tooltip";
|
|
14
16
|
export namespace Components {
|
|
15
17
|
interface SekiButton {
|
|
@@ -416,6 +418,194 @@ export namespace Components {
|
|
|
416
418
|
}
|
|
417
419
|
interface SekiSelectTrigger {
|
|
418
420
|
}
|
|
421
|
+
interface SekiSidebar {
|
|
422
|
+
/**
|
|
423
|
+
* Close the sidebar (set isOpen=false)
|
|
424
|
+
* @returns
|
|
425
|
+
*/
|
|
426
|
+
"close": () => Promise<void>;
|
|
427
|
+
/**
|
|
428
|
+
* Collapse mechanism: offcanvas (slides), icon (shrinks), or none (fixed)
|
|
429
|
+
* @type {'offcanvas' | 'icon' | 'none'}
|
|
430
|
+
* @default 'offcanvas'
|
|
431
|
+
*/
|
|
432
|
+
"collapseMode": SidebarProps['collapseMode'];
|
|
433
|
+
/**
|
|
434
|
+
* Initial open/closed state
|
|
435
|
+
* @type {boolean}
|
|
436
|
+
* @default true
|
|
437
|
+
*/
|
|
438
|
+
"defaultOpen": boolean;
|
|
439
|
+
/**
|
|
440
|
+
* Get current sidebar state
|
|
441
|
+
* @returns
|
|
442
|
+
*/
|
|
443
|
+
"getState": () => Promise<SidebarState>;
|
|
444
|
+
/**
|
|
445
|
+
* Viewport width for mobile detection (px)
|
|
446
|
+
* @type {number}
|
|
447
|
+
* @default 768
|
|
448
|
+
*/
|
|
449
|
+
"mobileBreakpoint": number;
|
|
450
|
+
/**
|
|
451
|
+
* Callback fired when open state changes
|
|
452
|
+
*/
|
|
453
|
+
"onOpenChange"?: (isOpen: boolean) => void;
|
|
454
|
+
/**
|
|
455
|
+
* Open the sidebar (set isOpen=true)
|
|
456
|
+
* @returns
|
|
457
|
+
*/
|
|
458
|
+
"open": () => Promise<void>;
|
|
459
|
+
/**
|
|
460
|
+
* Storage key for persisted state
|
|
461
|
+
* @type {string}
|
|
462
|
+
* @default 'seki-sidebar-state'
|
|
463
|
+
*/
|
|
464
|
+
"persistenceKey": string;
|
|
465
|
+
/**
|
|
466
|
+
* Persist state to localStorage
|
|
467
|
+
* @type {boolean}
|
|
468
|
+
* @default false
|
|
469
|
+
*/
|
|
470
|
+
"persistent": boolean;
|
|
471
|
+
/**
|
|
472
|
+
* Update sidebar state
|
|
473
|
+
* @param state - Partial state object
|
|
474
|
+
* @returns
|
|
475
|
+
*/
|
|
476
|
+
"setState": (state: Partial<SidebarState>) => Promise<void>;
|
|
477
|
+
/**
|
|
478
|
+
* Position: left or right side of viewport
|
|
479
|
+
* @type {'left' | 'right'}
|
|
480
|
+
* @default 'left'
|
|
481
|
+
*/
|
|
482
|
+
"side": SidebarProps['side'];
|
|
483
|
+
/**
|
|
484
|
+
* Toggle the sidebar open/closed state
|
|
485
|
+
* @returns
|
|
486
|
+
*/
|
|
487
|
+
"toggle": () => Promise<void>;
|
|
488
|
+
/**
|
|
489
|
+
* Layout variant: standard, floating (detached), or inset
|
|
490
|
+
* @type {'sidebar' | 'floating' | 'inset'}
|
|
491
|
+
* @default 'sidebar'
|
|
492
|
+
*/
|
|
493
|
+
"variant": SidebarProps['variant'];
|
|
494
|
+
}
|
|
495
|
+
interface SekiSidebarContent {
|
|
496
|
+
}
|
|
497
|
+
interface SekiSidebarFooter {
|
|
498
|
+
}
|
|
499
|
+
interface SekiSidebarGroup {
|
|
500
|
+
/**
|
|
501
|
+
* Optional action button configuration
|
|
502
|
+
* @type {object}
|
|
503
|
+
*/
|
|
504
|
+
"action"?: SidebarGroupProps['action'];
|
|
505
|
+
/**
|
|
506
|
+
* Allow collapsing this group
|
|
507
|
+
* @type {boolean}
|
|
508
|
+
* @default false
|
|
509
|
+
*/
|
|
510
|
+
"collapsible": boolean;
|
|
511
|
+
/**
|
|
512
|
+
* Initial collapsed state
|
|
513
|
+
* @type {boolean}
|
|
514
|
+
* @default false
|
|
515
|
+
*/
|
|
516
|
+
"defaultCollapsed": boolean;
|
|
517
|
+
/**
|
|
518
|
+
* Get current collapsed state
|
|
519
|
+
*/
|
|
520
|
+
"isCollapsedState": () => Promise<boolean>;
|
|
521
|
+
/**
|
|
522
|
+
* Set collapsed state
|
|
523
|
+
*/
|
|
524
|
+
"setCollapsed": (collapsed: boolean) => Promise<void>;
|
|
525
|
+
/**
|
|
526
|
+
* Section header text (optional)
|
|
527
|
+
* @type {string}
|
|
528
|
+
*/
|
|
529
|
+
"title"?: SidebarGroupProps['title'];
|
|
530
|
+
}
|
|
531
|
+
interface SekiSidebarHeader {
|
|
532
|
+
}
|
|
533
|
+
interface SekiSidebarMenu {
|
|
534
|
+
}
|
|
535
|
+
interface SekiSidebarMenuItem {
|
|
536
|
+
/**
|
|
537
|
+
* ARIA current value for active items
|
|
538
|
+
* @type {string}
|
|
539
|
+
* @default 'page'
|
|
540
|
+
*/
|
|
541
|
+
"ariaCurrentValue": SidebarMenuItemProps['ariaCurrentValue'];
|
|
542
|
+
/**
|
|
543
|
+
* Accessibility label override
|
|
544
|
+
* @type {string}
|
|
545
|
+
*/
|
|
546
|
+
"ariaLabel"?: SidebarMenuItemProps['ariaLabel'];
|
|
547
|
+
/**
|
|
548
|
+
* Badge indicator for the item
|
|
549
|
+
* @type {object}
|
|
550
|
+
*/
|
|
551
|
+
"badge"?: SidebarMenuItemProps['badge'];
|
|
552
|
+
/**
|
|
553
|
+
* Disable interaction
|
|
554
|
+
* @type {boolean}
|
|
555
|
+
* @default false
|
|
556
|
+
*/
|
|
557
|
+
"disabled": boolean;
|
|
558
|
+
/**
|
|
559
|
+
* Navigation URL (optional)
|
|
560
|
+
* @type {string}
|
|
561
|
+
*/
|
|
562
|
+
"href"?: SidebarMenuItemProps['href'];
|
|
563
|
+
/**
|
|
564
|
+
* Highlight as current page
|
|
565
|
+
* @type {boolean}
|
|
566
|
+
* @default false
|
|
567
|
+
*/
|
|
568
|
+
"isActive": boolean;
|
|
569
|
+
/**
|
|
570
|
+
* Link target: _blank, _self, etc.
|
|
571
|
+
* @type {string}
|
|
572
|
+
*/
|
|
573
|
+
"target"?: SidebarMenuItemProps['target'];
|
|
574
|
+
}
|
|
575
|
+
interface SekiSidebarMenuSub {
|
|
576
|
+
/**
|
|
577
|
+
* Initial collapsed state
|
|
578
|
+
* @type {boolean}
|
|
579
|
+
* @default false
|
|
580
|
+
*/
|
|
581
|
+
"defaultCollapsed": boolean;
|
|
582
|
+
/**
|
|
583
|
+
* Get current collapsed state
|
|
584
|
+
*/
|
|
585
|
+
"isCollapsedState": () => Promise<boolean>;
|
|
586
|
+
/**
|
|
587
|
+
* Label for the submenu (shown when expanded)
|
|
588
|
+
* @type {string}
|
|
589
|
+
*/
|
|
590
|
+
"label"?: SidebarMenuSubProps['label'];
|
|
591
|
+
/**
|
|
592
|
+
* Set collapsed state
|
|
593
|
+
*/
|
|
594
|
+
"setCollapsed": (collapsed: boolean) => Promise<void>;
|
|
595
|
+
}
|
|
596
|
+
interface SekiSidebarTrigger {
|
|
597
|
+
/**
|
|
598
|
+
* Accessibility label for the button
|
|
599
|
+
* @type {string}
|
|
600
|
+
* @default 'Toggle sidebar'
|
|
601
|
+
*/
|
|
602
|
+
"ariaLabel": SidebarTriggerProps['ariaLabel'];
|
|
603
|
+
/**
|
|
604
|
+
* Icon name or SVG path (optional)
|
|
605
|
+
* @type {string}
|
|
606
|
+
*/
|
|
607
|
+
"icon": SidebarTriggerProps['icon'];
|
|
608
|
+
}
|
|
419
609
|
/**
|
|
420
610
|
* @component seki-skeleton
|
|
421
611
|
* @description A loading placeholder component that displays an animated skeleton while content is loading
|
|
@@ -534,6 +724,22 @@ export interface SekiSelectOptionCustomEvent<T> extends CustomEvent<T> {
|
|
|
534
724
|
detail: T;
|
|
535
725
|
target: HTMLSekiSelectOptionElement;
|
|
536
726
|
}
|
|
727
|
+
export interface SekiSidebarCustomEvent<T> extends CustomEvent<T> {
|
|
728
|
+
detail: T;
|
|
729
|
+
target: HTMLSekiSidebarElement;
|
|
730
|
+
}
|
|
731
|
+
export interface SekiSidebarGroupCustomEvent<T> extends CustomEvent<T> {
|
|
732
|
+
detail: T;
|
|
733
|
+
target: HTMLSekiSidebarGroupElement;
|
|
734
|
+
}
|
|
735
|
+
export interface SekiSidebarMenuItemCustomEvent<T> extends CustomEvent<T> {
|
|
736
|
+
detail: T;
|
|
737
|
+
target: HTMLSekiSidebarMenuItemElement;
|
|
738
|
+
}
|
|
739
|
+
export interface SekiSidebarMenuSubCustomEvent<T> extends CustomEvent<T> {
|
|
740
|
+
detail: T;
|
|
741
|
+
target: HTMLSekiSidebarMenuSubElement;
|
|
742
|
+
}
|
|
537
743
|
export interface SekiSwitchCustomEvent<T> extends CustomEvent<T> {
|
|
538
744
|
detail: T;
|
|
539
745
|
target: HTMLSekiSwitchElement;
|
|
@@ -762,6 +968,107 @@ declare global {
|
|
|
762
968
|
prototype: HTMLSekiSelectTriggerElement;
|
|
763
969
|
new (): HTMLSekiSelectTriggerElement;
|
|
764
970
|
};
|
|
971
|
+
interface HTMLSekiSidebarElementEventMap {
|
|
972
|
+
"openChange": OpenChangeDetail;
|
|
973
|
+
"variantChange": VariantChangeDetail;
|
|
974
|
+
"collapseModeChange": CollapseModeChangeDetail;
|
|
975
|
+
"mobileStateChange": MobileStateChangeDetail;
|
|
976
|
+
}
|
|
977
|
+
interface HTMLSekiSidebarElement extends Components.SekiSidebar, HTMLStencilElement {
|
|
978
|
+
addEventListener<K extends keyof HTMLSekiSidebarElementEventMap>(type: K, listener: (this: HTMLSekiSidebarElement, ev: SekiSidebarCustomEvent<HTMLSekiSidebarElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
979
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
980
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
981
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
982
|
+
removeEventListener<K extends keyof HTMLSekiSidebarElementEventMap>(type: K, listener: (this: HTMLSekiSidebarElement, ev: SekiSidebarCustomEvent<HTMLSekiSidebarElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
983
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
984
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
985
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
986
|
+
}
|
|
987
|
+
var HTMLSekiSidebarElement: {
|
|
988
|
+
prototype: HTMLSekiSidebarElement;
|
|
989
|
+
new (): HTMLSekiSidebarElement;
|
|
990
|
+
};
|
|
991
|
+
interface HTMLSekiSidebarContentElement extends Components.SekiSidebarContent, HTMLStencilElement {
|
|
992
|
+
}
|
|
993
|
+
var HTMLSekiSidebarContentElement: {
|
|
994
|
+
prototype: HTMLSekiSidebarContentElement;
|
|
995
|
+
new (): HTMLSekiSidebarContentElement;
|
|
996
|
+
};
|
|
997
|
+
interface HTMLSekiSidebarFooterElement extends Components.SekiSidebarFooter, HTMLStencilElement {
|
|
998
|
+
}
|
|
999
|
+
var HTMLSekiSidebarFooterElement: {
|
|
1000
|
+
prototype: HTMLSekiSidebarFooterElement;
|
|
1001
|
+
new (): HTMLSekiSidebarFooterElement;
|
|
1002
|
+
};
|
|
1003
|
+
interface HTMLSekiSidebarGroupElementEventMap {
|
|
1004
|
+
"collapsedChange": CollapsedChangeDetail;
|
|
1005
|
+
}
|
|
1006
|
+
interface HTMLSekiSidebarGroupElement extends Components.SekiSidebarGroup, HTMLStencilElement {
|
|
1007
|
+
addEventListener<K extends keyof HTMLSekiSidebarGroupElementEventMap>(type: K, listener: (this: HTMLSekiSidebarGroupElement, ev: SekiSidebarGroupCustomEvent<HTMLSekiSidebarGroupElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1008
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1009
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1010
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
1011
|
+
removeEventListener<K extends keyof HTMLSekiSidebarGroupElementEventMap>(type: K, listener: (this: HTMLSekiSidebarGroupElement, ev: SekiSidebarGroupCustomEvent<HTMLSekiSidebarGroupElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
1012
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1013
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1014
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
1015
|
+
}
|
|
1016
|
+
var HTMLSekiSidebarGroupElement: {
|
|
1017
|
+
prototype: HTMLSekiSidebarGroupElement;
|
|
1018
|
+
new (): HTMLSekiSidebarGroupElement;
|
|
1019
|
+
};
|
|
1020
|
+
interface HTMLSekiSidebarHeaderElement extends Components.SekiSidebarHeader, HTMLStencilElement {
|
|
1021
|
+
}
|
|
1022
|
+
var HTMLSekiSidebarHeaderElement: {
|
|
1023
|
+
prototype: HTMLSekiSidebarHeaderElement;
|
|
1024
|
+
new (): HTMLSekiSidebarHeaderElement;
|
|
1025
|
+
};
|
|
1026
|
+
interface HTMLSekiSidebarMenuElement extends Components.SekiSidebarMenu, HTMLStencilElement {
|
|
1027
|
+
}
|
|
1028
|
+
var HTMLSekiSidebarMenuElement: {
|
|
1029
|
+
prototype: HTMLSekiSidebarMenuElement;
|
|
1030
|
+
new (): HTMLSekiSidebarMenuElement;
|
|
1031
|
+
};
|
|
1032
|
+
interface HTMLSekiSidebarMenuItemElementEventMap {
|
|
1033
|
+
"navigate": NavigateDetail;
|
|
1034
|
+
}
|
|
1035
|
+
interface HTMLSekiSidebarMenuItemElement extends Components.SekiSidebarMenuItem, HTMLStencilElement {
|
|
1036
|
+
addEventListener<K extends keyof HTMLSekiSidebarMenuItemElementEventMap>(type: K, listener: (this: HTMLSekiSidebarMenuItemElement, ev: SekiSidebarMenuItemCustomEvent<HTMLSekiSidebarMenuItemElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1037
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1038
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1039
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
1040
|
+
removeEventListener<K extends keyof HTMLSekiSidebarMenuItemElementEventMap>(type: K, listener: (this: HTMLSekiSidebarMenuItemElement, ev: SekiSidebarMenuItemCustomEvent<HTMLSekiSidebarMenuItemElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
1041
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1042
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1043
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
1044
|
+
}
|
|
1045
|
+
var HTMLSekiSidebarMenuItemElement: {
|
|
1046
|
+
prototype: HTMLSekiSidebarMenuItemElement;
|
|
1047
|
+
new (): HTMLSekiSidebarMenuItemElement;
|
|
1048
|
+
};
|
|
1049
|
+
interface HTMLSekiSidebarMenuSubElementEventMap {
|
|
1050
|
+
"collapsedChange": CollapsedChangeDetail;
|
|
1051
|
+
}
|
|
1052
|
+
interface HTMLSekiSidebarMenuSubElement extends Components.SekiSidebarMenuSub, HTMLStencilElement {
|
|
1053
|
+
addEventListener<K extends keyof HTMLSekiSidebarMenuSubElementEventMap>(type: K, listener: (this: HTMLSekiSidebarMenuSubElement, ev: SekiSidebarMenuSubCustomEvent<HTMLSekiSidebarMenuSubElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1054
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1055
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1056
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
1057
|
+
removeEventListener<K extends keyof HTMLSekiSidebarMenuSubElementEventMap>(type: K, listener: (this: HTMLSekiSidebarMenuSubElement, ev: SekiSidebarMenuSubCustomEvent<HTMLSekiSidebarMenuSubElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
1058
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1059
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1060
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
1061
|
+
}
|
|
1062
|
+
var HTMLSekiSidebarMenuSubElement: {
|
|
1063
|
+
prototype: HTMLSekiSidebarMenuSubElement;
|
|
1064
|
+
new (): HTMLSekiSidebarMenuSubElement;
|
|
1065
|
+
};
|
|
1066
|
+
interface HTMLSekiSidebarTriggerElement extends Components.SekiSidebarTrigger, HTMLStencilElement {
|
|
1067
|
+
}
|
|
1068
|
+
var HTMLSekiSidebarTriggerElement: {
|
|
1069
|
+
prototype: HTMLSekiSidebarTriggerElement;
|
|
1070
|
+
new (): HTMLSekiSidebarTriggerElement;
|
|
1071
|
+
};
|
|
765
1072
|
/**
|
|
766
1073
|
* @component seki-skeleton
|
|
767
1074
|
* @description A loading placeholder component that displays an animated skeleton while content is loading
|
|
@@ -851,6 +1158,15 @@ declare global {
|
|
|
851
1158
|
"seki-select-group": HTMLSekiSelectGroupElement;
|
|
852
1159
|
"seki-select-option": HTMLSekiSelectOptionElement;
|
|
853
1160
|
"seki-select-trigger": HTMLSekiSelectTriggerElement;
|
|
1161
|
+
"seki-sidebar": HTMLSekiSidebarElement;
|
|
1162
|
+
"seki-sidebar-content": HTMLSekiSidebarContentElement;
|
|
1163
|
+
"seki-sidebar-footer": HTMLSekiSidebarFooterElement;
|
|
1164
|
+
"seki-sidebar-group": HTMLSekiSidebarGroupElement;
|
|
1165
|
+
"seki-sidebar-header": HTMLSekiSidebarHeaderElement;
|
|
1166
|
+
"seki-sidebar-menu": HTMLSekiSidebarMenuElement;
|
|
1167
|
+
"seki-sidebar-menu-item": HTMLSekiSidebarMenuItemElement;
|
|
1168
|
+
"seki-sidebar-menu-sub": HTMLSekiSidebarMenuSubElement;
|
|
1169
|
+
"seki-sidebar-trigger": HTMLSekiSidebarTriggerElement;
|
|
854
1170
|
"seki-skeleton": HTMLSekiSkeletonElement;
|
|
855
1171
|
"seki-switch": HTMLSekiSwitchElement;
|
|
856
1172
|
"seki-tooltip": HTMLSekiTooltipElement;
|
|
@@ -1261,6 +1577,180 @@ declare namespace LocalJSX {
|
|
|
1261
1577
|
}
|
|
1262
1578
|
interface SekiSelectTrigger {
|
|
1263
1579
|
}
|
|
1580
|
+
interface SekiSidebar {
|
|
1581
|
+
/**
|
|
1582
|
+
* Collapse mechanism: offcanvas (slides), icon (shrinks), or none (fixed)
|
|
1583
|
+
* @type {'offcanvas' | 'icon' | 'none'}
|
|
1584
|
+
* @default 'offcanvas'
|
|
1585
|
+
*/
|
|
1586
|
+
"collapseMode"?: SidebarProps['collapseMode'];
|
|
1587
|
+
/**
|
|
1588
|
+
* Initial open/closed state
|
|
1589
|
+
* @type {boolean}
|
|
1590
|
+
* @default true
|
|
1591
|
+
*/
|
|
1592
|
+
"defaultOpen"?: boolean;
|
|
1593
|
+
/**
|
|
1594
|
+
* Viewport width for mobile detection (px)
|
|
1595
|
+
* @type {number}
|
|
1596
|
+
* @default 768
|
|
1597
|
+
*/
|
|
1598
|
+
"mobileBreakpoint"?: number;
|
|
1599
|
+
/**
|
|
1600
|
+
* Event fired when collapse mode changes
|
|
1601
|
+
*/
|
|
1602
|
+
"onCollapseModeChange"?: (event: SekiSidebarCustomEvent<CollapseModeChangeDetail>) => void;
|
|
1603
|
+
/**
|
|
1604
|
+
* Event fired when mobile state changes
|
|
1605
|
+
*/
|
|
1606
|
+
"onMobileStateChange"?: (event: SekiSidebarCustomEvent<MobileStateChangeDetail>) => void;
|
|
1607
|
+
/**
|
|
1608
|
+
* Callback fired when open state changes
|
|
1609
|
+
*/
|
|
1610
|
+
"onOpenChange"?: (isOpen: boolean) => void;
|
|
1611
|
+
/**
|
|
1612
|
+
* Event fired when sidebar opens/closes
|
|
1613
|
+
*/
|
|
1614
|
+
"onOpenChange"?: (event: SekiSidebarCustomEvent<OpenChangeDetail>) => void;
|
|
1615
|
+
/**
|
|
1616
|
+
* Event fired when variant changes
|
|
1617
|
+
*/
|
|
1618
|
+
"onVariantChange"?: (event: SekiSidebarCustomEvent<VariantChangeDetail>) => void;
|
|
1619
|
+
/**
|
|
1620
|
+
* Storage key for persisted state
|
|
1621
|
+
* @type {string}
|
|
1622
|
+
* @default 'seki-sidebar-state'
|
|
1623
|
+
*/
|
|
1624
|
+
"persistenceKey"?: string;
|
|
1625
|
+
/**
|
|
1626
|
+
* Persist state to localStorage
|
|
1627
|
+
* @type {boolean}
|
|
1628
|
+
* @default false
|
|
1629
|
+
*/
|
|
1630
|
+
"persistent"?: boolean;
|
|
1631
|
+
/**
|
|
1632
|
+
* Position: left or right side of viewport
|
|
1633
|
+
* @type {'left' | 'right'}
|
|
1634
|
+
* @default 'left'
|
|
1635
|
+
*/
|
|
1636
|
+
"side"?: SidebarProps['side'];
|
|
1637
|
+
/**
|
|
1638
|
+
* Layout variant: standard, floating (detached), or inset
|
|
1639
|
+
* @type {'sidebar' | 'floating' | 'inset'}
|
|
1640
|
+
* @default 'sidebar'
|
|
1641
|
+
*/
|
|
1642
|
+
"variant"?: SidebarProps['variant'];
|
|
1643
|
+
}
|
|
1644
|
+
interface SekiSidebarContent {
|
|
1645
|
+
}
|
|
1646
|
+
interface SekiSidebarFooter {
|
|
1647
|
+
}
|
|
1648
|
+
interface SekiSidebarGroup {
|
|
1649
|
+
/**
|
|
1650
|
+
* Optional action button configuration
|
|
1651
|
+
* @type {object}
|
|
1652
|
+
*/
|
|
1653
|
+
"action"?: SidebarGroupProps['action'];
|
|
1654
|
+
/**
|
|
1655
|
+
* Allow collapsing this group
|
|
1656
|
+
* @type {boolean}
|
|
1657
|
+
* @default false
|
|
1658
|
+
*/
|
|
1659
|
+
"collapsible"?: boolean;
|
|
1660
|
+
/**
|
|
1661
|
+
* Initial collapsed state
|
|
1662
|
+
* @type {boolean}
|
|
1663
|
+
* @default false
|
|
1664
|
+
*/
|
|
1665
|
+
"defaultCollapsed"?: boolean;
|
|
1666
|
+
/**
|
|
1667
|
+
* Event fired when collapsed state changes
|
|
1668
|
+
*/
|
|
1669
|
+
"onCollapsedChange"?: (event: SekiSidebarGroupCustomEvent<CollapsedChangeDetail>) => void;
|
|
1670
|
+
/**
|
|
1671
|
+
* Section header text (optional)
|
|
1672
|
+
* @type {string}
|
|
1673
|
+
*/
|
|
1674
|
+
"title"?: SidebarGroupProps['title'];
|
|
1675
|
+
}
|
|
1676
|
+
interface SekiSidebarHeader {
|
|
1677
|
+
}
|
|
1678
|
+
interface SekiSidebarMenu {
|
|
1679
|
+
}
|
|
1680
|
+
interface SekiSidebarMenuItem {
|
|
1681
|
+
/**
|
|
1682
|
+
* ARIA current value for active items
|
|
1683
|
+
* @type {string}
|
|
1684
|
+
* @default 'page'
|
|
1685
|
+
*/
|
|
1686
|
+
"ariaCurrentValue"?: SidebarMenuItemProps['ariaCurrentValue'];
|
|
1687
|
+
/**
|
|
1688
|
+
* Accessibility label override
|
|
1689
|
+
* @type {string}
|
|
1690
|
+
*/
|
|
1691
|
+
"ariaLabel"?: SidebarMenuItemProps['ariaLabel'];
|
|
1692
|
+
/**
|
|
1693
|
+
* Badge indicator for the item
|
|
1694
|
+
* @type {object}
|
|
1695
|
+
*/
|
|
1696
|
+
"badge"?: SidebarMenuItemProps['badge'];
|
|
1697
|
+
/**
|
|
1698
|
+
* Disable interaction
|
|
1699
|
+
* @type {boolean}
|
|
1700
|
+
* @default false
|
|
1701
|
+
*/
|
|
1702
|
+
"disabled"?: boolean;
|
|
1703
|
+
/**
|
|
1704
|
+
* Navigation URL (optional)
|
|
1705
|
+
* @type {string}
|
|
1706
|
+
*/
|
|
1707
|
+
"href"?: SidebarMenuItemProps['href'];
|
|
1708
|
+
/**
|
|
1709
|
+
* Highlight as current page
|
|
1710
|
+
* @type {boolean}
|
|
1711
|
+
* @default false
|
|
1712
|
+
*/
|
|
1713
|
+
"isActive"?: boolean;
|
|
1714
|
+
/**
|
|
1715
|
+
* Event fired on item click
|
|
1716
|
+
*/
|
|
1717
|
+
"onNavigate"?: (event: SekiSidebarMenuItemCustomEvent<NavigateDetail>) => void;
|
|
1718
|
+
/**
|
|
1719
|
+
* Link target: _blank, _self, etc.
|
|
1720
|
+
* @type {string}
|
|
1721
|
+
*/
|
|
1722
|
+
"target"?: SidebarMenuItemProps['target'];
|
|
1723
|
+
}
|
|
1724
|
+
interface SekiSidebarMenuSub {
|
|
1725
|
+
/**
|
|
1726
|
+
* Initial collapsed state
|
|
1727
|
+
* @type {boolean}
|
|
1728
|
+
* @default false
|
|
1729
|
+
*/
|
|
1730
|
+
"defaultCollapsed"?: boolean;
|
|
1731
|
+
/**
|
|
1732
|
+
* Label for the submenu (shown when expanded)
|
|
1733
|
+
* @type {string}
|
|
1734
|
+
*/
|
|
1735
|
+
"label"?: SidebarMenuSubProps['label'];
|
|
1736
|
+
/**
|
|
1737
|
+
* Event fired when collapsed state changes
|
|
1738
|
+
*/
|
|
1739
|
+
"onCollapsedChange"?: (event: SekiSidebarMenuSubCustomEvent<CollapsedChangeDetail>) => void;
|
|
1740
|
+
}
|
|
1741
|
+
interface SekiSidebarTrigger {
|
|
1742
|
+
/**
|
|
1743
|
+
* Accessibility label for the button
|
|
1744
|
+
* @type {string}
|
|
1745
|
+
* @default 'Toggle sidebar'
|
|
1746
|
+
*/
|
|
1747
|
+
"ariaLabel"?: SidebarTriggerProps['ariaLabel'];
|
|
1748
|
+
/**
|
|
1749
|
+
* Icon name or SVG path (optional)
|
|
1750
|
+
* @type {string}
|
|
1751
|
+
*/
|
|
1752
|
+
"icon"?: SidebarTriggerProps['icon'];
|
|
1753
|
+
}
|
|
1264
1754
|
/**
|
|
1265
1755
|
* @component seki-skeleton
|
|
1266
1756
|
* @description A loading placeholder component that displays an animated skeleton while content is loading
|
|
@@ -1390,6 +1880,15 @@ declare namespace LocalJSX {
|
|
|
1390
1880
|
"seki-select-group": SekiSelectGroup;
|
|
1391
1881
|
"seki-select-option": SekiSelectOption;
|
|
1392
1882
|
"seki-select-trigger": SekiSelectTrigger;
|
|
1883
|
+
"seki-sidebar": SekiSidebar;
|
|
1884
|
+
"seki-sidebar-content": SekiSidebarContent;
|
|
1885
|
+
"seki-sidebar-footer": SekiSidebarFooter;
|
|
1886
|
+
"seki-sidebar-group": SekiSidebarGroup;
|
|
1887
|
+
"seki-sidebar-header": SekiSidebarHeader;
|
|
1888
|
+
"seki-sidebar-menu": SekiSidebarMenu;
|
|
1889
|
+
"seki-sidebar-menu-item": SekiSidebarMenuItem;
|
|
1890
|
+
"seki-sidebar-menu-sub": SekiSidebarMenuSub;
|
|
1891
|
+
"seki-sidebar-trigger": SekiSidebarTrigger;
|
|
1393
1892
|
"seki-skeleton": SekiSkeleton;
|
|
1394
1893
|
"seki-switch": SekiSwitch;
|
|
1395
1894
|
"seki-tooltip": SekiTooltip;
|
|
@@ -1474,6 +1973,15 @@ declare module "@stencil/core" {
|
|
|
1474
1973
|
"seki-select-group": LocalJSX.SekiSelectGroup & JSXBase.HTMLAttributes<HTMLSekiSelectGroupElement>;
|
|
1475
1974
|
"seki-select-option": LocalJSX.SekiSelectOption & JSXBase.HTMLAttributes<HTMLSekiSelectOptionElement>;
|
|
1476
1975
|
"seki-select-trigger": LocalJSX.SekiSelectTrigger & JSXBase.HTMLAttributes<HTMLSekiSelectTriggerElement>;
|
|
1976
|
+
"seki-sidebar": LocalJSX.SekiSidebar & JSXBase.HTMLAttributes<HTMLSekiSidebarElement>;
|
|
1977
|
+
"seki-sidebar-content": LocalJSX.SekiSidebarContent & JSXBase.HTMLAttributes<HTMLSekiSidebarContentElement>;
|
|
1978
|
+
"seki-sidebar-footer": LocalJSX.SekiSidebarFooter & JSXBase.HTMLAttributes<HTMLSekiSidebarFooterElement>;
|
|
1979
|
+
"seki-sidebar-group": LocalJSX.SekiSidebarGroup & JSXBase.HTMLAttributes<HTMLSekiSidebarGroupElement>;
|
|
1980
|
+
"seki-sidebar-header": LocalJSX.SekiSidebarHeader & JSXBase.HTMLAttributes<HTMLSekiSidebarHeaderElement>;
|
|
1981
|
+
"seki-sidebar-menu": LocalJSX.SekiSidebarMenu & JSXBase.HTMLAttributes<HTMLSekiSidebarMenuElement>;
|
|
1982
|
+
"seki-sidebar-menu-item": LocalJSX.SekiSidebarMenuItem & JSXBase.HTMLAttributes<HTMLSekiSidebarMenuItemElement>;
|
|
1983
|
+
"seki-sidebar-menu-sub": LocalJSX.SekiSidebarMenuSub & JSXBase.HTMLAttributes<HTMLSekiSidebarMenuSubElement>;
|
|
1984
|
+
"seki-sidebar-trigger": LocalJSX.SekiSidebarTrigger & JSXBase.HTMLAttributes<HTMLSekiSidebarTriggerElement>;
|
|
1477
1985
|
/**
|
|
1478
1986
|
* @component seki-skeleton
|
|
1479
1987
|
* @description A loading placeholder component that displays an animated skeleton while content is loading
|
package/dist/types/index.d.ts
CHANGED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Focus Management Service
|
|
3
|
+
* Provides utilities for focus management, focus traps, and focus restoration
|
|
4
|
+
*/
|
|
5
|
+
export interface FocusTrapOptions {
|
|
6
|
+
initialFocus?: HTMLElement;
|
|
7
|
+
restoreFocus?: boolean;
|
|
8
|
+
allowOutsideClick?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* FocusService - Centralized focus management
|
|
12
|
+
* Provides:
|
|
13
|
+
* - Focus trap implementation
|
|
14
|
+
* - Focus restoration
|
|
15
|
+
* - Focusable element detection
|
|
16
|
+
* - Focus utilities for accessibility
|
|
17
|
+
*/
|
|
18
|
+
export declare class FocusService {
|
|
19
|
+
private focusTrapStack;
|
|
20
|
+
private previouslyFocusedElement;
|
|
21
|
+
/**
|
|
22
|
+
* Get all focusable elements within a container
|
|
23
|
+
* Includes buttons, links, inputs, textareas, selects, and elements with tabindex
|
|
24
|
+
*/
|
|
25
|
+
getFocusableElements(container?: HTMLElement | Document): HTMLElement[];
|
|
26
|
+
/**
|
|
27
|
+
* Check if an element is focusable
|
|
28
|
+
*/
|
|
29
|
+
isFocusable(element: HTMLElement): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Set focus to an element with optional callbacks
|
|
32
|
+
*/
|
|
33
|
+
setFocus(element: HTMLElement | null, options?: {
|
|
34
|
+
preventScroll?: boolean;
|
|
35
|
+
}): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Trap focus within a container (keyboard navigation stays within bounds)
|
|
38
|
+
* @param container - The element to trap focus within
|
|
39
|
+
* @param options - Focus trap options
|
|
40
|
+
*/
|
|
41
|
+
createFocusTrap(container: HTMLElement, options?: FocusTrapOptions): void;
|
|
42
|
+
/**
|
|
43
|
+
* Release focus trap from a container
|
|
44
|
+
*/
|
|
45
|
+
releaseFocusTrap(container: HTMLElement, restoreFocus?: boolean): void;
|
|
46
|
+
/**
|
|
47
|
+
* Get the first focusable element in a container
|
|
48
|
+
*/
|
|
49
|
+
getFirstFocusable(container?: HTMLElement | Document): HTMLElement | null;
|
|
50
|
+
/**
|
|
51
|
+
* Get the last focusable element in a container
|
|
52
|
+
*/
|
|
53
|
+
getLastFocusable(container?: HTMLElement | Document): HTMLElement | null;
|
|
54
|
+
/**
|
|
55
|
+
* Move focus to the next focusable element
|
|
56
|
+
*/
|
|
57
|
+
focusNext(container?: HTMLElement | Document): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Move focus to the previous focusable element
|
|
60
|
+
*/
|
|
61
|
+
focusPrevious(container?: HTMLElement | Document): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Clear all focus traps
|
|
64
|
+
*/
|
|
65
|
+
clearFocusTraps(): void;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get the singleton FocusService instance
|
|
69
|
+
*/
|
|
70
|
+
export declare function getFocusService(): FocusService;
|
|
71
|
+
/**
|
|
72
|
+
* Create a new isolated FocusService instance
|
|
73
|
+
*/
|
|
74
|
+
export declare function createFocusService(): FocusService;
|