@strands.gg/accui 2.17.66 → 2.19.1

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.
Files changed (90) hide show
  1. package/dist/StrandsUIPlugin-5AOCDOcM.cjs.js +143 -0
  2. package/dist/StrandsUIPlugin-B0HUf-tm.es.js +20437 -0
  3. package/dist/StrandsUIPlugin-B98LOdrQ.cjs.js +143 -0
  4. package/dist/StrandsUIPlugin-BbeOau1G.cjs.js +143 -0
  5. package/dist/StrandsUIPlugin-BcARSDQF.cjs.js +143 -0
  6. package/dist/StrandsUIPlugin-CCRrewS9.es.js +20587 -0
  7. package/dist/StrandsUIPlugin-CMTkJfQt.cjs.js +143 -0
  8. package/dist/StrandsUIPlugin-CQONZWOX.es.js +20714 -0
  9. package/dist/StrandsUIPlugin-CQk56uZ2.es.js +19805 -0
  10. package/dist/StrandsUIPlugin-Cgmu6cTA.es.js +20440 -0
  11. package/dist/StrandsUIPlugin-CpBH0QFc.cjs.js +272 -0
  12. package/dist/StrandsUIPlugin-Ct91SLTy.es.js +20587 -0
  13. package/dist/StrandsUIPlugin-DHhawL07.cjs.js +143 -0
  14. package/dist/StrandsUIPlugin-DY7VCw7G.es.js +20437 -0
  15. package/dist/StrandsUIPlugin-Tpi8IoJc.cjs.js +143 -0
  16. package/dist/StrandsUIPlugin-lRGsfjf5.es.js +20440 -0
  17. package/dist/accui.css +1 -1
  18. package/dist/index.cjs.js +5 -5
  19. package/dist/index.es.js +5841 -5646
  20. package/dist/nuxt/module.cjs.js +6 -6
  21. package/dist/nuxt/module.es.js +22 -21
  22. package/dist/nuxt/runtime/composables/useStrandsAuth.cjs.js +1 -1
  23. package/dist/nuxt/runtime/composables/useStrandsAuth.d.ts +7 -1
  24. package/dist/nuxt/runtime/composables/useStrandsAuth.es.js +24 -19
  25. package/dist/nuxt/runtime/plugin.client.cjs.js +1 -1
  26. package/dist/nuxt/runtime/plugin.client.es.js +9 -12
  27. package/dist/nuxt/runtime/plugin.server.cjs.js +1 -1
  28. package/dist/nuxt/runtime/plugin.server.es.js +1 -1
  29. package/dist/types/composables.d.ts +6 -2
  30. package/dist/types/index.d.ts +21 -0
  31. package/dist/useDarkMode-Cew-NWjS.cjs.js +1 -0
  32. package/dist/useDarkMode-CvinMR9O.es.js +102 -0
  33. package/dist/useDarkMode-OZ_A8-6H.es.js +102 -0
  34. package/dist/useStrandsAuth-B7Fqq-Qp.es.js +717 -0
  35. package/dist/useStrandsAuth-BDTnh_c_.es.js +702 -0
  36. package/dist/useStrandsAuth-CEQ4UsKz.cjs.js +1 -0
  37. package/dist/useStrandsAuth-CboHAkjH.es.js +717 -0
  38. package/dist/useStrandsAuth-CetpoBNk.cjs.js +1 -0
  39. package/dist/useStrandsAuth-D2HvStMt.es.js +787 -0
  40. package/dist/useStrandsAuth-DSLFMDTj.es.js +717 -0
  41. package/dist/useStrandsAuth-Db5ZGvxL.cjs.js +1 -0
  42. package/dist/useStrandsAuth-Dz3Grglt.cjs.js +1 -0
  43. package/dist/useStrandsAuth-FVoni53L.es.js +666 -0
  44. package/dist/useStrandsAuth-Yp5OpRHU.cjs.js +1 -0
  45. package/dist/useStrandsConfig-48gZP9xV.es.js +209 -0
  46. package/dist/useStrandsConfig-B8h5hDy7.es.js +219 -0
  47. package/dist/useStrandsConfig-BGJg1LlC.es.js +213 -0
  48. package/dist/useStrandsConfig-BY_IIwK8.cjs.js +1 -0
  49. package/dist/useStrandsConfig-DRGldIzy.cjs.js +1 -0
  50. package/dist/vite.cjs.js +1 -1
  51. package/dist/vite.es.js +2 -2
  52. package/dist/vue/components/SignedIn.vue.d.ts +3 -1
  53. package/dist/vue/components/index.d.ts +1 -1
  54. package/dist/vue/composables/useKnownAccounts.d.ts +33 -0
  55. package/dist/vue/index.d.ts +1 -0
  56. package/dist/vue/ui/UiBunnyFontPicker.vue.d.ts +23 -0
  57. package/dist/vue/ui/UiCheckboxGroup.vue.d.ts +1 -0
  58. package/dist/vue/ui/UiInput/UiInput.Select.vue.d.ts +806 -0
  59. package/dist/vue/ui/UiMegaMenu.vue.d.ts +28 -1
  60. package/dist/vue/ui/UiRadioGroup.vue.d.ts +1 -0
  61. package/dist/vue/ui/UiTabs.vue.d.ts +2 -0
  62. package/dist/vue/ui/VirtualList.vue.d.ts +36 -0
  63. package/dist/webcomponents/define-element.d.ts +1 -1
  64. package/dist/webcomponents/entries/sl-alert.d.ts +2 -0
  65. package/dist/webcomponents/entries/sl-avatar-editor.d.ts +2 -0
  66. package/dist/webcomponents/entries/sl-button.d.ts +2 -0
  67. package/dist/webcomponents/entries/sl-card.d.ts +2 -0
  68. package/dist/webcomponents/entries/sl-checkbox-group.d.ts +2 -0
  69. package/dist/webcomponents/entries/sl-color-picker.d.ts +2 -0
  70. package/dist/webcomponents/entries/sl-datetime-picker.d.ts +2 -0
  71. package/dist/webcomponents/entries/sl-divider.d.ts +2 -0
  72. package/dist/webcomponents/entries/sl-font-picker.d.ts +2 -0
  73. package/dist/webcomponents/entries/sl-hero.d.ts +2 -0
  74. package/dist/webcomponents/entries/sl-input.d.ts +2 -0
  75. package/dist/webcomponents/entries/sl-level-progress.d.ts +2 -0
  76. package/dist/webcomponents/entries/sl-link.d.ts +2 -0
  77. package/dist/webcomponents/entries/sl-loader-spinner.d.ts +2 -0
  78. package/dist/webcomponents/entries/sl-mega-menu.d.ts +5 -0
  79. package/dist/webcomponents/entries/sl-modal.d.ts +2 -0
  80. package/dist/webcomponents/entries/sl-pill.d.ts +2 -0
  81. package/dist/webcomponents/entries/sl-radio-group.d.ts +2 -0
  82. package/dist/webcomponents/entries/sl-slider.d.ts +2 -0
  83. package/dist/webcomponents/entries/sl-table.d.ts +2 -0
  84. package/dist/webcomponents/entries/sl-tabs.d.ts +2 -0
  85. package/dist/webcomponents/entries/sl-theme-toggle.d.ts +2 -0
  86. package/dist/webcomponents/entries/sl-toggle.d.ts +2 -0
  87. package/dist/webcomponents/entries/sl-tooltip.d.ts +2 -0
  88. package/dist/webcomponents/loader.d.ts +3 -3
  89. package/dist/webcomponents/registry.d.ts +1 -1
  90. package/package.json +16 -16
@@ -1,3 +1,24 @@
1
+ export interface MegaMenuPanelLink {
2
+ label: string;
3
+ href?: string;
4
+ description?: string;
5
+ }
6
+ export interface MegaMenuPanelGroup {
7
+ title?: string;
8
+ links: MegaMenuPanelLink[];
9
+ }
10
+ export interface MegaMenuItemConfig {
11
+ label: string;
12
+ href?: string;
13
+ active?: boolean;
14
+ disabled?: boolean;
15
+ panel?: {
16
+ width?: 'auto' | 'full' | string;
17
+ columns?: 1 | 2 | 3 | 4;
18
+ gap?: 'sm' | 'md' | 'lg';
19
+ groups: MegaMenuPanelGroup[];
20
+ };
21
+ }
1
22
  export interface UiMegaMenuProps {
2
23
  triggerMode?: 'hover' | 'click';
3
24
  closeDelay?: number;
@@ -7,6 +28,7 @@ export interface UiMegaMenuProps {
7
28
  maxWidth?: string;
8
29
  variant?: 'default' | 'transparent';
9
30
  mobileBreakpoint?: number;
31
+ items?: MegaMenuItemConfig[];
10
32
  }
11
33
  declare function __VLS_template(): {
12
34
  attrs: Partial<{}>;
@@ -26,9 +48,14 @@ declare function __VLS_template(): {
26
48
  rootEl: HTMLElement;
27
49
  };
28
50
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
29
- declare const __VLS_component: import('vue').DefineComponent<UiMegaMenuProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<UiMegaMenuProps> & Readonly<{}>, {
51
+ declare const __VLS_component: import('vue').DefineComponent<UiMegaMenuProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
52
+ navigate: (link: MegaMenuPanelLink) => any;
53
+ }, string, import('vue').PublicProps, Readonly<UiMegaMenuProps> & Readonly<{
54
+ onNavigate?: (link: MegaMenuPanelLink) => any;
55
+ }>, {
30
56
  variant: "default" | "transparent";
31
57
  maxWidth: string;
58
+ items: MegaMenuItemConfig[];
32
59
  sticky: boolean;
33
60
  triggerMode: "hover" | "click";
34
61
  closeDelay: number;
@@ -35,6 +35,7 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
35
35
  variant: "default" | "card";
36
36
  size: "sm" | "md" | "lg";
37
37
  orientation: "horizontal" | "vertical";
38
+ options: RadioOption[];
38
39
  fieldId: string;
39
40
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
40
41
  export default _default;
@@ -68,11 +68,13 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
68
68
  }>, {
69
69
  variant: "default" | "pills" | "cards" | "minimal";
70
70
  size: "sm" | "md" | "lg";
71
+ modelValue: string;
71
72
  orientation: "horizontal" | "vertical";
72
73
  sticky: {
73
74
  side: "top" | "right" | "bottom" | "left";
74
75
  offset: number;
75
76
  } | null;
77
+ tabs: Tab[];
76
78
  underlineWidth: string;
77
79
  tabWidth: "fill" | "fit";
78
80
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
@@ -0,0 +1,36 @@
1
+ interface Props {
2
+ items: any[];
3
+ itemHeight: number;
4
+ containerHeight: number;
5
+ itemKey?: string | ((item: any) => string | number);
6
+ overscan?: number;
7
+ }
8
+ declare function __VLS_template(): {
9
+ attrs: Partial<{}>;
10
+ slots: {
11
+ default?(_: {
12
+ item: any;
13
+ index: number;
14
+ }): any;
15
+ };
16
+ refs: {
17
+ scrollContainer: HTMLDivElement;
18
+ };
19
+ rootEl: HTMLDivElement;
20
+ };
21
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
22
+ declare const __VLS_component: import('vue').DefineComponent<Props, {
23
+ scrollToItem: (index: number, align?: "start" | "center" | "end") => void;
24
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
25
+ itemKey: string | ((item: any) => string | number);
26
+ overscan: number;
27
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
28
+ scrollContainer: HTMLDivElement;
29
+ }, HTMLDivElement>;
30
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
31
+ export default _default;
32
+ type __VLS_WithTemplateSlots<T, S> = T & {
33
+ new (): {
34
+ $slots: S;
35
+ };
36
+ };
@@ -1,5 +1,5 @@
1
1
  import { Component } from 'vue';
2
- export declare const baseStyles = "\n :host {\n /* Typography */\n --accui-font-sans: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif;\n --accui-font-mono: \"Courier New\", Courier, ui-monospace, SFMono-Regular, \"SF Mono\", Consolas, \"Liberation Mono\", Menlo, monospace;\n\n /* Brand Colors - inherit from document or use defaults */\n --strands-accent: var(--strands-custom-accent, #EA00A8);\n --accui-strands-accent: var(--strands-custom-accent, #EA00A8);\n --accui-strands-50: var(--strands-custom-50, color-mix(in srgb, var(--strands-accent) 10%, white));\n --accui-strands-100: var(--strands-custom-100, color-mix(in srgb, var(--strands-accent) 20%, white));\n --accui-strands-200: var(--strands-custom-200, color-mix(in srgb, var(--strands-accent) 30%, white));\n --accui-strands-300: var(--strands-custom-300, color-mix(in srgb, var(--strands-accent) 40%, white));\n --accui-strands-400: var(--strands-custom-400, color-mix(in srgb, var(--strands-accent) 70%, white));\n --accui-strands-500: var(--strands-custom-500, var(--strands-accent));\n --accui-strands-600: var(--strands-custom-600, color-mix(in srgb, var(--strands-accent) 85%, black));\n --accui-strands-700: var(--strands-custom-700, color-mix(in srgb, var(--strands-accent) 70%, black));\n --accui-strands-800: var(--strands-custom-800, color-mix(in srgb, var(--strands-accent) 55%, black));\n --accui-strands-900: var(--strands-custom-900, color-mix(in srgb, var(--strands-accent) 40%, black));\n --accui-strands-950: var(--strands-custom-950, color-mix(in srgb, var(--strands-accent) 25%, black));\n\n /* Neutral Colors */\n --accui-neutral-50: #fafafa;\n --accui-neutral-100: #f5f5f5;\n --accui-neutral-200: #e5e5e5;\n --accui-neutral-300: #d4d4d4;\n --accui-neutral-400: #a3a3a3;\n --accui-neutral-500: #737373;\n --accui-neutral-600: #525252;\n --accui-neutral-700: #404040;\n --accui-neutral-800: #262626;\n --accui-neutral-900: #171717;\n --accui-neutral-950: #0a0a0a;\n\n /* Gray Colors */\n --accui-gray-50: #f9fafb;\n --accui-gray-100: #f3f4f6;\n --accui-gray-200: #e5e7eb;\n --accui-gray-300: #d1d5db;\n --accui-gray-400: #9ca3af;\n --accui-gray-500: #6b7280;\n --accui-gray-600: #4b5563;\n --accui-gray-700: #374151;\n --accui-gray-800: #1f2937;\n --accui-gray-900: #111827;\n --accui-gray-950: #030712;\n\n /* Status Colors */\n --accui-red-500: #ef4444;\n --accui-red-600: #dc2626;\n --accui-green-500: #22c55e;\n --accui-green-600: #16a34a;\n --accui-yellow-500: #f97316;\n --accui-yellow-600: #ea580c;\n\n /* Spacing Scale */\n --accui-space-0: 0;\n --accui-space-1: 0.25rem;\n --accui-space-2: 0.5rem;\n --accui-space-3: 0.75rem;\n --accui-space-4: 1rem;\n --accui-space-5: 1.25rem;\n --accui-space-6: 1.5rem;\n --accui-space-8: 2rem;\n\n /* Border Radius */\n --accui-radius-none: 0;\n --accui-radius-sm: 0.125rem;\n --accui-radius-md: 0.375rem;\n --accui-radius-lg: 0.5rem;\n --accui-radius-xl: 0.75rem;\n --accui-radius-2xl: 1rem;\n --accui-radius-full: 9999px;\n\n /* Transition Timings */\n --accui-transition-fast: 0.15s;\n --accui-transition-duration: 0.25s;\n --animation-duration: 0.25s;\n\n /* Theme Colors (Light Mode Default) */\n --accui-bg-primary: #ffffff;\n --accui-bg-secondary: #f9fafb;\n --accui-bg-tertiary: #f3f4f6;\n --accui-text-primary: #111827;\n --accui-text-secondary: #6b7280;\n --accui-text-tertiary: #9ca3af;\n --accui-border-primary: #e5e7eb;\n --accui-border-secondary: #d1d5db;\n --accui-border-tertiary: #9ca3af;\n\n /* Button Variables */\n --accui-button-primary-background: var(--accui-strands-500);\n --accui-button-primary-background-hover: var(--accui-strands-600);\n --accui-button-primary-text: #ffffff;\n --accui-button-primary-border: transparent;\n\n --accui-button-secondary-background: #f0f0f0;\n --accui-button-secondary-background-hover: #e2e2e2;\n --accui-button-secondary-text: #000000;\n --accui-button-secondary-border: #f0f0f0;\n\n --accui-button-ghost-background: transparent;\n --accui-button-ghost-background-hover: var(--accui-bg-secondary);\n --accui-button-ghost-text: var(--accui-text-primary);\n --accui-button-ghost-border: transparent;\n\n --accui-button-outline-background: transparent;\n --accui-button-outline-background-hover: var(--accui-strands-50);\n --accui-button-outline-text: var(--accui-strands-500);\n --accui-button-outline-border: var(--accui-strands-500);\n\n /* Input Variables */\n --accui-input-background: var(--accui-bg-primary);\n --accui-input-background-focus: var(--accui-bg-primary);\n --accui-input-text: var(--accui-text-primary);\n --accui-input-placeholder: var(--accui-text-tertiary);\n --accui-input-border: var(--accui-border-primary);\n --accui-input-border-focus: var(--strands-accent, #EA00A8);\n --accui-input-shadow-focus: 0 0 0 3px color-mix(in srgb, var(--strands-accent, #EA00A8) 10%, transparent);\n\n /* Card Variables */\n --accui-card-background: var(--accui-bg-primary);\n --accui-card-border: var(--accui-border-primary);\n --accui-card-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1);\n\n /* Alert Variables */\n --accui-alert-success-background: #f0fdf4;\n --accui-alert-success-text: #15803d;\n --accui-alert-success-border: #bbf7d0;\n\n --accui-alert-error-background: #fef2f2;\n --accui-alert-error-text: #dc2626;\n --accui-alert-error-border: #fecaca;\n\n --accui-alert-warning-background: #fefce8;\n --accui-alert-warning-text: #ca8a04;\n --accui-alert-warning-border: #fde047;\n\n --accui-alert-info-background: #eff6ff;\n --accui-alert-info-text: #2563eb;\n --accui-alert-info-border: #bfdbfe;\n\n /* Toggle Variables */\n --accui-toggle-background: var(--accui-border-secondary);\n --accui-toggle-background-active: var(--accui-strands-500);\n --accui-toggle-thumb: #ffffff;\n\n /* Tabs Variables */\n --accui-tabs-background: var(--accui-bg-secondary);\n --accui-tabs-border: var(--accui-border-primary);\n --accui-tabs-button-text: var(--accui-text-secondary);\n --accui-tabs-button-text-active: var(--accui-text-primary);\n --accui-tabs-button-background: var(--accui-bg-primary);\n --accui-tabs-button-background-hover: var(--accui-bg-secondary);\n --accui-tabs-indicator: var(--accui-strands-500);\n\n /* Divider Variables */\n --accui-divider-color: var(--accui-border-primary);\n --accui-divider-text: var(--accui-text-secondary);\n\n /* Display as inline-block by default */\n display: inline-block;\n }\n\n /* Dark mode support - detect from document */\n :host-context([data-theme=\"dark\"]) {\n --accui-bg-primary: #0f172a;\n --accui-bg-secondary: #1e293b;\n --accui-bg-tertiary: #334155;\n --accui-text-primary: #f8fafc;\n --accui-text-secondary: #cbd5e1;\n --accui-text-tertiary: #94a3b8;\n --accui-border-primary: #334155;\n --accui-border-secondary: #475569;\n --accui-border-tertiary: #64748b;\n\n --accui-button-secondary-background: var(--accui-bg-secondary);\n --accui-button-secondary-background-hover: var(--accui-bg-tertiary);\n --accui-button-secondary-text: var(--accui-text-primary);\n --accui-button-secondary-border: var(--accui-bg-secondary);\n\n --accui-button-ghost-background-hover: var(--accui-bg-tertiary);\n\n --accui-button-outline-background-hover: var(--accui-strands-950);\n --accui-button-outline-text: var(--accui-strands-400);\n --accui-button-outline-border: var(--accui-strands-400);\n\n --accui-alert-success-background: #0f2a1a;\n --accui-alert-success-text: #4ade80;\n --accui-alert-success-border: #16a34a;\n\n --accui-alert-error-background: #2a0f0f;\n --accui-alert-error-text: #f87171;\n --accui-alert-error-border: #dc2626;\n\n --accui-alert-warning-background: #2a2508;\n --accui-alert-warning-text: #fbbf24;\n --accui-alert-warning-border: #eab308;\n\n --accui-alert-info-background: #0f1a2a;\n --accui-alert-info-text: #60a5fa;\n --accui-alert-info-border: #3b82f6;\n\n --accui-toggle-background: var(--accui-border-tertiary);\n\n --accui-tabs-background: var(--accui-bg-tertiary);\n --accui-tabs-button-background: var(--accui-bg-secondary);\n --accui-tabs-button-background-hover: var(--accui-bg-primary);\n }\n\n /* Base reset for Shadow DOM content */\n *, *::before, *::after {\n box-sizing: border-box;\n }\n";
2
+ export declare const baseStyles = "\n :host {\n /* Typography */\n --accui-font-sans: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif;\n --accui-font-mono: \"Courier New\", Courier, ui-monospace, SFMono-Regular, \"SF Mono\", Consolas, \"Liberation Mono\", Menlo, monospace;\n\n /* Brand Colors - inherit from document or use defaults */\n --strands-accent: var(--strands-custom-accent, #EA00A8);\n --accui-strands-accent: var(--strands-custom-accent, #EA00A8);\n --accui-strands-50: var(--strands-custom-50, color-mix(in srgb, var(--strands-accent) 10%, white));\n --accui-strands-100: var(--strands-custom-100, color-mix(in srgb, var(--strands-accent) 20%, white));\n --accui-strands-200: var(--strands-custom-200, color-mix(in srgb, var(--strands-accent) 30%, white));\n --accui-strands-300: var(--strands-custom-300, color-mix(in srgb, var(--strands-accent) 40%, white));\n --accui-strands-400: var(--strands-custom-400, color-mix(in srgb, var(--strands-accent) 70%, white));\n --accui-strands-500: var(--strands-custom-500, var(--strands-accent));\n --accui-strands-600: var(--strands-custom-600, color-mix(in srgb, var(--strands-accent) 85%, black));\n --accui-strands-700: var(--strands-custom-700, color-mix(in srgb, var(--strands-accent) 70%, black));\n --accui-strands-800: var(--strands-custom-800, color-mix(in srgb, var(--strands-accent) 55%, black));\n --accui-strands-900: var(--strands-custom-900, color-mix(in srgb, var(--strands-accent) 40%, black));\n --accui-strands-950: var(--strands-custom-950, color-mix(in srgb, var(--strands-accent) 25%, black));\n\n /* Neutral Colors */\n --accui-neutral-50: #fafafa;\n --accui-neutral-100: #f5f5f5;\n --accui-neutral-200: #e5e5e5;\n --accui-neutral-300: #d4d4d4;\n --accui-neutral-400: #a3a3a3;\n --accui-neutral-500: #737373;\n --accui-neutral-600: #525252;\n --accui-neutral-700: #404040;\n --accui-neutral-800: #262626;\n --accui-neutral-900: #171717;\n --accui-neutral-950: #0a0a0a;\n\n /* Gray Colors */\n --accui-gray-50: #f9fafb;\n --accui-gray-100: #f3f4f6;\n --accui-gray-200: #e5e7eb;\n --accui-gray-300: #d1d5db;\n --accui-gray-400: #9ca3af;\n --accui-gray-500: #6b7280;\n --accui-gray-600: #4b5563;\n --accui-gray-700: #374151;\n --accui-gray-800: #1f2937;\n --accui-gray-900: #111827;\n --accui-gray-950: #030712;\n\n /* Status Colors */\n --accui-red-500: #ef4444;\n --accui-red-600: #dc2626;\n --accui-green-500: #22c55e;\n --accui-green-600: #16a34a;\n --accui-yellow-500: #f97316;\n --accui-yellow-600: #ea580c;\n\n /* Spacing Scale */\n --accui-space-0: 0;\n --accui-space-1: 0.25rem;\n --accui-space-2: 0.5rem;\n --accui-space-3: 0.75rem;\n --accui-space-4: 1rem;\n --accui-space-5: 1.25rem;\n --accui-space-6: 1.5rem;\n --accui-space-8: 2rem;\n\n /* Border Radius */\n --accui-radius-none: 0;\n --accui-radius-sm: 0.125rem;\n --accui-radius-md: 0.375rem;\n --accui-radius-lg: 0.5rem;\n --accui-radius-xl: 0.75rem;\n --accui-radius-2xl: 1rem;\n --accui-radius-full: 9999px;\n\n /* Transition Timings */\n --accui-transition-fast: 0.15s;\n --accui-transition-duration: 0.25s;\n --animation-duration: 0.25s;\n\n /* Theme Colors (Light Mode Default) */\n --accui-bg-primary: #ffffff;\n --accui-bg-secondary: #f9fafb;\n --accui-bg-tertiary: #f3f4f6;\n --accui-text-primary: #111827;\n --accui-text-secondary: #6b7280;\n --accui-text-tertiary: #9ca3af;\n --accui-border-primary: #e5e7eb;\n --accui-border-secondary: #d1d5db;\n --accui-border-tertiary: #9ca3af;\n\n /* Button Variables */\n --accui-button-primary-background: var(--accui-strands-500);\n --accui-button-primary-background-hover: var(--accui-strands-600);\n --accui-button-primary-text: #ffffff;\n --accui-button-primary-border: transparent;\n\n --accui-button-secondary-background: #f0f0f0;\n --accui-button-secondary-background-hover: #e2e2e2;\n --accui-button-secondary-text: #000000;\n --accui-button-secondary-border: #f0f0f0;\n\n --accui-button-ghost-background: transparent;\n --accui-button-ghost-background-hover: var(--accui-bg-secondary);\n --accui-button-ghost-text: var(--accui-text-primary);\n --accui-button-ghost-border: transparent;\n\n --accui-button-outline-background: transparent;\n --accui-button-outline-background-hover: var(--accui-strands-50);\n --accui-button-outline-text: var(--accui-strands-500);\n --accui-button-outline-border: var(--accui-strands-500);\n\n /* Input Variables */\n --accui-input-background: var(--accui-bg-primary);\n --accui-input-background-focus: var(--accui-bg-primary);\n --accui-input-text: var(--accui-text-primary);\n --accui-input-placeholder: var(--accui-text-tertiary);\n --accui-input-border: var(--accui-border-primary);\n --accui-input-border-focus: var(--strands-accent, #EA00A8);\n --accui-input-shadow-focus: 0 0 0 3px color-mix(in srgb, var(--strands-accent, #EA00A8) 10%, transparent);\n\n /* Card Variables */\n --accui-card-background: var(--accui-bg-primary);\n --accui-card-border: var(--accui-border-primary);\n --accui-card-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1);\n\n /* Alert Variables */\n --accui-alert-success-background: #f0fdf4;\n --accui-alert-success-text: #15803d;\n --accui-alert-success-border: #bbf7d0;\n\n --accui-alert-error-background: #fef2f2;\n --accui-alert-error-text: #dc2626;\n --accui-alert-error-border: #fecaca;\n\n --accui-alert-warning-background: #fefce8;\n --accui-alert-warning-text: #ca8a04;\n --accui-alert-warning-border: #fde047;\n\n --accui-alert-info-background: #eff6ff;\n --accui-alert-info-text: #2563eb;\n --accui-alert-info-border: #bfdbfe;\n\n /* Toggle Variables */\n --accui-toggle-background: var(--accui-border-secondary);\n --accui-toggle-background-active: var(--accui-strands-500);\n --accui-toggle-thumb: #ffffff;\n\n /* Tabs Variables */\n --accui-tabs-background: var(--accui-bg-secondary);\n --accui-tabs-border: var(--accui-border-primary);\n --accui-tabs-button-text: var(--accui-text-secondary);\n --accui-tabs-button-text-active: var(--accui-text-primary);\n --accui-tabs-button-background: var(--accui-bg-primary);\n --accui-tabs-button-background-hover: var(--accui-bg-secondary);\n --accui-tabs-indicator: var(--accui-strands-500);\n\n /* Divider Variables */\n --accui-divider-color: var(--accui-border-primary);\n --accui-divider-text: var(--accui-text-secondary);\n\n /* Modal Variables */\n --accui-modal-background: var(--accui-bg-primary);\n --accui-modal-overlay: rgba(0, 0, 0, 0.5);\n --accui-modal-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n\n /* Table Variables */\n --accui-table-background: var(--accui-bg-primary);\n --accui-table-header-background: var(--accui-bg-secondary);\n --accui-table-header-text: var(--accui-text-primary);\n --accui-table-row-hover: var(--accui-bg-secondary);\n --accui-table-border: var(--accui-border-primary);\n --accui-table-cell-text: var(--accui-text-primary);\n\n /* ColorPicker Variables */\n --accui-colorpicker-background: var(--accui-bg-primary);\n --accui-colorpicker-border: var(--accui-border-primary);\n --accui-colorpicker-text: var(--accui-text-primary);\n --accui-colorpicker-input-background: var(--accui-bg-secondary);\n --accui-colorpicker-button-hover: var(--accui-bg-secondary);\n --accui-colorpicker-contrast-background: var(--accui-bg-secondary);\n\n /* AvatarEditor Variables */\n --accui-avatar-background: var(--accui-bg-primary);\n --accui-avatar-border: var(--accui-border-primary);\n --accui-avatar-button-background: var(--accui-bg-secondary);\n --accui-avatar-button-hover: var(--accui-bg-tertiary);\n --accui-avatar-text: var(--accui-text-primary);\n\n /* Display as inline-block by default */\n display: inline-block;\n }\n\n /* Dark mode support - detect from document */\n :host-context([data-theme=\"dark\"]) {\n --accui-bg-primary: #0f172a;\n --accui-bg-secondary: #1e293b;\n --accui-bg-tertiary: #334155;\n --accui-text-primary: #f8fafc;\n --accui-text-secondary: #cbd5e1;\n --accui-text-tertiary: #94a3b8;\n --accui-border-primary: #334155;\n --accui-border-secondary: #475569;\n --accui-border-tertiary: #64748b;\n\n --accui-button-secondary-background: var(--accui-bg-secondary);\n --accui-button-secondary-background-hover: var(--accui-bg-tertiary);\n --accui-button-secondary-text: var(--accui-text-primary);\n --accui-button-secondary-border: var(--accui-bg-secondary);\n\n --accui-button-ghost-background-hover: var(--accui-bg-tertiary);\n\n --accui-button-outline-background-hover: var(--accui-strands-950);\n --accui-button-outline-text: var(--accui-strands-400);\n --accui-button-outline-border: var(--accui-strands-400);\n\n --accui-alert-success-background: #0f2a1a;\n --accui-alert-success-text: #4ade80;\n --accui-alert-success-border: #16a34a;\n\n --accui-alert-error-background: #2a0f0f;\n --accui-alert-error-text: #f87171;\n --accui-alert-error-border: #dc2626;\n\n --accui-alert-warning-background: #2a2508;\n --accui-alert-warning-text: #fbbf24;\n --accui-alert-warning-border: #eab308;\n\n --accui-alert-info-background: #0f1a2a;\n --accui-alert-info-text: #60a5fa;\n --accui-alert-info-border: #3b82f6;\n\n --accui-toggle-background: var(--accui-border-tertiary);\n\n --accui-tabs-background: var(--accui-bg-tertiary);\n --accui-tabs-button-background: var(--accui-bg-secondary);\n --accui-tabs-button-background-hover: var(--accui-bg-primary);\n\n --accui-input-shadow-focus: 0 0 0 3px rgba(234, 0, 168, 0.2);\n --accui-card-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.3);\n\n --accui-modal-background: var(--accui-bg-secondary);\n --accui-modal-overlay: rgba(0, 0, 0, 0.7);\n --accui-modal-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.5);\n\n --accui-table-row-hover: var(--accui-bg-tertiary);\n\n --accui-colorpicker-background: var(--accui-bg-secondary);\n --accui-colorpicker-text: var(--accui-text-primary);\n --accui-colorpicker-input-background: var(--accui-bg-tertiary);\n --accui-colorpicker-button-hover: var(--accui-bg-tertiary);\n --accui-colorpicker-contrast-background: var(--accui-bg-primary);\n\n --accui-avatar-button-background: var(--accui-bg-tertiary);\n }\n\n /* Base reset for Shadow DOM content */\n *, *::before, *::after {\n box-sizing: border-box;\n }\n";
3
3
  /**
4
4
  * Creates and registers a custom element from a Vue component
5
5
  *
@@ -0,0 +1,2 @@
1
+ import { default as UiAlert } from '../../vue/ui/UiAlert.vue';
2
+ export { UiAlert };
@@ -0,0 +1,2 @@
1
+ import { default as UiAvatarEditor } from '../../vue/ui/UiAvatarEditor.vue';
2
+ export { UiAvatarEditor };
@@ -0,0 +1,2 @@
1
+ import { default as UiButton } from '../../vue/ui/UiButton.vue';
2
+ export { UiButton };
@@ -0,0 +1,2 @@
1
+ import { default as UiCard } from '../../vue/ui/UiCard.vue';
2
+ export { UiCard };
@@ -0,0 +1,2 @@
1
+ import { default as UiCheckboxGroup } from '../../vue/ui/UiCheckboxGroup.vue';
2
+ export { UiCheckboxGroup };
@@ -0,0 +1,2 @@
1
+ import { default as UiColorPicker } from '../../vue/ui/UiColorPicker.vue';
2
+ export { UiColorPicker };
@@ -0,0 +1,2 @@
1
+ import { default as UiDateTimePicker } from '../../vue/ui/UiDateTimePicker.vue';
2
+ export { UiDateTimePicker };
@@ -0,0 +1,2 @@
1
+ import { default as UiDivider } from '../../vue/ui/UiDivider.vue';
2
+ export { UiDivider };
@@ -0,0 +1,2 @@
1
+ import { default as UiBunnyFontPicker } from '../../vue/ui/UiBunnyFontPicker.vue';
2
+ export { UiBunnyFontPicker };
@@ -0,0 +1,2 @@
1
+ import { default as UiHero } from '../../vue/ui/UiHero.vue';
2
+ export { UiHero };
@@ -0,0 +1,2 @@
1
+ import { default as UiInput } from '../../vue/ui/UiInput.vue';
2
+ export { UiInput };
@@ -0,0 +1,2 @@
1
+ import { default as UiLevelProgress } from '../../vue/ui/UiLevelProgress.vue';
2
+ export { UiLevelProgress };
@@ -0,0 +1,2 @@
1
+ import { default as UiLink } from '../../vue/ui/UiLink.vue';
2
+ export { UiLink };
@@ -0,0 +1,2 @@
1
+ import { default as UiLoader } from '../../vue/ui/UiLoader.vue';
2
+ export { UiLoader };
@@ -0,0 +1,5 @@
1
+ import { default as UiMegaMenu } from '../../vue/ui/UiMegaMenu.vue';
2
+ export { default as UiMegaMenuItem } from '../../vue/ui/UiMegaMenu/UiMegaMenu.Item.vue';
3
+ export { default as UiMegaMenuPanel } from '../../vue/ui/UiMegaMenu/UiMegaMenu.Panel.vue';
4
+ export { default as UiMegaMenuGroup } from '../../vue/ui/UiMegaMenu/UiMegaMenu.Group.vue';
5
+ export { UiMegaMenu };
@@ -0,0 +1,2 @@
1
+ import { default as UiModal } from '../../vue/ui/UiModal.vue';
2
+ export { UiModal };
@@ -0,0 +1,2 @@
1
+ import { default as UiPill } from '../../vue/ui/UiPill.vue';
2
+ export { UiPill };
@@ -0,0 +1,2 @@
1
+ import { default as UiRadioGroup } from '../../vue/ui/UiRadioGroup.vue';
2
+ export { UiRadioGroup };
@@ -0,0 +1,2 @@
1
+ import { default as UiSlider } from '../../vue/ui/UiSlider.vue';
2
+ export { UiSlider };
@@ -0,0 +1,2 @@
1
+ import { default as UiTable } from '../../vue/ui/UiTable.vue';
2
+ export { UiTable };
@@ -0,0 +1,2 @@
1
+ import { default as UiTabs } from '../../vue/ui/UiTabs.vue';
2
+ export { UiTabs };
@@ -0,0 +1,2 @@
1
+ import { default as UiThemeToggle } from '../../vue/ui/UiThemeToggle.vue';
2
+ export { UiThemeToggle };
@@ -0,0 +1,2 @@
1
+ import { default as UiToggle } from '../../vue/ui/UiToggle.vue';
2
+ export { UiToggle };
@@ -0,0 +1,2 @@
1
+ import { default as UiTooltip } from '../../vue/ui/UiTooltip.vue';
2
+ export { UiTooltip };
@@ -15,14 +15,14 @@ declare function loadComponents(shortNames: string[], onProgress?: (loaded: numb
15
15
  }>;
16
16
  }>;
17
17
  /**
18
- * StrandsLoader Custom Element
18
+ * LumenLoader Custom Element
19
19
  *
20
20
  * Attributes:
21
21
  * - components: Comma-separated list of component names to load
22
22
  * - base-url: Override the base URL for component files
23
23
  * - show-loading: Show a loading indicator whilst components load
24
24
  */
25
- declare class StrandsLoader extends HTMLElement {
25
+ declare class LumenLoader extends HTMLElement {
26
26
  private _connected;
27
27
  private _loadPromise;
28
28
  static get observedAttributes(): string[];
@@ -54,4 +54,4 @@ declare class StrandsLoader extends HTMLElement {
54
54
  */
55
55
  static getComponentInfo(name: string): ComponentInfo | undefined;
56
56
  }
57
- export { StrandsLoader, loadComponent, loadComponents, loadedComponents };
57
+ export { LumenLoader, loadComponent, loadComponents, loadedComponents };
@@ -7,7 +7,7 @@
7
7
  export interface ComponentInfo {
8
8
  /** The custom element tag name */
9
9
  tagName: string;
10
- /** The short name used in the loader (e.g., 'button' for strands-button) */
10
+ /** The short name used in the loader (e.g., 'button' for sl-button) */
11
11
  shortName: string;
12
12
  /** Description of the component */
13
13
  description: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strands.gg/accui",
3
- "version": "2.17.66",
3
+ "version": "2.19.1",
4
4
  "description": "Strands Authentication UI Components",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs.js",
@@ -62,20 +62,6 @@
62
62
  ],
63
63
  "author": "Strands Services Limited",
64
64
  "license": "MIT",
65
- "scripts": {
66
- "build": "vite build",
67
- "build-demo": "vite build --config vite.demo.config.ts",
68
- "build-webcomponents": "vite build --config vite.webcomponents.config.ts",
69
- "serve": "vite",
70
- "serve-demo": "vite --config vite.demo.config.ts",
71
- "serve-webcomponents": "serve -c serve.webcomponents.json -l 3002 dist-webcomponents",
72
- "dev": "vite build --watch",
73
- "preview": "vite preview",
74
- "preview-demo": "vite preview --config vite.demo.config.ts",
75
- "prepare-publish": "npm run build",
76
- "mcp:serve": "npx @modelcontextprotocol/server-filesystem .mcp/docs",
77
- "mcp:validate": "node -e \"console.log('MCP docs validation: ', require('fs').existsSync('.mcp/docs/ui-components.md') ? '✓ Valid' : '✗ Missing')\""
78
- },
79
65
  "dependencies": {
80
66
  "@tiptap/extension-heading": "^3.4.4",
81
67
  "@tiptap/extension-placeholder": "^3.4.4",
@@ -101,5 +87,19 @@
101
87
  },
102
88
  "publishConfig": {
103
89
  "access": "public"
90
+ },
91
+ "scripts": {
92
+ "build": "vite build",
93
+ "build-demo": "vite build --config vite.demo.config.ts",
94
+ "build-webcomponents": "vite build --config vite.webcomponents.config.ts",
95
+ "serve": "vite",
96
+ "serve-demo": "vite --config vite.demo.config.ts",
97
+ "serve-webcomponents": "serve -c serve.webcomponents.json -l 3002 dist-webcomponents",
98
+ "dev": "vite build --watch",
99
+ "preview": "vite preview",
100
+ "preview-demo": "vite preview --config vite.demo.config.ts",
101
+ "prepare-publish": "npm run build",
102
+ "mcp:serve": "npx @modelcontextprotocol/server-filesystem .mcp/docs",
103
+ "mcp:validate": "node -e \"console.log('MCP docs validation: ', require('fs').existsSync('.mcp/docs/ui-components.md') ? '✓ Valid' : '✗ Missing')\""
104
104
  }
105
- }
105
+ }