@ecopages/radiant-ui 0.1.0-beta.3 → 0.1.0-beta.6
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/components/ui/autocomplete/autocomplete.css +135 -0
- package/dist/components/ui/autocomplete/autocomplete.d.ts +21 -0
- package/dist/components/ui/autocomplete/autocomplete.script.d.ts +42 -0
- package/dist/components/ui/autocomplete/index.d.ts +2 -0
- package/dist/components/ui/autocomplete/index.js +2 -0
- package/dist/components/ui/autocomplete/index.js.map +7 -0
- package/dist/components/ui/avatar/avatar.css +58 -0
- package/dist/components/ui/avatar/avatar.d.ts +13 -0
- package/dist/components/ui/avatar/index.d.ts +1 -0
- package/dist/components/ui/avatar/index.js +2 -0
- package/dist/components/ui/avatar/index.js.map +7 -0
- package/dist/components/ui/button-group/button-group.css +16 -0
- package/dist/components/ui/button-group/button-group.d.ts +10 -0
- package/dist/components/ui/button-group/index.d.ts +1 -0
- package/dist/components/ui/button-group/index.js +2 -0
- package/dist/components/ui/button-group/index.js.map +7 -0
- package/dist/components/ui/calendar/calendar.css +318 -0
- package/dist/components/ui/calendar/calendar.d.ts +5 -0
- package/dist/components/ui/calendar/calendar.script.d.ts +89 -0
- package/dist/components/ui/calendar/index.d.ts +2 -0
- package/dist/components/ui/calendar/index.js +2 -0
- package/dist/components/ui/calendar/index.js.map +7 -0
- package/dist/components/ui/chip/chip.css +47 -0
- package/dist/components/ui/chip/chip.d.ts +11 -0
- package/dist/components/ui/chip/index.d.ts +1 -0
- package/dist/components/ui/chip/index.js +2 -0
- package/dist/components/ui/chip/index.js.map +7 -0
- package/dist/components/ui/chip-list/chip-list.css +15 -0
- package/dist/components/ui/chip-list/chip-list.d.ts +10 -0
- package/dist/components/ui/chip-list/index.d.ts +1 -0
- package/dist/components/ui/chip-list/index.js +2 -0
- package/dist/components/ui/chip-list/index.js.map +7 -0
- package/dist/components/ui/combobox/combobox.css +42 -80
- package/dist/components/ui/combobox/combobox.d.ts +12 -20
- package/dist/components/ui/combobox/combobox.script.d.ts +15 -14
- package/dist/components/ui/combobox/index.d.ts +2 -1
- package/dist/components/ui/combobox/index.js +1 -1
- package/dist/components/ui/combobox/index.js.map +4 -4
- package/dist/components/ui/date-field/date-field.css +184 -0
- package/dist/components/ui/date-field/date-field.d.ts +10 -0
- package/dist/components/ui/date-field/date-field.script.d.ts +108 -0
- package/dist/components/ui/date-field/index.d.ts +2 -0
- package/dist/components/ui/date-field/index.js +2 -0
- package/dist/components/ui/date-field/index.js.map +7 -0
- package/dist/components/ui/date-range-picker/date-range-picker.css +194 -0
- package/dist/components/ui/date-range-picker/date-range-picker.d.ts +10 -0
- package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +99 -0
- package/dist/components/ui/date-range-picker/index.d.ts +2 -0
- package/dist/components/ui/date-range-picker/index.js +2 -0
- package/dist/components/ui/date-range-picker/index.js.map +7 -0
- package/dist/components/ui/dialog/dialog.css +1 -1
- package/dist/components/ui/feed/feed.css +169 -5
- package/dist/components/ui/feed/feed.d.ts +54 -11
- package/dist/components/ui/feed/index.d.ts +1 -2
- package/dist/components/ui/feed/index.js +1 -1
- package/dist/components/ui/feed/index.js.map +4 -4
- package/dist/components/ui/field/index.js +1 -1
- package/dist/components/ui/field/index.js.map +3 -3
- package/dist/components/ui/form/form-field.test.d.ts +1 -0
- package/dist/components/ui/form/index.js +1 -1
- package/dist/components/ui/form/index.js.map +3 -3
- package/dist/components/ui/heading/heading.css +107 -0
- package/dist/components/ui/heading/heading.d.ts +30 -0
- package/dist/components/ui/heading/index.d.ts +1 -0
- package/dist/components/ui/heading/index.js +2 -0
- package/dist/components/ui/heading/index.js.map +7 -0
- package/dist/components/ui/headline/headline.css +43 -0
- package/dist/components/ui/headline/headline.d.ts +16 -0
- package/dist/components/ui/headline/index.d.ts +1 -0
- package/dist/components/ui/headline/index.js +2 -0
- package/dist/components/ui/headline/index.js.map +7 -0
- package/dist/components/ui/input/index.js +1 -1
- package/dist/components/ui/input/index.js.map +4 -4
- package/dist/components/ui/input/input.d.ts +8 -1
- package/dist/components/ui/label/index.js +1 -1
- package/dist/components/ui/label/index.js.map +2 -2
- package/dist/components/ui/listbox/index.d.ts +1 -1
- package/dist/components/ui/listbox/index.js +1 -1
- package/dist/components/ui/listbox/index.js.map +4 -4
- package/dist/components/ui/listbox/listbox.css +34 -10
- package/dist/components/ui/listbox/listbox.d.ts +12 -4
- package/dist/components/ui/listbox/listbox.script.d.ts +12 -0
- package/dist/components/ui/menu-button/index.js +1 -1
- package/dist/components/ui/menu-button/index.js.map +4 -4
- package/dist/components/ui/menu-button/menu-button.css +24 -8
- package/dist/components/ui/menu-button/menu-button.script.d.ts +3 -4
- package/dist/components/ui/menubar/index.js +1 -1
- package/dist/components/ui/menubar/index.js.map +4 -4
- package/dist/components/ui/menubar/menubar.css +40 -22
- package/dist/components/ui/menubar/menubar.script.d.ts +6 -1
- package/dist/components/ui/number-field/index.d.ts +2 -0
- package/dist/components/ui/number-field/index.js +2 -0
- package/dist/components/ui/number-field/index.js.map +7 -0
- package/dist/components/ui/number-field/number-field.css +185 -0
- package/dist/components/ui/number-field/number-field.d.ts +43 -0
- package/dist/components/ui/number-field/number-field.script.d.ts +104 -0
- package/dist/components/ui/popover/index.d.ts +4 -0
- package/dist/components/ui/popover/index.js +2 -0
- package/dist/components/ui/popover/index.js.map +7 -0
- package/dist/components/ui/popover/popover.css +132 -0
- package/dist/components/ui/popover/popover.d.ts +15 -0
- package/dist/components/ui/popover/popover.script.d.ts +85 -0
- package/dist/components/ui/select/index.d.ts +3 -0
- package/dist/components/ui/select/index.js +2 -0
- package/dist/components/ui/select/index.js.map +7 -0
- package/dist/components/ui/select/select.css +216 -0
- package/dist/components/ui/select/select.d.ts +54 -0
- package/dist/components/ui/select/select.script.d.ts +106 -0
- package/dist/components/ui/shared/collection-navigation.d.ts +8 -0
- package/dist/components/ui/shared/collection-navigation.test.d.ts +1 -0
- package/dist/components/ui/shared/control-toggle.css +132 -0
- package/dist/components/ui/shared/field-label.d.ts +9 -0
- package/dist/components/ui/shared/floating-position.d.ts +13 -2
- package/dist/components/ui/shared/listbox-popover-behavior.d.ts +47 -0
- package/dist/components/ui/shared/listbox-popover-behavior.test.d.ts +1 -0
- package/dist/components/ui/shared/multi-value.d.ts +4 -0
- package/dist/components/ui/shared/popover-controller.d.ts +35 -0
- package/dist/components/ui/shared/popover-controller.test.d.ts +1 -0
- package/dist/components/ui/shared/popover.css +123 -0
- package/dist/components/ui/shared/portal.d.ts +7 -0
- package/dist/components/ui/shared/portal.test.d.ts +1 -0
- package/dist/components/ui/sidebar/index.js +1 -1
- package/dist/components/ui/sidebar/index.js.map +3 -3
- package/dist/components/ui/slider/index.js +1 -1
- package/dist/components/ui/slider/index.js.map +3 -3
- package/dist/components/ui/slider/slider.script.d.ts +5 -12
- package/dist/components/ui/tag-group/index.d.ts +2 -0
- package/dist/components/ui/tag-group/index.js +2 -0
- package/dist/components/ui/tag-group/index.js.map +7 -0
- package/dist/components/ui/tag-group/tag-group.css +184 -0
- package/dist/components/ui/tag-group/tag-group.d.ts +28 -0
- package/dist/components/ui/tag-group/tag-group.script.d.ts +65 -0
- package/dist/components/ui/textarea/index.js +1 -1
- package/dist/components/ui/textarea/index.js.map +2 -2
- package/dist/components/ui/toc/index.js +1 -1
- package/dist/components/ui/toc/index.js.map +3 -3
- package/dist/components/ui/toc/toc.css +1 -1
- package/dist/components/ui/toc/toc.ssr.test.d.ts +1 -0
- package/dist/components/ui/toc/toc.test.d.ts +1 -0
- package/dist/components/ui/tooltip/index.js +1 -1
- package/dist/components/ui/tooltip/index.js.map +3 -3
- package/dist/index.d.ts +14 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +4 -4
- package/dist/lib/icons/calendar.d.ts +3 -0
- package/dist/lib/icons/chevron-down.d.ts +3 -0
- package/dist/lib/icons/index.d.ts +3 -0
- package/dist/lib/icons/types.d.ts +4 -0
- package/dist/lib/intl/locale.d.ts +3 -0
- package/dist/lib/intl-date/calendar.d.ts +25 -0
- package/dist/lib/intl-date/formatters.d.ts +13 -0
- package/dist/lib/intl-date/index.d.ts +12 -0
- package/dist/lib/intl-date/iso.d.ts +6 -0
- package/dist/lib/intl-date/months.d.ts +12 -0
- package/dist/lib/intl-date/parts.d.ts +15 -0
- package/dist/lib/intl-date/parts.test.d.ts +1 -0
- package/dist/lib/intl-date/segments.d.ts +32 -0
- package/dist/lib/intl-date/segments.test.d.ts +1 -0
- package/dist/lib/intl-date/selection.d.ts +39 -0
- package/dist/lib/intl-date/selection.test.d.ts +1 -0
- package/dist/lib/intl-date/types.d.ts +17 -0
- package/dist/lib/intl-number/format.d.ts +9 -0
- package/dist/lib/intl-number/index.d.ts +2 -0
- package/dist/lib/intl-number/range.d.ts +3 -0
- package/dist/lib/intrinsic.d.ts +13 -0
- package/dist/lib/mask/date-mask.d.ts +29 -0
- package/dist/lib/mask/date-mask.test.d.ts +1 -0
- package/dist/lib/mask/index.d.ts +4 -0
- package/dist/lib/mask/input-mask.d.ts +52 -0
- package/dist/lib/mask/input-mask.test.d.ts +1 -0
- package/dist/lib/text-filter.d.ts +7 -0
- package/dist/lib/text-filter.test.d.ts +1 -0
- package/dist/styles/radiant-ui-core.css +131 -1
- package/dist/styles/radiant-ui.css +142 -1
- package/dist/styles/styles.css +4504 -2395
- package/dist/styles/tailwind.css +142 -1
- package/dist/styles/tokens/typography/default.css +8 -0
- package/package.json +106 -15
- package/dist/components/ui/feed/feed.script.d.ts +0 -22
- package/dist/components/ui/spinbutton/index.d.ts +0 -2
- package/dist/components/ui/spinbutton/index.js +0 -2
- package/dist/components/ui/spinbutton/index.js.map +0 -7
- package/dist/components/ui/spinbutton/spinbutton.css +0 -69
- package/dist/components/ui/spinbutton/spinbutton.d.ts +0 -5
- package/dist/components/ui/spinbutton/spinbutton.script.d.ts +0 -64
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
|
+
@layer properties;
|
|
3
|
+
@layer components {
|
|
4
|
+
.rui-headline {
|
|
5
|
+
margin: 0px;
|
|
6
|
+
--tw-font-weight: var(--font-weight-semibold, var(--weight-semibold));
|
|
7
|
+
font-weight: var(--font-weight-semibold, var(--weight-semibold));
|
|
8
|
+
color: var(--color-on-background, var(--on-background));
|
|
9
|
+
line-height: var(--leading-compact);
|
|
10
|
+
letter-spacing: -0.02em;
|
|
11
|
+
text-wrap: balance;
|
|
12
|
+
}
|
|
13
|
+
.rui-headline--size-sm {
|
|
14
|
+
font-size: var(--text-xl);
|
|
15
|
+
letter-spacing: -0.015em;
|
|
16
|
+
}
|
|
17
|
+
.rui-headline--size-md {
|
|
18
|
+
font-size: var(--text-3xl);
|
|
19
|
+
line-height: 1.2;
|
|
20
|
+
letter-spacing: -0.02em;
|
|
21
|
+
}
|
|
22
|
+
.rui-headline--size-lg {
|
|
23
|
+
font-size: var(--text-4xl);
|
|
24
|
+
line-height: 1.15;
|
|
25
|
+
letter-spacing: -0.025em;
|
|
26
|
+
}
|
|
27
|
+
.rui-headline--size-xl {
|
|
28
|
+
font-size: var(--text-4xl);
|
|
29
|
+
line-height: 1.1;
|
|
30
|
+
letter-spacing: -0.03em;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
@property --tw-font-weight {
|
|
34
|
+
syntax: "*";
|
|
35
|
+
inherits: false;
|
|
36
|
+
}
|
|
37
|
+
@layer properties {
|
|
38
|
+
@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
|
|
39
|
+
*, ::before, ::after, ::backdrop {
|
|
40
|
+
--tw-font-weight: initial;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { JsxHtmlPropsWithChildren } from '@ecopages/jsx';
|
|
2
|
+
import { type IntrinsicTag } from '@/lib/intrinsic';
|
|
3
|
+
export type RuiHeadlineSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
4
|
+
export type RuiHeadlineAs = Extract<IntrinsicTag, 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span'>;
|
|
5
|
+
export type RuiHeadlineProps = JsxHtmlPropsWithChildren<{
|
|
6
|
+
/** Semantic element. Default: `h2`. */
|
|
7
|
+
as?: RuiHeadlineAs;
|
|
8
|
+
/**
|
|
9
|
+
* Type scale. Default: `md`.
|
|
10
|
+
* Pass `false` when a parent (e.g. `RuiHeading`) owns size via CSS variables.
|
|
11
|
+
*/
|
|
12
|
+
size?: RuiHeadlineSize | false;
|
|
13
|
+
id?: string;
|
|
14
|
+
}>;
|
|
15
|
+
/** Standalone display title outside a heading block. */
|
|
16
|
+
export declare function RuiHeadline({ children, as, size, class: className, ...props }: RuiHeadlineProps): import("@ecopages/jsx").JsxRenderable;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { RuiHeadline, type RuiHeadlineAs, type RuiHeadlineProps, type RuiHeadlineSize } from './headline';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as p}from"@ecopages/jsx/jsx-runtime";function r(...o){return o.filter(Boolean).join(" ")}import{jsx as f}from"@ecopages/jsx/jsx-runtime";function i({as:o,children:n,...t}){return f(o??"div",{...t,children:n})}var l=Symbol.for("@ecopages/storybook-radiant.viewModule");function s(o,n,t){let e=o;return e[l]=t,o}function a({children:o,as:n="h2",size:t="md",class:e,...c}){return p(i,{as:n,...c,class:r("rui-headline",t!==!1&&`rui-headline--size-${t}`,e),children:o})}s(a,["./headline.css"],import.meta.url);export{a as RuiHeadline};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/components/ui/headline/headline.tsx", "../../../../src/lib/cx.ts", "../../../../src/lib/intrinsic.tsx", "../../../../src/lib/radiant-view.ts"],
|
|
4
|
+
"sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { Intrinsic } from \"@/lib/intrinsic\";\nimport { attachRadiantStylesheets } from \"@/lib/radiant-view\";\nexport function RuiHeadline({\n children,\n as = \"h2\",\n size = \"md\",\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(Intrinsic, {\n as,\n ...props,\n class: cx(\"rui-headline\", size !== false && `rui-headline--size-${size}`, className),\n children\n });\n}\nattachRadiantStylesheets(RuiHeadline, [\"./headline.css\"], import.meta.url);", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nexport function Intrinsic({\n as,\n children,\n ...props\n}) {\n const Tag = as ?? \"div\";\n return /* @__PURE__ */jsx(Tag, {\n ...props,\n children\n });\n}", "const RADIANT_VIEW_ELEMENT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewElement\");\nconst RADIANT_SCRIPT_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptModule\");\nconst RADIANT_SCRIPT_EXPORT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptExport\");\nconst RADIANT_VIEW_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewModule\");\nfunction linkViewToElement(view, element) {\n view[RADIANT_VIEW_ELEMENT] = element;\n const ssrModule = element[RADIANT_SCRIPT_MODULE];\n if (ssrModule) {\n view[RADIANT_SCRIPT_MODULE] = ssrModule;\n view[RADIANT_SCRIPT_EXPORT] = element[RADIANT_SCRIPT_EXPORT] ?? element.name;\n }\n}\nexport function defineRadiantView(element, render, _options) {\n const view = args => render(args);\n linkViewToElement(view, element);\n return view;\n}\nexport function attachRadiantStylesheets(target, _stylesheets, moduleUrl) {\n const view = target;\n view[RADIANT_VIEW_MODULE] = moduleUrl;\n return target;\n}\nexport function syncRadiantViewMetadata(view) {\n const element = view[RADIANT_VIEW_ELEMENT];\n if (element) {\n linkViewToElement(view, element);\n }\n}"],
|
|
5
|
+
"mappings": "AAAA,OAAS,OAAAA,MAAW,4BCAb,SAASC,KAAMC,EAAO,CAC3B,OAAOA,EAAM,OAAO,OAAO,EAAE,KAAK,GAAG,CACvC,CCFA,OAAS,OAAAC,MAAW,4BACb,SAASC,EAAU,CACxB,GAAAC,EACA,SAAAC,EACA,GAAGC,CACL,EAAG,CAED,OAAsBJ,EADVE,GAAM,MACa,CAC7B,GAAGE,EACH,SAAAD,CACF,CAAC,CACH,CCRA,IAAME,EAAqC,OAAO,IAAI,wCAAwC,EAcvF,SAASC,EAAyBC,EAAQC,EAAcC,EAAW,CACxE,IAAMC,EAAOH,EACb,OAAAG,EAAKC,CAAmB,EAAIF,EACrBF,CACT,CHjBO,SAASK,EAAY,CAC1B,SAAAC,EACA,GAAAC,EAAK,KACL,KAAAC,EAAO,KACP,MAAOC,EACP,GAAGC,CACL,EAAG,CACD,OAAsBC,EAAIC,EAAW,CACnC,GAAAL,EACA,GAAGG,EACH,MAAOG,EAAG,eAAgBL,IAAS,IAAS,sBAAsBA,CAAI,GAAIC,CAAS,EACnF,SAAAH,CACF,CAAC,CACH,CACAQ,EAAyBT,EAAa,CAAC,gBAAgB,EAAG,YAAY,GAAG",
|
|
6
|
+
"names": ["jsx", "cx", "parts", "jsx", "Intrinsic", "as", "children", "props", "RADIANT_VIEW_MODULE", "attachRadiantStylesheets", "target", "_stylesheets", "moduleUrl", "view", "RADIANT_VIEW_MODULE", "RuiHeadline", "children", "as", "size", "className", "props", "jsx", "Intrinsic", "cx", "attachRadiantStylesheets"]
|
|
7
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as v}from"@ecopages/jsx/jsx-runtime";function h(...e){return e.filter(Boolean).join(" ")}var R={0:"digit",a:"letter","*":"any"},E=/\p{L}/u;function S(e,i){let n=i?.[e];if(n instanceof RegExp)return{kind:"any",pattern:n};if(n)return{kind:n};let t=R[e];return t?{kind:t}:null}function y(e,i,n){return n?n.test(e):i==="digit"?/\d/.test(e):i==="letter"?E.test(e):e.length>0}function g(e,i,n=!1){let t=[],r=0;for(;r<e.length;){let u=e[r];if(u==="\\"){let o=e[r+1];o&&t.push({type:"literal",value:o}),r+=2;continue}if(u==="{"){let o=e.indexOf("}",r+1);if(o<0){t.push({type:"literal",value:"{"}),r+=1;continue}t.push({type:"fixed",value:e.slice(r+1,o)}),r=o+1;continue}if(u==="["){let o=I(e,r+1);if(o<0){t.push({type:"literal",value:"["}),r+=1;continue}let l=g(e.slice(r+1,o),i,!0);t.push(...l),r=o+1;continue}if(u==="]")break;let a=S(u,i);if(a){t.push({type:"input",definition:u,kind:a.kind,pattern:a.pattern,optional:n}),r+=1;continue}t.push({type:"literal",value:u}),r+=1}return t}function I(e,i){let n=1;for(let t=i;t<e.length;t+=1)if(e[t]==="["&&e[t-1]!=="\\"&&(n+=1),e[t]==="]"&&e[t-1]!=="\\"&&(n-=1,n===0))return t;return-1}function s(e,i){return g(e,i)}function x(e,i={}){return e.filter(n=>n.type==="input"&&(!i.requiredOnly||!n.optional)).length}function c(e,i){let n=s(e,i),t="";for(let r of n){if(r.type==="literal"||r.type==="fixed"){t+=r.value;continue}t+="_"}return t}function k(e,i){let n="",t=0;for(let r of i){if(r.type==="fixed"||r.type==="literal"){e.slice(t,t+r.value.length)===r.value&&(t+=r.value.length);continue}if(t>=e.length)continue;let u=e[t];y(u,r.kind,r.pattern)&&(n+=u,t+=1)}return n}function T(e,i){if(!e)return"";let n=0,t="";for(let r of i){if(r.type==="fixed"||r.type==="literal"){t+=r.value;continue}if(n>=e.length){if(r.optional)continue;break}let u=e[n];if(!y(u,r.kind,r.pattern)){if(r.optional)continue;break}t+=u,n+=1}return t}function M(e){return e.every(i=>i.type!=="input"||i.kind==="digit")}function _(e,i){let n=e.replace(/\D/g,""),t=i.filter(r=>r.type==="fixed").map(r=>r.value.replace(/\D/g,"")).join("");return t&&n.startsWith(t)?n.slice(t.length):n}function f(e,i,n){let t=s(i,n),r=x(t),u=k(e,t);return u.length===0&&/\S/.test(e)&&M(t)&&(u=_(e,t)),u.length>r&&(u=u.slice(0,r)),T(u,t)}var D=Symbol.for("@ecopages/storybook-radiant.viewModule");function A(e,i,n){let t=e;return t[D]=n,e}var p="data-rui-control";var L=new Set(["rui-combobox","rui-date-field","rui-date-range-picker","rui-select","rui-tag-group","rui-checkbox","rui-switch","rui-radio-group","rui-slider","rui-number-field","rui-listbox"]),H=`[${p}], ${Array.from(L).join(", ")}, input, textarea`;function b(e){let{size:i="md",class:n,type:t="text",mask:r,placeholder:u,"on:input":a,...o}=e,l=r?c(r):u;return v("input",{...o,type:t,placeholder:l,...r?{"on:input":d=>{if(r){let m=d.target;m.value=f(m.value,r)}a?.(d)}}:a?{"on:input":a}:{},inputmode:r?"numeric":void 0,[p]:"","data-rui-control-type":"text",class:h("rui-input",`rui-input--${i}`,n)})}A(b,["./input.css"],import.meta.url);export{b as RuiInput};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/ui/input/input.tsx", "../../../../src/lib/cx.ts", "../../../../src/lib/radiant-view.ts", "../../../../src/components/ui/form/control-protocol.ts"],
|
|
4
|
-
"sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { attachRadiantStylesheets } from \"@/lib/radiant-view\";\nimport { RUI_CONTROL_ATTR } from \"../form/control-protocol\";\nexport function RuiInput(props) {\n const {\n size = \"md\",\n class: className,\n type = \"text\",\n ...host\n } = props;\n return /* @__PURE__ */jsx(\"input\", {\n ...host,\n type,\n ...{\n [RUI_CONTROL_ATTR]: \"\"\n },\n \"data-rui-control-type\": \"text\",\n class: cx(\"rui-input\", `rui-input--${size}`, className)\n });\n}\nattachRadiantStylesheets(RuiInput, [\"./input.css\"], import.meta.url);", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "const RADIANT_VIEW_ELEMENT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewElement\");\nconst RADIANT_SCRIPT_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptModule\");\nconst RADIANT_SCRIPT_EXPORT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptExport\");\nconst RADIANT_VIEW_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewModule\");\nfunction linkViewToElement(view, element) {\n view[RADIANT_VIEW_ELEMENT] = element;\n const ssrModule = element[RADIANT_SCRIPT_MODULE];\n if (ssrModule) {\n view[RADIANT_SCRIPT_MODULE] = ssrModule;\n view[RADIANT_SCRIPT_EXPORT] = element[RADIANT_SCRIPT_EXPORT] ?? element.name;\n }\n}\nexport function defineRadiantView(element, render, _options) {\n const view = args => render(args);\n linkViewToElement(view, element);\n return view;\n}\nexport function attachRadiantStylesheets(target, _stylesheets, moduleUrl) {\n const view = target;\n view[RADIANT_VIEW_MODULE] = moduleUrl;\n return target;\n}\nexport function syncRadiantViewMetadata(view) {\n const element = view[RADIANT_VIEW_ELEMENT];\n if (element) {\n linkViewToElement(view, element);\n }\n}", "export const RUI_CONTROL_ATTR = \"data-rui-control\";\nexport const RUI_FIELD_MANAGED_ATTR = \"data-rui-field-managed\";\nexport const RUI_FIELD_LABEL_ATTR = \"data-rui-field-label\";\nexport const RUI_FIELD_DESCRIPTION_ATTR = \"data-rui-field-description\";\nexport const RUI_FIELD_ERROR_ATTR = \"data-rui-field-error\";\nexport const RUI_FIELD_DEFAULT_VALUE_ATTR = \"data-default-value\";\nexport const RUI_FORM_DEFAULT_VALUES_ATTR = \"data-default-values\";\nconst HOST_CONTROL_TAGS = /* @__PURE__ */new Set([\"rui-combobox\", \"rui-checkbox\", \"rui-switch\", \"rui-radio-group\", \"rui-slider\", \"rui-spinbutton\", \"rui-listbox\"]);\nconst CONTROL_SELECTOR = `[${RUI_CONTROL_ATTR}], ${Array.from(HOST_CONTROL_TAGS).join(\", \")}, input, textarea`;\nfunction forEachFieldContentNode(root, visit) {\n const slotHost = root;\n const visited = /* @__PURE__ */new Set();\n const safeVisit = node => {\n if (visited.has(node)) {\n return;\n }\n visited.add(node);\n visit(node);\n };\n if (typeof slotHost.getSlotElements === \"function\") {\n for (const node of slotHost.getSlotElements()) {\n safeVisit(node);\n }\n }\n const renderRoot = root.querySelector(\".rui-field\") ?? root;\n for (const child of Array.from(renderRoot.children)) {\n safeVisit(child);\n }\n for (const node of renderRoot.querySelectorAll(\"*\")) {\n safeVisit(node);\n }\n for (const child of Array.from(root.children)) {\n safeVisit(child);\n }\n const shadow = root.shadowRoot;\n if (shadow) {\n for (const child of Array.from(shadow.children)) {\n safeVisit(child);\n }\n }\n}\nfunction queryFieldContent(root, selector) {\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found || !(node instanceof HTMLElement)) {\n return;\n }\n if (node.matches(selector)) {\n found = node;\n return;\n }\n found = node.querySelector(selector);\n });\n return found;\n}\nfunction pickPrimaryFieldControl(candidates) {\n if (candidates.length === 0) {\n return null;\n }\n if (candidates.length === 1) {\n return candidates[0];\n }\n const active = document.activeElement;\n if (active instanceof HTMLElement) {\n for (const candidate of candidates) {\n if (candidate === active || candidate.contains(active)) {\n return candidate;\n }\n }\n }\n const visible = candidates.filter(el => el.isConnected && el.getClientRects().length > 0 && !el.closest('[hidden],[aria-hidden=\"true\"]'));\n const pool = visible.length > 0 ? visible : candidates.filter(el => el.isConnected);\n return pool[pool.length - 1] ?? candidates[candidates.length - 1];\n}\nfunction listFieldControlsInRenderTree(root) {\n const renderRoot = root.querySelector(\".rui-field\");\n if (!(renderRoot instanceof HTMLElement)) {\n return [];\n }\n return Array.from(renderRoot.querySelectorAll(CONTROL_SELECTOR)).filter(el => root.contains(el));\n}\nexport function findFieldControl(root) {\n const fromRenderTree = pickPrimaryFieldControl(listFieldControlsInRenderTree(root));\n if (fromRenderTree) {\n return fromRenderTree;\n }\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found) {\n return;\n }\n const match = findControlInSubtree(node);\n if (match) {\n found = match;\n }\n });\n if (found) {\n return found;\n }\n const renderRoot = root.querySelector(\".rui-field\") ?? root;\n return findControlInSubtree(renderRoot);\n}\nfunction findControlInSubtree(node) {\n if (!(node instanceof HTMLElement)) {\n return null;\n }\n if (node.matches(`[${RUI_CONTROL_ATTR}]`)) {\n return node;\n }\n if (HOST_CONTROL_TAGS.has(node.localName)) {\n return node;\n }\n if (node instanceof HTMLInputElement || node instanceof HTMLTextAreaElement) {\n return node;\n }\n const nested = node.querySelector(CONTROL_SELECTOR);\n return nested;\n}\nexport function readControlValue(control) {\n if (control instanceof HTMLInputElement) {\n if (control.type === \"checkbox\") {\n return control.checked;\n }\n if (control.type === \"number\" || control.type === \"range\") {\n return control.value === \"\" ? \"\" : Number(control.value);\n }\n return control.value;\n }\n if (control instanceof HTMLTextAreaElement) {\n return control.value;\n }\n const host = resolveControlHost(control);\n if (host.localName === \"rui-checkbox\" || host.localName === \"rui-switch\") {\n const input = host.querySelector('input[type=\"checkbox\"]');\n if (input) {\n return input.checked;\n }\n return host.hasAttribute(\"checked\");\n }\n if (host.localName === \"rui-combobox\" || host.localName === \"rui-radio-group\" || host.localName === \"rui-listbox\") {\n return host.value ?? host.getAttribute(\"value\") ?? \"\";\n }\n if (host.localName === \"rui-slider\" || host.localName === \"rui-spinbutton\") {\n const propValue = host.value;\n if (typeof propValue === \"number\") {\n return propValue;\n }\n const raw = host.getAttribute(\"value\");\n return raw == null || raw === \"\" ? \"\" : Number(raw);\n }\n return host.getAttribute(\"value\") ?? \"\";\n}\nexport function writeControlValue(control, value) {\n if (control instanceof HTMLInputElement) {\n if (control.type === \"checkbox\") {\n control.checked = Boolean(value);\n const ce = control.closest(\"rui-checkbox, rui-switch\");\n if (ce) {\n if (value) {\n ce.setAttribute(\"checked\", \"\");\n } else {\n ce.removeAttribute(\"checked\");\n }\n }\n return;\n }\n control.value = value == null ? \"\" : String(value);\n return;\n }\n if (control instanceof HTMLTextAreaElement) {\n control.value = value == null ? \"\" : String(value);\n return;\n }\n const host = resolveControlHost(control);\n if (host.localName === \"rui-checkbox\" || host.localName === \"rui-switch\") {\n if (value) {\n host.setAttribute(\"checked\", \"\");\n } else {\n host.removeAttribute(\"checked\");\n }\n return;\n }\n host.setAttribute(\"value\", value == null ? \"\" : String(value));\n}\nfunction resolveControlHost(control) {\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n const host = control.closest(Array.from(HOST_CONTROL_TAGS).join(\",\"));\n return host ?? control;\n }\n return control;\n}\nexport function findFieldLabel(root) {\n return queryFieldContent(root, `[${RUI_FIELD_LABEL_ATTR}], label.rui-label`);\n}\nexport function findFieldDescription(root) {\n return queryFieldContent(root, `[${RUI_FIELD_DESCRIPTION_ATTR}]`);\n}\nexport function findFieldError(root) {\n const all = findFieldErrorElements(root);\n return all[0] ?? null;\n}\nexport function findFieldErrorElements(root) {\n const renderRoot = root.querySelector(\".rui-field\");\n if (renderRoot instanceof HTMLElement) {\n const inRender = Array.from(renderRoot.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n const visible = inRender.filter(el => el.getClientRects().length > 0);\n if (visible.length > 0) {\n return visible;\n }\n if (inRender.length > 0) {\n return inRender;\n }\n }\n const fromDom = Array.from(root.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n if (fromDom.length > 0) {\n return fromDom;\n }\n const single = queryFieldContent(root, `[${RUI_FIELD_ERROR_ATTR}]`);\n return single ? [single] : [];\n}\nexport function wireFieldControlName(controlHost, ariaTarget, name) {\n if (!name) {\n return;\n }\n if (ariaTarget instanceof HTMLInputElement || ariaTarget instanceof HTMLTextAreaElement) {\n ariaTarget.name = name;\n }\n if (!controlHost) {\n return;\n }\n if (controlHost === ariaTarget) {\n return;\n }\n if (HOST_CONTROL_TAGS.has(controlHost.localName)) {\n controlHost.setAttribute(\"name\", name);\n }\n}\nexport function getAriaControlTarget(control) {\n if (control instanceof HTMLInputElement || control instanceof HTMLTextAreaElement) {\n return control;\n }\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n return control;\n }\n const marked = control.querySelector(`[${RUI_CONTROL_ATTR}]`);\n if (marked) {\n return marked;\n }\n if (control.localName === \"rui-combobox\") {\n return control.querySelector(\"[data-combobox-input]\") ?? control;\n }\n if (control.localName === \"rui-spinbutton\") {\n return control.querySelector(\"[data-spinbutton-input], input\") ?? control;\n }\n if (control.localName === \"rui-slider\") {\n return control.querySelector('input[type=\"range\"]') ?? control;\n }\n if (control.localName === \"rui-checkbox\" || control.localName === \"rui-switch\") {\n return control.querySelector(\"input\") ?? control;\n }\n if (control.localName === \"rui-radio-group\") {\n const checked = control.querySelector('input[type=\"radio\"]:checked');\n const first = control.querySelector('input[type=\"radio\"]');\n return checked ?? first ?? control;\n }\n return control;\n}"],
|
|
5
|
-
"mappings": "AAAA,OAAS,OAAAA,MAAW,4BCAb,SAASC,KAAMC,EAAO,CAC3B,OAAOA,EAAM,OAAO,OAAO,EAAE,KAAK,GAAG,CACvC,
|
|
6
|
-
"names": ["jsx", "cx", "parts", "RADIANT_VIEW_MODULE", "attachRadiantStylesheets", "target", "_stylesheets", "moduleUrl", "view", "RADIANT_VIEW_MODULE", "RUI_CONTROL_ATTR", "HOST_CONTROL_TAGS", "CONTROL_SELECTOR", "RUI_CONTROL_ATTR", "RuiInput", "props", "size", "className", "type", "host", "jsx", "RUI_CONTROL_ATTR", "cx", "attachRadiantStylesheets"]
|
|
3
|
+
"sources": ["../../../../src/components/ui/input/input.tsx", "../../../../src/lib/cx.ts", "../../../../src/lib/mask/input-mask.ts", "../../../../src/lib/radiant-view.ts", "../../../../src/components/ui/form/control-protocol.ts"],
|
|
4
|
+
"sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { applyInputMask, maskToPlaceholder } from \"@/lib/mask\";\nimport { attachRadiantStylesheets } from \"@/lib/radiant-view\";\nimport { RUI_CONTROL_ATTR } from \"../form/control-protocol\";\nexport function RuiInput(props) {\n const {\n size = \"md\",\n class: className,\n type = \"text\",\n mask,\n placeholder,\n \"on:input\": onInput,\n ...host\n } = props;\n const resolvedPlaceholder = mask ? maskToPlaceholder(mask) : placeholder;\n const handleInput = event => {\n if (mask) {\n const input = event.target;\n input.value = applyInputMask(input.value, mask);\n }\n onInput?.(event);\n };\n return /* @__PURE__ */jsx(\"input\", {\n ...host,\n type,\n placeholder: resolvedPlaceholder,\n ...(mask ? {\n \"on:input\": handleInput\n } : onInput ? {\n \"on:input\": onInput\n } : {}),\n inputmode: mask ? \"numeric\" : void 0,\n ...{\n [RUI_CONTROL_ATTR]: \"\"\n },\n \"data-rui-control-type\": \"text\",\n class: cx(\"rui-input\", `rui-input--${size}`, className)\n });\n}\nattachRadiantStylesheets(RuiInput, [\"./input.css\"], import.meta.url);", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "const DEFAULT_DEFINITIONS = {\n \"0\": \"digit\",\n a: \"letter\",\n \"*\": \"any\"\n};\nconst LETTER = /\\p{L}/u;\nfunction resolveDefinition(char, definitions) {\n const custom = definitions?.[char];\n if (custom instanceof RegExp) {\n return {\n kind: \"any\",\n pattern: custom\n };\n }\n if (custom) {\n return {\n kind: custom\n };\n }\n const builtIn = DEFAULT_DEFINITIONS[char];\n return builtIn ? {\n kind: builtIn\n } : null;\n}\nfunction matchesInput(char, kind, pattern) {\n if (pattern) {\n return pattern.test(char);\n }\n if (kind === \"digit\") {\n return /\\d/.test(char);\n }\n if (kind === \"letter\") {\n return LETTER.test(char);\n }\n return char.length > 0;\n}\nfunction parseMaskPatternInternal(pattern, definitions, optional = false) {\n const tokens = [];\n let index = 0;\n while (index < pattern.length) {\n const char = pattern[index];\n if (char === \"\\\\\") {\n const next = pattern[index + 1];\n if (next) {\n tokens.push({\n type: \"literal\",\n value: next\n });\n }\n index += 2;\n continue;\n }\n if (char === \"{\") {\n const end = pattern.indexOf(\"}\", index + 1);\n if (end < 0) {\n tokens.push({\n type: \"literal\",\n value: \"{\"\n });\n index += 1;\n continue;\n }\n tokens.push({\n type: \"fixed\",\n value: pattern.slice(index + 1, end)\n });\n index = end + 1;\n continue;\n }\n if (char === \"[\") {\n const end = findClosingBracket(pattern, index + 1);\n if (end < 0) {\n tokens.push({\n type: \"literal\",\n value: \"[\"\n });\n index += 1;\n continue;\n }\n const inner = parseMaskPatternInternal(pattern.slice(index + 1, end), definitions, true);\n tokens.push(...inner);\n index = end + 1;\n continue;\n }\n if (char === \"]\") {\n break;\n }\n const definition = resolveDefinition(char, definitions);\n if (definition) {\n tokens.push({\n type: \"input\",\n definition: char,\n kind: definition.kind,\n pattern: definition.pattern,\n optional\n });\n index += 1;\n continue;\n }\n tokens.push({\n type: \"literal\",\n value: char\n });\n index += 1;\n }\n return tokens;\n}\nfunction findClosingBracket(pattern, start) {\n let depth = 1;\n for (let index = start; index < pattern.length; index += 1) {\n if (pattern[index] === \"[\" && pattern[index - 1] !== \"\\\\\") {\n depth += 1;\n }\n if (pattern[index] === \"]\" && pattern[index - 1] !== \"\\\\\") {\n depth -= 1;\n if (depth === 0) {\n return index;\n }\n }\n }\n return -1;\n}\nexport function parseMaskPattern(pattern, definitions) {\n return parseMaskPatternInternal(pattern, definitions);\n}\nexport function maskInputSlotCount(tokens, options = {}) {\n return tokens.filter(token => token.type === \"input\" && (!options.requiredOnly || !token.optional)).length;\n}\nexport function maskDigitSlotCount(tokens) {\n return maskInputSlotCount(tokens, {\n requiredOnly: true\n });\n}\nexport function maskToPlaceholder(pattern, definitions) {\n const tokens = parseMaskPattern(pattern, definitions);\n let result = \"\";\n for (const token of tokens) {\n if (token.type === \"literal\" || token.type === \"fixed\") {\n result += token.value;\n continue;\n }\n result += \"_\";\n }\n return result;\n}\nexport function extractMaskInput(masked, tokens) {\n let input = \"\";\n let cursor = 0;\n for (const token of tokens) {\n if (token.type === \"fixed\" || token.type === \"literal\") {\n if (masked.slice(cursor, cursor + token.value.length) === token.value) {\n cursor += token.value.length;\n }\n continue;\n }\n if (cursor >= masked.length) {\n continue;\n }\n const char = masked[cursor];\n if (matchesInput(char, token.kind, token.pattern)) {\n input += char;\n cursor += 1;\n }\n }\n return input;\n}\nexport function extractMaskDigits(masked, tokens) {\n return extractMaskInput(masked, tokens).replace(/\\D/g, \"\");\n}\nexport function formatWithMask(input, tokens) {\n if (!input) {\n return \"\";\n }\n let inputIndex = 0;\n let result = \"\";\n for (const token of tokens) {\n if (token.type === \"fixed\" || token.type === \"literal\") {\n result += token.value;\n continue;\n }\n if (inputIndex >= input.length) {\n if (token.optional) {\n continue;\n }\n break;\n }\n const char = input[inputIndex];\n if (!matchesInput(char, token.kind, token.pattern)) {\n if (token.optional) {\n continue;\n }\n break;\n }\n result += char;\n inputIndex += 1;\n }\n return result;\n}\nfunction isDigitOnlyPattern(tokens) {\n return tokens.every(token => token.type !== \"input\" || token.kind === \"digit\");\n}\nfunction looseInputFromRaw(raw, tokens) {\n const loose = raw.replace(/\\D/g, \"\");\n const fixedDigits = tokens.filter(token => token.type === \"fixed\").map(token => token.value.replace(/\\D/g, \"\")).join(\"\");\n if (fixedDigits && loose.startsWith(fixedDigits)) {\n return loose.slice(fixedDigits.length);\n }\n return loose;\n}\nexport function applyInputMask(raw, pattern, definitions) {\n const tokens = parseMaskPattern(pattern, definitions);\n const capacity = maskInputSlotCount(tokens);\n let input = extractMaskInput(raw, tokens);\n if (input.length === 0 && /\\S/.test(raw) && isDigitOnlyPattern(tokens)) {\n input = looseInputFromRaw(raw, tokens);\n }\n if (input.length > capacity) {\n input = input.slice(0, capacity);\n }\n return formatWithMask(input, tokens);\n}", "const RADIANT_VIEW_ELEMENT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewElement\");\nconst RADIANT_SCRIPT_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptModule\");\nconst RADIANT_SCRIPT_EXPORT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptExport\");\nconst RADIANT_VIEW_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewModule\");\nfunction linkViewToElement(view, element) {\n view[RADIANT_VIEW_ELEMENT] = element;\n const ssrModule = element[RADIANT_SCRIPT_MODULE];\n if (ssrModule) {\n view[RADIANT_SCRIPT_MODULE] = ssrModule;\n view[RADIANT_SCRIPT_EXPORT] = element[RADIANT_SCRIPT_EXPORT] ?? element.name;\n }\n}\nexport function defineRadiantView(element, render, _options) {\n const view = args => render(args);\n linkViewToElement(view, element);\n return view;\n}\nexport function attachRadiantStylesheets(target, _stylesheets, moduleUrl) {\n const view = target;\n view[RADIANT_VIEW_MODULE] = moduleUrl;\n return target;\n}\nexport function syncRadiantViewMetadata(view) {\n const element = view[RADIANT_VIEW_ELEMENT];\n if (element) {\n linkViewToElement(view, element);\n }\n}", "export const RUI_CONTROL_ATTR = \"data-rui-control\";\nexport const RUI_FIELD_MANAGED_ATTR = \"data-rui-field-managed\";\nexport const RUI_FIELD_LABEL_ATTR = \"data-rui-field-label\";\nexport const RUI_FIELD_DESCRIPTION_ATTR = \"data-rui-field-description\";\nexport const RUI_FIELD_ERROR_ATTR = \"data-rui-field-error\";\nexport const RUI_FIELD_DEFAULT_VALUE_ATTR = \"data-default-value\";\nexport const RUI_FORM_DEFAULT_VALUES_ATTR = \"data-default-values\";\nconst HOST_CONTROL_TAGS = /* @__PURE__ */new Set([\"rui-combobox\", \"rui-date-field\", \"rui-date-range-picker\", \"rui-select\", \"rui-tag-group\", \"rui-checkbox\", \"rui-switch\", \"rui-radio-group\", \"rui-slider\", \"rui-number-field\", \"rui-listbox\"]);\nconst CONTROL_SELECTOR = `[${RUI_CONTROL_ATTR}], ${Array.from(HOST_CONTROL_TAGS).join(\", \")}, input, textarea`;\nconst stringValueAdapter = {\n read: host => {\n const value = Reflect.get(host, \"value\");\n return typeof value === \"string\" ? value : host.getAttribute(\"value\") ?? \"\";\n },\n write: (host, value) => {\n const next = value == null ? \"\" : String(value);\n host.setAttribute(\"value\", next);\n if (\"value\" in host) {\n Reflect.set(host, \"value\", next);\n }\n }\n};\nconst numberValueAdapter = {\n read: host => {\n const value = Reflect.get(host, \"value\");\n if (typeof value === \"number\") {\n return value;\n }\n const raw = host.getAttribute(\"value\");\n return raw == null || raw === \"\" ? \"\" : Number(raw);\n },\n write: (host, value) => {\n const next = value == null ? \"\" : String(value);\n host.setAttribute(\"value\", next);\n if (\"value\" in host) {\n Reflect.set(host, \"value\", value);\n }\n }\n};\nconst booleanValueAdapter = {\n read: host => {\n const input = host.querySelector('input[type=\"checkbox\"]');\n return input?.checked ?? host.hasAttribute(\"checked\");\n },\n write: (host, value) => {\n if (value) {\n host.setAttribute(\"checked\", \"\");\n } else {\n host.removeAttribute(\"checked\");\n }\n }\n};\nconst CONTROL_VALUE_ADAPTERS = /* @__PURE__ */new Map([[\"rui-checkbox\", booleanValueAdapter], [\"rui-switch\", booleanValueAdapter], [\"rui-combobox\", stringValueAdapter], [\"rui-date-field\", stringValueAdapter], [\"rui-date-range-picker\", stringValueAdapter], [\"rui-select\", stringValueAdapter], [\"rui-radio-group\", stringValueAdapter], [\"rui-listbox\", stringValueAdapter], [\"rui-tag-group\", stringValueAdapter], [\"rui-slider\", numberValueAdapter], [\"rui-number-field\", numberValueAdapter]]);\nfunction forEachFieldContentNode(root, visit) {\n const slotHost = root;\n const visited = /* @__PURE__ */new Set();\n const safeVisit = node => {\n if (visited.has(node)) {\n return;\n }\n visited.add(node);\n visit(node);\n };\n if (typeof slotHost.getSlotElements === \"function\") {\n for (const node of slotHost.getSlotElements()) {\n safeVisit(node);\n }\n }\n const renderRoot = root.querySelector(\".rui-field\") ?? root;\n for (const child of Array.from(renderRoot.children)) {\n safeVisit(child);\n }\n for (const node of renderRoot.querySelectorAll(\"*\")) {\n safeVisit(node);\n }\n for (const child of Array.from(root.children)) {\n safeVisit(child);\n }\n const shadow = root.shadowRoot;\n if (shadow) {\n for (const child of Array.from(shadow.children)) {\n safeVisit(child);\n }\n }\n}\nfunction queryFieldContent(root, selector) {\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found || !(node instanceof HTMLElement)) {\n return;\n }\n if (node.matches(selector)) {\n found = node;\n return;\n }\n found = node.querySelector(selector);\n });\n return found;\n}\nfunction pickPrimaryFieldControl(candidates) {\n if (candidates.length === 0) {\n return null;\n }\n if (candidates.length === 1) {\n return candidates[0];\n }\n const hostControl = candidates.find(candidate => HOST_CONTROL_TAGS.has(candidate.localName));\n const markedControl = candidates.find(candidate => candidate.hasAttribute(RUI_CONTROL_ATTR));\n if (markedControl) {\n return markedControl;\n }\n if (hostControl) {\n return hostControl;\n }\n const active = document.activeElement;\n if (active instanceof HTMLElement) {\n for (const candidate of candidates) {\n if (candidate === active || candidate.contains(active)) {\n return candidate;\n }\n }\n }\n const visible = candidates.filter(el => el.isConnected && el.getClientRects().length > 0 && !el.closest('[hidden],[aria-hidden=\"true\"]'));\n const pool = visible.length > 0 ? visible : candidates.filter(el => el.isConnected);\n return pool[pool.length - 1] ?? candidates[candidates.length - 1];\n}\nfunction listFieldControlsInRenderTree(root) {\n const renderRoot = root.querySelector(\".rui-field\");\n if (!(renderRoot instanceof HTMLElement)) {\n return [];\n }\n return Array.from(renderRoot.querySelectorAll(CONTROL_SELECTOR)).filter(el => root.contains(el));\n}\nexport function findFieldControl(root) {\n const fromRenderTree = pickPrimaryFieldControl(listFieldControlsInRenderTree(root));\n if (fromRenderTree) {\n return fromRenderTree;\n }\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found) {\n return;\n }\n const match = findControlInSubtree(node);\n if (match) {\n found = match;\n }\n });\n if (found) {\n return found;\n }\n const renderRoot = root.querySelector(\".rui-field\") ?? root;\n return findControlInSubtree(renderRoot);\n}\nfunction findControlInSubtree(node) {\n if (!(node instanceof HTMLElement)) {\n return null;\n }\n if (node.matches(`[${RUI_CONTROL_ATTR}]`)) {\n return node;\n }\n if (HOST_CONTROL_TAGS.has(node.localName)) {\n return node;\n }\n if (node instanceof HTMLInputElement || node instanceof HTMLTextAreaElement) {\n return node;\n }\n const nested = node.querySelector(CONTROL_SELECTOR);\n return nested;\n}\nexport function readControlValue(control) {\n if (control instanceof HTMLInputElement) {\n const host2 = resolveControlHost(control);\n const adapter = host2 === control ? void 0 : CONTROL_VALUE_ADAPTERS.get(host2.localName);\n if (adapter) {\n return adapter.read(host2);\n }\n if (control.type === \"checkbox\") {\n return control.checked;\n }\n if (control.type === \"number\" || control.type === \"range\") {\n return control.value === \"\" ? \"\" : Number(control.value);\n }\n return control.value;\n }\n if (control instanceof HTMLTextAreaElement) {\n return control.value;\n }\n const host = resolveControlHost(control);\n return CONTROL_VALUE_ADAPTERS.get(host.localName)?.read(host) ?? host.getAttribute(\"value\") ?? \"\";\n}\nexport function writeControlValue(control, value) {\n if (control instanceof HTMLInputElement) {\n const host2 = resolveControlHost(control);\n const adapter = host2 === control ? void 0 : CONTROL_VALUE_ADAPTERS.get(host2.localName);\n if (adapter) {\n adapter.write(host2, value);\n return;\n }\n if (control.type === \"checkbox\") {\n control.checked = Boolean(value);\n const ce = control.closest(\"rui-checkbox, rui-switch\");\n if (ce) {\n if (value) {\n ce.setAttribute(\"checked\", \"\");\n } else {\n ce.removeAttribute(\"checked\");\n }\n }\n return;\n }\n control.value = value == null ? \"\" : String(value);\n return;\n }\n if (control instanceof HTMLTextAreaElement) {\n control.value = value == null ? \"\" : String(value);\n return;\n }\n const host = resolveControlHost(control);\n CONTROL_VALUE_ADAPTERS.get(host.localName)?.write(host, value);\n}\nfunction resolveControlHost(control) {\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n const host = control.closest(Array.from(HOST_CONTROL_TAGS).join(\",\"));\n return host ?? control;\n }\n return control;\n}\nexport function findFieldLabel(root) {\n return queryFieldContent(root, `[${RUI_FIELD_LABEL_ATTR}], label.rui-label`);\n}\nexport function findFieldDescription(root) {\n return queryFieldContent(root, `[${RUI_FIELD_DESCRIPTION_ATTR}]`);\n}\nexport function findFieldError(root) {\n const all = findFieldErrorElements(root);\n return all[0] ?? null;\n}\nexport function findFieldErrorElements(root) {\n const renderRoot = root.querySelector(\".rui-field\");\n if (renderRoot instanceof HTMLElement) {\n const inRender = Array.from(renderRoot.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n const visible = inRender.filter(el => el.getClientRects().length > 0);\n if (visible.length > 0) {\n return visible;\n }\n if (inRender.length > 0) {\n return inRender;\n }\n }\n const fromDom = Array.from(root.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n if (fromDom.length > 0) {\n return fromDom;\n }\n const single = queryFieldContent(root, `[${RUI_FIELD_ERROR_ATTR}]`);\n return single ? [single] : [];\n}\nexport function wireFieldControlName(controlHost, ariaTarget, name) {\n if (!name) {\n return;\n }\n if (ariaTarget instanceof HTMLInputElement || ariaTarget instanceof HTMLTextAreaElement) {\n ariaTarget.name = name;\n }\n if (!controlHost) {\n return;\n }\n if (controlHost === ariaTarget) {\n return;\n }\n if (HOST_CONTROL_TAGS.has(controlHost.localName)) {\n controlHost.setAttribute(\"name\", name);\n }\n}\nexport function getAriaControlTarget(control) {\n if (control instanceof HTMLInputElement || control instanceof HTMLTextAreaElement) {\n return control;\n }\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n return control;\n }\n const marked = control.querySelector(`[${RUI_CONTROL_ATTR}]`);\n if (marked) {\n return marked;\n }\n if (control.localName === \"rui-combobox\") {\n return control.querySelector(\"[data-combobox-input]\") ?? control;\n }\n if (control.localName === \"rui-date-field\") {\n return control.querySelector(\"[data-date-field-input]\") ?? control;\n }\n if (control.localName === \"rui-date-range-picker\") {\n return control.querySelector(\"[data-range-start]\") ?? control;\n }\n if (control.localName === \"rui-select\") {\n return control.querySelector(\"[data-select-trigger]\") ?? control;\n }\n if (control.localName === \"rui-tag-group\") {\n return control.querySelector(\"[data-tag-list]\") ?? control;\n }\n if (control.localName === \"rui-number-field\") {\n return control.querySelector(\"[data-number-field-input], input\") ?? control;\n }\n if (control.localName === \"rui-slider\") {\n return control.querySelector('input[type=\"range\"]') ?? control;\n }\n if (control.localName === \"rui-checkbox\" || control.localName === \"rui-switch\") {\n return control.querySelector(\"input\") ?? control;\n }\n if (control.localName === \"rui-radio-group\") {\n const checked = control.querySelector('input[type=\"radio\"]:checked');\n const first = control.querySelector('input[type=\"radio\"]');\n return checked ?? first ?? control;\n }\n return control;\n}"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["jsx", "cx", "parts", "DEFAULT_DEFINITIONS", "LETTER", "resolveDefinition", "char", "definitions", "custom", "builtIn", "matchesInput", "kind", "pattern", "parseMaskPatternInternal", "optional", "tokens", "index", "next", "end", "findClosingBracket", "inner", "definition", "start", "depth", "parseMaskPattern", "maskInputSlotCount", "options", "token", "maskToPlaceholder", "pattern", "definitions", "tokens", "parseMaskPattern", "result", "token", "extractMaskInput", "masked", "input", "cursor", "char", "matchesInput", "formatWithMask", "input", "tokens", "inputIndex", "result", "token", "char", "matchesInput", "isDigitOnlyPattern", "looseInputFromRaw", "raw", "loose", "fixedDigits", "applyInputMask", "pattern", "definitions", "parseMaskPattern", "capacity", "maskInputSlotCount", "extractMaskInput", "RADIANT_VIEW_MODULE", "attachRadiantStylesheets", "target", "_stylesheets", "moduleUrl", "view", "RADIANT_VIEW_MODULE", "RUI_CONTROL_ATTR", "HOST_CONTROL_TAGS", "CONTROL_SELECTOR", "RUI_CONTROL_ATTR", "RuiInput", "props", "size", "className", "type", "mask", "placeholder", "onInput", "host", "resolvedPlaceholder", "maskToPlaceholder", "jsx", "event", "input", "applyInputMask", "RUI_CONTROL_ATTR", "cx", "attachRadiantStylesheets"]
|
|
7
7
|
}
|
|
@@ -9,6 +9,13 @@ export type RuiInputProps = JsxHtmlProps<{
|
|
|
9
9
|
size?: RuiInputSize;
|
|
10
10
|
id?: string;
|
|
11
11
|
'aria-label'?: string;
|
|
12
|
+
/**
|
|
13
|
+
* IMask pattern syntax. `0` = digit, `a` = letter, `*` = any char, `{text}` = fixed.
|
|
14
|
+
*
|
|
15
|
+
* @see https://imask.js.org/guide.html#masked-pattern
|
|
16
|
+
* @example `+{7}(000)000-00-00`
|
|
17
|
+
*/
|
|
18
|
+
mask?: string;
|
|
12
19
|
'on:input'?: (event: Event) => void;
|
|
13
20
|
'on:change'?: (event: Event) => void;
|
|
14
21
|
'on:blur'?: (event: Event) => void;
|
|
@@ -16,7 +23,7 @@ export type RuiInputProps = JsxHtmlProps<{
|
|
|
16
23
|
/**
|
|
17
24
|
* Presentational wrapper around a native `<input>`.
|
|
18
25
|
*
|
|
26
|
+
* Pass `mask` to guide entry with an [IMask](https://imask.js.org/guide.html#masked-pattern) pattern.
|
|
19
27
|
* No custom element — Field owns labeling, `aria-*`, and validation wiring.
|
|
20
|
-
* Marked with `data-rui-control` so `<rui-field>` can discover it.
|
|
21
28
|
*/
|
|
22
29
|
export declare function RuiInput(props: RuiInputProps): import("@ecopages/jsx").JsxRenderable;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as c}from"@ecopages/jsx/jsx-runtime";function n(...e){return e.filter(Boolean).join(" ")}var o=Symbol.for("@ecopages/storybook-radiant.viewModule");function u(e,i,t){let r=e;return r[o]=t,e}var f="data-rui-control";var a="data-rui-field-label";var s=new Set(["rui-combobox","rui-date-field","rui-date-range-picker","rui-select","rui-tag-group","rui-checkbox","rui-switch","rui-radio-group","rui-slider","rui-number-field","rui-listbox"]),p=`[${f}], ${Array.from(s).join(", ")}, input, textarea`;function l({children:e,htmlFor:i,class:t,...r}){return c("label",{...r,[a]:"",class:n("rui-label",t),htmlFor:i,children:e})}u(l,["./label.css"],import.meta.url);export{l as RuiLabel};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/ui/label/label.tsx", "../../../../src/lib/cx.ts", "../../../../src/lib/radiant-view.ts", "../../../../src/components/ui/form/control-protocol.ts"],
|
|
4
|
-
"sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { attachRadiantStylesheets } from \"@/lib/radiant-view\";\nimport { RUI_FIELD_LABEL_ATTR } from \"../form/control-protocol\";\nexport function RuiLabel({\n children,\n htmlFor,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"label\", {\n ...props,\n ...{\n [RUI_FIELD_LABEL_ATTR]: \"\"\n },\n class: cx(\"rui-label\", className),\n htmlFor,\n children\n });\n}\nattachRadiantStylesheets(RuiLabel, [\"./label.css\"], import.meta.url);", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "const RADIANT_VIEW_ELEMENT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewElement\");\nconst RADIANT_SCRIPT_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptModule\");\nconst RADIANT_SCRIPT_EXPORT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptExport\");\nconst RADIANT_VIEW_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewModule\");\nfunction linkViewToElement(view, element) {\n view[RADIANT_VIEW_ELEMENT] = element;\n const ssrModule = element[RADIANT_SCRIPT_MODULE];\n if (ssrModule) {\n view[RADIANT_SCRIPT_MODULE] = ssrModule;\n view[RADIANT_SCRIPT_EXPORT] = element[RADIANT_SCRIPT_EXPORT] ?? element.name;\n }\n}\nexport function defineRadiantView(element, render, _options) {\n const view = args => render(args);\n linkViewToElement(view, element);\n return view;\n}\nexport function attachRadiantStylesheets(target, _stylesheets, moduleUrl) {\n const view = target;\n view[RADIANT_VIEW_MODULE] = moduleUrl;\n return target;\n}\nexport function syncRadiantViewMetadata(view) {\n const element = view[RADIANT_VIEW_ELEMENT];\n if (element) {\n linkViewToElement(view, element);\n }\n}", "export const RUI_CONTROL_ATTR = \"data-rui-control\";\nexport const RUI_FIELD_MANAGED_ATTR = \"data-rui-field-managed\";\nexport const RUI_FIELD_LABEL_ATTR = \"data-rui-field-label\";\nexport const RUI_FIELD_DESCRIPTION_ATTR = \"data-rui-field-description\";\nexport const RUI_FIELD_ERROR_ATTR = \"data-rui-field-error\";\nexport const RUI_FIELD_DEFAULT_VALUE_ATTR = \"data-default-value\";\nexport const RUI_FORM_DEFAULT_VALUES_ATTR = \"data-default-values\";\nconst HOST_CONTROL_TAGS = /* @__PURE__ */new Set([\"rui-combobox\", \"rui-checkbox\", \"rui-switch\", \"rui-radio-group\", \"rui-slider\", \"rui-spinbutton\", \"rui-listbox\"]);\nconst CONTROL_SELECTOR = `[${RUI_CONTROL_ATTR}], ${Array.from(HOST_CONTROL_TAGS).join(\", \")}, input, textarea`;\nfunction forEachFieldContentNode(root, visit) {\n const slotHost = root;\n const visited = /* @__PURE__ */new Set();\n const safeVisit = node => {\n if (visited.has(node)) {\n return;\n }\n visited.add(node);\n visit(node);\n };\n if (typeof slotHost.getSlotElements === \"function\") {\n for (const node of slotHost.getSlotElements()) {\n safeVisit(node);\n }\n }\n const renderRoot = root.querySelector(\".rui-field\") ?? root;\n for (const child of Array.from(renderRoot.children)) {\n safeVisit(child);\n }\n for (const node of renderRoot.querySelectorAll(\"*\")) {\n safeVisit(node);\n }\n for (const child of Array.from(root.children)) {\n safeVisit(child);\n }\n const shadow = root.shadowRoot;\n if (shadow) {\n for (const child of Array.from(shadow.children)) {\n safeVisit(child);\n }\n }\n}\nfunction queryFieldContent(root, selector) {\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found || !(node instanceof HTMLElement)) {\n return;\n }\n if (node.matches(selector)) {\n found = node;\n return;\n }\n found = node.querySelector(selector);\n });\n return found;\n}\nfunction pickPrimaryFieldControl(candidates) {\n if (candidates.length === 0) {\n return null;\n }\n if (candidates.length === 1) {\n return candidates[0];\n }\n const active = document.activeElement;\n if (active instanceof HTMLElement) {\n for (const candidate of candidates) {\n if (candidate === active || candidate.contains(active)) {\n return candidate;\n }\n }\n }\n const visible = candidates.filter(el => el.isConnected && el.getClientRects().length > 0 && !el.closest('[hidden],[aria-hidden=\"true\"]'));\n const pool = visible.length > 0 ? visible : candidates.filter(el => el.isConnected);\n return pool[pool.length - 1] ?? candidates[candidates.length - 1];\n}\nfunction listFieldControlsInRenderTree(root) {\n const renderRoot = root.querySelector(\".rui-field\");\n if (!(renderRoot instanceof HTMLElement)) {\n return [];\n }\n return Array.from(renderRoot.querySelectorAll(CONTROL_SELECTOR)).filter(el => root.contains(el));\n}\nexport function findFieldControl(root) {\n const fromRenderTree = pickPrimaryFieldControl(listFieldControlsInRenderTree(root));\n if (fromRenderTree) {\n return fromRenderTree;\n }\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found) {\n return;\n }\n const match = findControlInSubtree(node);\n if (match) {\n found = match;\n }\n });\n if (found) {\n return found;\n }\n const renderRoot = root.querySelector(\".rui-field\") ?? root;\n return findControlInSubtree(renderRoot);\n}\nfunction findControlInSubtree(node) {\n if (!(node instanceof HTMLElement)) {\n return null;\n }\n if (node.matches(`[${RUI_CONTROL_ATTR}]`)) {\n return node;\n }\n if (HOST_CONTROL_TAGS.has(node.localName)) {\n return node;\n }\n if (node instanceof HTMLInputElement || node instanceof HTMLTextAreaElement) {\n return node;\n }\n const nested = node.querySelector(CONTROL_SELECTOR);\n return nested;\n}\nexport function readControlValue(control) {\n if (control instanceof HTMLInputElement) {\n if (control.type === \"checkbox\") {\n return control.checked;\n }\n if (control.type === \"number\" || control.type === \"range\") {\n return control.value === \"\" ? \"\" : Number(control.value);\n }\n return control.value;\n }\n if (control instanceof HTMLTextAreaElement) {\n return control.value;\n }\n const host = resolveControlHost(control);\n if (host.localName === \"rui-checkbox\" || host.localName === \"rui-switch\") {\n const input = host.querySelector('input[type=\"checkbox\"]');\n if (input) {\n return input.checked;\n }\n return host.hasAttribute(\"checked\");\n }\n if (host.localName === \"rui-combobox\" || host.localName === \"rui-radio-group\" || host.localName === \"rui-listbox\") {\n return host.value ?? host.getAttribute(\"value\") ?? \"\";\n }\n if (host.localName === \"rui-slider\" || host.localName === \"rui-spinbutton\") {\n const propValue = host.value;\n if (typeof propValue === \"number\") {\n return propValue;\n }\n const raw = host.getAttribute(\"value\");\n return raw == null || raw === \"\" ? \"\" : Number(raw);\n }\n return host.getAttribute(\"value\") ?? \"\";\n}\nexport function writeControlValue(control, value) {\n if (control instanceof HTMLInputElement) {\n if (control.type === \"checkbox\") {\n control.checked = Boolean(value);\n const ce = control.closest(\"rui-checkbox, rui-switch\");\n if (ce) {\n if (value) {\n ce.setAttribute(\"checked\", \"\");\n } else {\n ce.removeAttribute(\"checked\");\n }\n }\n return;\n }\n control.value = value == null ? \"\" : String(value);\n return;\n }\n if (control instanceof HTMLTextAreaElement) {\n control.value = value == null ? \"\" : String(value);\n return;\n }\n const host = resolveControlHost(control);\n if (host.localName === \"rui-checkbox\" || host.localName === \"rui-switch\") {\n if (value) {\n host.setAttribute(\"checked\", \"\");\n } else {\n host.removeAttribute(\"checked\");\n }\n return;\n }\n host.setAttribute(\"value\", value == null ? \"\" : String(value));\n}\nfunction resolveControlHost(control) {\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n const host = control.closest(Array.from(HOST_CONTROL_TAGS).join(\",\"));\n return host ?? control;\n }\n return control;\n}\nexport function findFieldLabel(root) {\n return queryFieldContent(root, `[${RUI_FIELD_LABEL_ATTR}], label.rui-label`);\n}\nexport function findFieldDescription(root) {\n return queryFieldContent(root, `[${RUI_FIELD_DESCRIPTION_ATTR}]`);\n}\nexport function findFieldError(root) {\n const all = findFieldErrorElements(root);\n return all[0] ?? null;\n}\nexport function findFieldErrorElements(root) {\n const renderRoot = root.querySelector(\".rui-field\");\n if (renderRoot instanceof HTMLElement) {\n const inRender = Array.from(renderRoot.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n const visible = inRender.filter(el => el.getClientRects().length > 0);\n if (visible.length > 0) {\n return visible;\n }\n if (inRender.length > 0) {\n return inRender;\n }\n }\n const fromDom = Array.from(root.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n if (fromDom.length > 0) {\n return fromDom;\n }\n const single = queryFieldContent(root, `[${RUI_FIELD_ERROR_ATTR}]`);\n return single ? [single] : [];\n}\nexport function wireFieldControlName(controlHost, ariaTarget, name) {\n if (!name) {\n return;\n }\n if (ariaTarget instanceof HTMLInputElement || ariaTarget instanceof HTMLTextAreaElement) {\n ariaTarget.name = name;\n }\n if (!controlHost) {\n return;\n }\n if (controlHost === ariaTarget) {\n return;\n }\n if (HOST_CONTROL_TAGS.has(controlHost.localName)) {\n controlHost.setAttribute(\"name\", name);\n }\n}\nexport function getAriaControlTarget(control) {\n if (control instanceof HTMLInputElement || control instanceof HTMLTextAreaElement) {\n return control;\n }\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n return control;\n }\n const marked = control.querySelector(`[${RUI_CONTROL_ATTR}]`);\n if (marked) {\n return marked;\n }\n if (control.localName === \"rui-combobox\") {\n return control.querySelector(\"[data-combobox-input]\") ?? control;\n }\n if (control.localName === \"rui-spinbutton\") {\n return control.querySelector(\"[data-spinbutton-input], input\") ?? control;\n }\n if (control.localName === \"rui-slider\") {\n return control.querySelector('input[type=\"range\"]') ?? control;\n }\n if (control.localName === \"rui-checkbox\" || control.localName === \"rui-switch\") {\n return control.querySelector(\"input\") ?? control;\n }\n if (control.localName === \"rui-radio-group\") {\n const checked = control.querySelector('input[type=\"radio\"]:checked');\n const first = control.querySelector('input[type=\"radio\"]');\n return checked ?? first ?? control;\n }\n return control;\n}"],
|
|
5
|
-
"mappings": "AAAA,OAAS,OAAAA,MAAW,4BCAb,SAASC,KAAMC,EAAO,CAC3B,OAAOA,EAAM,OAAO,OAAO,EAAE,KAAK,GAAG,CACvC,CCCA,IAAMC,EAAqC,OAAO,IAAI,wCAAwC,EAcvF,SAASC,EAAyBC,EAAQC,EAAcC,EAAW,CACxE,IAAMC,EAAOH,EACb,OAAAG,EAAKC,CAAmB,EAAIF,EACrBF,CACT,CCrBO,IAAMK,EAAmB,mBAEzB,IAAMC,EAAuB,uBAKpC,IAAMC,EAAmC,IAAI,IAAI,CAAC,eAAgB,eAAgB,aAAc,kBAAmB,aAAc,
|
|
4
|
+
"sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { attachRadiantStylesheets } from \"@/lib/radiant-view\";\nimport { RUI_FIELD_LABEL_ATTR } from \"../form/control-protocol\";\nexport function RuiLabel({\n children,\n htmlFor,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"label\", {\n ...props,\n ...{\n [RUI_FIELD_LABEL_ATTR]: \"\"\n },\n class: cx(\"rui-label\", className),\n htmlFor,\n children\n });\n}\nattachRadiantStylesheets(RuiLabel, [\"./label.css\"], import.meta.url);", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "const RADIANT_VIEW_ELEMENT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewElement\");\nconst RADIANT_SCRIPT_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptModule\");\nconst RADIANT_SCRIPT_EXPORT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptExport\");\nconst RADIANT_VIEW_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewModule\");\nfunction linkViewToElement(view, element) {\n view[RADIANT_VIEW_ELEMENT] = element;\n const ssrModule = element[RADIANT_SCRIPT_MODULE];\n if (ssrModule) {\n view[RADIANT_SCRIPT_MODULE] = ssrModule;\n view[RADIANT_SCRIPT_EXPORT] = element[RADIANT_SCRIPT_EXPORT] ?? element.name;\n }\n}\nexport function defineRadiantView(element, render, _options) {\n const view = args => render(args);\n linkViewToElement(view, element);\n return view;\n}\nexport function attachRadiantStylesheets(target, _stylesheets, moduleUrl) {\n const view = target;\n view[RADIANT_VIEW_MODULE] = moduleUrl;\n return target;\n}\nexport function syncRadiantViewMetadata(view) {\n const element = view[RADIANT_VIEW_ELEMENT];\n if (element) {\n linkViewToElement(view, element);\n }\n}", "export const RUI_CONTROL_ATTR = \"data-rui-control\";\nexport const RUI_FIELD_MANAGED_ATTR = \"data-rui-field-managed\";\nexport const RUI_FIELD_LABEL_ATTR = \"data-rui-field-label\";\nexport const RUI_FIELD_DESCRIPTION_ATTR = \"data-rui-field-description\";\nexport const RUI_FIELD_ERROR_ATTR = \"data-rui-field-error\";\nexport const RUI_FIELD_DEFAULT_VALUE_ATTR = \"data-default-value\";\nexport const RUI_FORM_DEFAULT_VALUES_ATTR = \"data-default-values\";\nconst HOST_CONTROL_TAGS = /* @__PURE__ */new Set([\"rui-combobox\", \"rui-date-field\", \"rui-date-range-picker\", \"rui-select\", \"rui-tag-group\", \"rui-checkbox\", \"rui-switch\", \"rui-radio-group\", \"rui-slider\", \"rui-number-field\", \"rui-listbox\"]);\nconst CONTROL_SELECTOR = `[${RUI_CONTROL_ATTR}], ${Array.from(HOST_CONTROL_TAGS).join(\", \")}, input, textarea`;\nconst stringValueAdapter = {\n read: host => {\n const value = Reflect.get(host, \"value\");\n return typeof value === \"string\" ? value : host.getAttribute(\"value\") ?? \"\";\n },\n write: (host, value) => {\n const next = value == null ? \"\" : String(value);\n host.setAttribute(\"value\", next);\n if (\"value\" in host) {\n Reflect.set(host, \"value\", next);\n }\n }\n};\nconst numberValueAdapter = {\n read: host => {\n const value = Reflect.get(host, \"value\");\n if (typeof value === \"number\") {\n return value;\n }\n const raw = host.getAttribute(\"value\");\n return raw == null || raw === \"\" ? \"\" : Number(raw);\n },\n write: (host, value) => {\n const next = value == null ? \"\" : String(value);\n host.setAttribute(\"value\", next);\n if (\"value\" in host) {\n Reflect.set(host, \"value\", value);\n }\n }\n};\nconst booleanValueAdapter = {\n read: host => {\n const input = host.querySelector('input[type=\"checkbox\"]');\n return input?.checked ?? host.hasAttribute(\"checked\");\n },\n write: (host, value) => {\n if (value) {\n host.setAttribute(\"checked\", \"\");\n } else {\n host.removeAttribute(\"checked\");\n }\n }\n};\nconst CONTROL_VALUE_ADAPTERS = /* @__PURE__ */new Map([[\"rui-checkbox\", booleanValueAdapter], [\"rui-switch\", booleanValueAdapter], [\"rui-combobox\", stringValueAdapter], [\"rui-date-field\", stringValueAdapter], [\"rui-date-range-picker\", stringValueAdapter], [\"rui-select\", stringValueAdapter], [\"rui-radio-group\", stringValueAdapter], [\"rui-listbox\", stringValueAdapter], [\"rui-tag-group\", stringValueAdapter], [\"rui-slider\", numberValueAdapter], [\"rui-number-field\", numberValueAdapter]]);\nfunction forEachFieldContentNode(root, visit) {\n const slotHost = root;\n const visited = /* @__PURE__ */new Set();\n const safeVisit = node => {\n if (visited.has(node)) {\n return;\n }\n visited.add(node);\n visit(node);\n };\n if (typeof slotHost.getSlotElements === \"function\") {\n for (const node of slotHost.getSlotElements()) {\n safeVisit(node);\n }\n }\n const renderRoot = root.querySelector(\".rui-field\") ?? root;\n for (const child of Array.from(renderRoot.children)) {\n safeVisit(child);\n }\n for (const node of renderRoot.querySelectorAll(\"*\")) {\n safeVisit(node);\n }\n for (const child of Array.from(root.children)) {\n safeVisit(child);\n }\n const shadow = root.shadowRoot;\n if (shadow) {\n for (const child of Array.from(shadow.children)) {\n safeVisit(child);\n }\n }\n}\nfunction queryFieldContent(root, selector) {\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found || !(node instanceof HTMLElement)) {\n return;\n }\n if (node.matches(selector)) {\n found = node;\n return;\n }\n found = node.querySelector(selector);\n });\n return found;\n}\nfunction pickPrimaryFieldControl(candidates) {\n if (candidates.length === 0) {\n return null;\n }\n if (candidates.length === 1) {\n return candidates[0];\n }\n const hostControl = candidates.find(candidate => HOST_CONTROL_TAGS.has(candidate.localName));\n const markedControl = candidates.find(candidate => candidate.hasAttribute(RUI_CONTROL_ATTR));\n if (markedControl) {\n return markedControl;\n }\n if (hostControl) {\n return hostControl;\n }\n const active = document.activeElement;\n if (active instanceof HTMLElement) {\n for (const candidate of candidates) {\n if (candidate === active || candidate.contains(active)) {\n return candidate;\n }\n }\n }\n const visible = candidates.filter(el => el.isConnected && el.getClientRects().length > 0 && !el.closest('[hidden],[aria-hidden=\"true\"]'));\n const pool = visible.length > 0 ? visible : candidates.filter(el => el.isConnected);\n return pool[pool.length - 1] ?? candidates[candidates.length - 1];\n}\nfunction listFieldControlsInRenderTree(root) {\n const renderRoot = root.querySelector(\".rui-field\");\n if (!(renderRoot instanceof HTMLElement)) {\n return [];\n }\n return Array.from(renderRoot.querySelectorAll(CONTROL_SELECTOR)).filter(el => root.contains(el));\n}\nexport function findFieldControl(root) {\n const fromRenderTree = pickPrimaryFieldControl(listFieldControlsInRenderTree(root));\n if (fromRenderTree) {\n return fromRenderTree;\n }\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found) {\n return;\n }\n const match = findControlInSubtree(node);\n if (match) {\n found = match;\n }\n });\n if (found) {\n return found;\n }\n const renderRoot = root.querySelector(\".rui-field\") ?? root;\n return findControlInSubtree(renderRoot);\n}\nfunction findControlInSubtree(node) {\n if (!(node instanceof HTMLElement)) {\n return null;\n }\n if (node.matches(`[${RUI_CONTROL_ATTR}]`)) {\n return node;\n }\n if (HOST_CONTROL_TAGS.has(node.localName)) {\n return node;\n }\n if (node instanceof HTMLInputElement || node instanceof HTMLTextAreaElement) {\n return node;\n }\n const nested = node.querySelector(CONTROL_SELECTOR);\n return nested;\n}\nexport function readControlValue(control) {\n if (control instanceof HTMLInputElement) {\n const host2 = resolveControlHost(control);\n const adapter = host2 === control ? void 0 : CONTROL_VALUE_ADAPTERS.get(host2.localName);\n if (adapter) {\n return adapter.read(host2);\n }\n if (control.type === \"checkbox\") {\n return control.checked;\n }\n if (control.type === \"number\" || control.type === \"range\") {\n return control.value === \"\" ? \"\" : Number(control.value);\n }\n return control.value;\n }\n if (control instanceof HTMLTextAreaElement) {\n return control.value;\n }\n const host = resolveControlHost(control);\n return CONTROL_VALUE_ADAPTERS.get(host.localName)?.read(host) ?? host.getAttribute(\"value\") ?? \"\";\n}\nexport function writeControlValue(control, value) {\n if (control instanceof HTMLInputElement) {\n const host2 = resolveControlHost(control);\n const adapter = host2 === control ? void 0 : CONTROL_VALUE_ADAPTERS.get(host2.localName);\n if (adapter) {\n adapter.write(host2, value);\n return;\n }\n if (control.type === \"checkbox\") {\n control.checked = Boolean(value);\n const ce = control.closest(\"rui-checkbox, rui-switch\");\n if (ce) {\n if (value) {\n ce.setAttribute(\"checked\", \"\");\n } else {\n ce.removeAttribute(\"checked\");\n }\n }\n return;\n }\n control.value = value == null ? \"\" : String(value);\n return;\n }\n if (control instanceof HTMLTextAreaElement) {\n control.value = value == null ? \"\" : String(value);\n return;\n }\n const host = resolveControlHost(control);\n CONTROL_VALUE_ADAPTERS.get(host.localName)?.write(host, value);\n}\nfunction resolveControlHost(control) {\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n const host = control.closest(Array.from(HOST_CONTROL_TAGS).join(\",\"));\n return host ?? control;\n }\n return control;\n}\nexport function findFieldLabel(root) {\n return queryFieldContent(root, `[${RUI_FIELD_LABEL_ATTR}], label.rui-label`);\n}\nexport function findFieldDescription(root) {\n return queryFieldContent(root, `[${RUI_FIELD_DESCRIPTION_ATTR}]`);\n}\nexport function findFieldError(root) {\n const all = findFieldErrorElements(root);\n return all[0] ?? null;\n}\nexport function findFieldErrorElements(root) {\n const renderRoot = root.querySelector(\".rui-field\");\n if (renderRoot instanceof HTMLElement) {\n const inRender = Array.from(renderRoot.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n const visible = inRender.filter(el => el.getClientRects().length > 0);\n if (visible.length > 0) {\n return visible;\n }\n if (inRender.length > 0) {\n return inRender;\n }\n }\n const fromDom = Array.from(root.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n if (fromDom.length > 0) {\n return fromDom;\n }\n const single = queryFieldContent(root, `[${RUI_FIELD_ERROR_ATTR}]`);\n return single ? [single] : [];\n}\nexport function wireFieldControlName(controlHost, ariaTarget, name) {\n if (!name) {\n return;\n }\n if (ariaTarget instanceof HTMLInputElement || ariaTarget instanceof HTMLTextAreaElement) {\n ariaTarget.name = name;\n }\n if (!controlHost) {\n return;\n }\n if (controlHost === ariaTarget) {\n return;\n }\n if (HOST_CONTROL_TAGS.has(controlHost.localName)) {\n controlHost.setAttribute(\"name\", name);\n }\n}\nexport function getAriaControlTarget(control) {\n if (control instanceof HTMLInputElement || control instanceof HTMLTextAreaElement) {\n return control;\n }\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n return control;\n }\n const marked = control.querySelector(`[${RUI_CONTROL_ATTR}]`);\n if (marked) {\n return marked;\n }\n if (control.localName === \"rui-combobox\") {\n return control.querySelector(\"[data-combobox-input]\") ?? control;\n }\n if (control.localName === \"rui-date-field\") {\n return control.querySelector(\"[data-date-field-input]\") ?? control;\n }\n if (control.localName === \"rui-date-range-picker\") {\n return control.querySelector(\"[data-range-start]\") ?? control;\n }\n if (control.localName === \"rui-select\") {\n return control.querySelector(\"[data-select-trigger]\") ?? control;\n }\n if (control.localName === \"rui-tag-group\") {\n return control.querySelector(\"[data-tag-list]\") ?? control;\n }\n if (control.localName === \"rui-number-field\") {\n return control.querySelector(\"[data-number-field-input], input\") ?? control;\n }\n if (control.localName === \"rui-slider\") {\n return control.querySelector('input[type=\"range\"]') ?? control;\n }\n if (control.localName === \"rui-checkbox\" || control.localName === \"rui-switch\") {\n return control.querySelector(\"input\") ?? control;\n }\n if (control.localName === \"rui-radio-group\") {\n const checked = control.querySelector('input[type=\"radio\"]:checked');\n const first = control.querySelector('input[type=\"radio\"]');\n return checked ?? first ?? control;\n }\n return control;\n}"],
|
|
5
|
+
"mappings": "AAAA,OAAS,OAAAA,MAAW,4BCAb,SAASC,KAAMC,EAAO,CAC3B,OAAOA,EAAM,OAAO,OAAO,EAAE,KAAK,GAAG,CACvC,CCCA,IAAMC,EAAqC,OAAO,IAAI,wCAAwC,EAcvF,SAASC,EAAyBC,EAAQC,EAAcC,EAAW,CACxE,IAAMC,EAAOH,EACb,OAAAG,EAAKC,CAAmB,EAAIF,EACrBF,CACT,CCrBO,IAAMK,EAAmB,mBAEzB,IAAMC,EAAuB,uBAKpC,IAAMC,EAAmC,IAAI,IAAI,CAAC,eAAgB,iBAAkB,wBAAyB,aAAc,gBAAiB,eAAgB,aAAc,kBAAmB,aAAc,mBAAoB,aAAa,CAAC,EACvOC,EAAmB,IAAIC,CAAgB,MAAM,MAAM,KAAKF,CAAiB,EAAE,KAAK,IAAI,CAAC,oBHJpF,SAASG,EAAS,CACvB,SAAAC,EACA,QAAAC,EACA,MAAOC,EACP,GAAGC,CACL,EAAG,CACD,OAAsBC,EAAI,QAAS,CACjC,GAAGD,EAED,CAACE,CAAoB,EAAG,GAE1B,MAAOC,EAAG,YAAaJ,CAAS,EAChC,QAAAD,EACA,SAAAD,CACF,CAAC,CACH,CACAO,EAAyBR,EAAU,CAAC,aAAa,EAAG,YAAY,GAAG",
|
|
6
6
|
"names": ["jsx", "cx", "parts", "RADIANT_VIEW_MODULE", "attachRadiantStylesheets", "target", "_stylesheets", "moduleUrl", "view", "RADIANT_VIEW_MODULE", "RUI_CONTROL_ATTR", "RUI_FIELD_LABEL_ATTR", "HOST_CONTROL_TAGS", "CONTROL_SELECTOR", "RUI_CONTROL_ATTR", "RuiLabel", "children", "htmlFor", "className", "props", "jsx", "RUI_FIELD_LABEL_ATTR", "cx", "attachRadiantStylesheets"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { RuiListbox as RuiListboxElement, type RuiListboxProps, type RuiListboxChangeDetail } from './listbox.script';
|
|
2
|
-
export { RuiListbox, type
|
|
2
|
+
export { RuiListbox, RuiListboxOption, type RuiListboxOptionData, type RuiListboxOptionProps } from './listbox';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as _e}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as we,customElement as Be,event as Ue,onEvent as Ee,onUpdated as ze,prop as L}from"@ecopages/radiant";function Oe(t,e){t.forEach((r,i)=>{r.tabIndex=i===e?0:-1})}function Ie(t,e){if(!t.length)return null;let r=Math.max(0,Math.min(t.length-1,e));return Oe(t,r),t[r]?.focus(),t[r]??null}function je(t,e){return t==="Home"?"first":t==="End"?"last":e==="horizontal"?t==="ArrowRight"?"next":t==="ArrowLeft"?"prev":null:t==="ArrowDown"?"next":t==="ArrowUp"?"prev":null}function oe(t){let{items:e,current:r,key:i,orientation:h="horizontal",wrap:w=!0}=t;if(!e.length||!r)return{handled:!1};let d=e.indexOf(r);if(d<0)return{handled:!1};let a=je(i,h);if(!a)return{handled:!1};let p=d;a==="first"?p=0:a==="last"?p=e.length-1:a==="next"?p=w?(d+1)%e.length:Math.min(e.length-1,d+1):p=w?(d-1+e.length)%e.length:Math.max(0,d-1);let R=Ie(e,p);return R?{handled:!0,index:p,item:R}:{handled:!1}}var ae,se,le,ue,de,ce,fe,be,he,pe,me,ve,ye,ge;function ke(t,e,r,i,h,w){var d,a,p,R,O,U,S,X=Symbol.metadata||Symbol.for("Symbol.metadata"),G=Object.defineProperty,z=Object.create,J=[z(null),z(null)],Q=e.length;function I(n,m,f){return function(o,s){m&&(s=o,o=t);for(var v=0;v<n.length;v++)s=n[v].apply(o,f?[s]:[]);return f?s:o}}function x(n,m,f,o){if(typeof n!="function"&&(o||n!==void 0))throw new TypeError(m+" must "+(f||"be")+" a function"+(o?"":" or undefined"));return n}function Y(n,m,f,o,s,v,E,b,y,g,H){function K(u){if(!H(u))throw new TypeError("Attempted to access private element on non-instance")}var q=[].concat(m[0]),F=m[3],$=!E,T=s===1,N=s===3,ee=s===4,j=s===2;function k(u,A,ie){return function(V,ne){return A&&(ne=V,V=n),ie&&ie(V),l[u].call(V,ne)}}if(!$){var l={},W=[],_=N?"get":ee||T?"set":"value";if(y?(g||T?l={get:xe(function(){return F(this)},o,"get"),set:function(u){m[4](this,u)}}:l[_]=F,g||xe(l[_],o,j?"":_)):g||(l=Object.getOwnPropertyDescriptor(n,o)),!g&&!y){if((a=J[+b][o])&&(a^s)!==7)throw Error("Decorating two elements with the same name ("+l[_].name+") is not supported yet");J[+b][o]=s<3?1:s}}for(var c=n,M=q.length-1;M>=0;M-=f?2:1){var te=x(q[M],"A decorator","be",!0),re=f?q[M-1]:void 0,P={},D={kind:["field","accessor","method","getter","setter","class"][s],name:o,metadata:d,addInitializer:function(u,A){if(u.v)throw new TypeError("attempted to call addInitializer after decoration was finished");x(A,"An initializer","be",!0),v.push(A)}.bind(null,P)};if($)a=te.call(re,c,D),P.v=1,x(a,"class decorators","return")&&(c=a);else if(D.static=b,D.private=y,a=D.access={has:y?H.bind():function(u){return o in u}},ee||(a.get=y?j?function(u){return K(u),l.value}:k("get",0,K):function(u){return u[o]}),j||N||(a.set=y?k("set",0,K):function(u,A){u[o]=A}),c=te.call(re,T?{get:l.get,set:l.set}:l[_],D),P.v=1,T){if(typeof c=="object"&&c)(a=x(c.get,"accessor.get"))&&(l.get=a),(a=x(c.set,"accessor.set"))&&(l.set=a),(a=x(c.init,"accessor.init"))&&W.unshift(a);else if(c!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else x(c,(g?"field":"method")+" decorators","return")&&(g?W.unshift(c):l[_]=c)}return s<2&&E.push(I(W,b,1),I(v,b,0)),g||$||(y?T?E.splice(-1,0,k("get",b),k("set",b)):E.push(j?l[_]:x.call.bind(l[_])):G(n,o,l)),c}function Z(n){return G(n,X,{configurable:!0,enumerable:!0,value:d})}return w!==void 0&&(d=w[X]),d=z(d??null),O=[],U=function(n){n&&O.push(I(n))},S=function(n,m){for(var f=0;f<r.length;f++){var o=r[f],s=o[1],v=7&s;if((8&s)==n&&!v==m){var E=o[2],b=!!o[3],y=16&s;Y(n?t:t.prototype,o,y,b?"#"+E:Me(E),v,v<2?[]:n?R=R||[]:p=p||[],O,!!n,b,m,n&&b?function(g){return Ce(g)===t}:h)}}},S(8,0),S(0,0),S(8,1),S(0,1),U(p),U(R),a=O,Q||Z(t),{e:a,get c(){var n=[];return Q&&[Z(t=Y(t,[e],i,t.name,5,n)),I(n,1)]}}}function Me(t){var e=Ve(t,"string");return typeof e=="symbol"?e:e+""}function Ve(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var i=r.call(t,e||"default");if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function xe(t,e,r){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:r?r+" "+e:e})}catch{}return t}function Ce(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(t!==null?typeof t:"null"));return t}var C,Re=class extends we{static{({e:[le,ue,de,ce,fe,be,he,pe,me,ve,ye,ge,ae],c:[C,se]}=ke(this,[Be("rui-listbox")],[[L({type:String,reflect:!0,defaultValue:""}),0,"value"],[L({type:String,defaultValue:""}),0,"label"],[L({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[L({type:Boolean,reflect:!0,defaultValue:!1}),0,"embedded"],[L({type:Boolean,reflect:!0}),0,"bordered"],[Ue({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[ze(["value","disabled","embedded","bordered"]),2,"onPropsUpdated"],[Ee({selector:'[role="option"]',type:"click"}),2,"onOptionClick"],[Ee({selector:'[role="option"]',type:"keydown"}),2,"onOptionKeydown"]],0,void 0,we))}value=(ae(this),le(this));label=(ue(this),de(this));disabled=(ce(this),fe(this));embedded=(be(this),he(this));bordered=(pe(this),me(this));changeEvent=(ve(this),ye(this));resolvedAriaLabel=(ge(this),this.$.label.map(e=>e||void 0));resolvedAriaDisabled=this.$.disabled.map(e=>e?"true":void 0);connectedCallback(){super.connectedCallback(),queueMicrotask(()=>{this.sync(),this.syncPresentation()})}onPropsUpdated(){this.sync(),this.syncPresentation()}getOptions(){return Array.from(this.querySelectorAll('[role="option"]'))}sync(){let e=this.getOptions();for(let r of e){let i=r.getAttribute("data-value")===this.value;r.setAttribute("aria-selected",String(i)),r.tabIndex=this.embedded?-1:i||!this.value&&r===e[0]?0:-1}}select(e){this.disabled||e.getAttribute("aria-disabled")==="true"||(this.value=e.getAttribute("data-value")||e.textContent?.trim()||"",this.sync(),this.changeEvent.emit({value:this.value}),e.focus())}onOptionClick(e){if(this.embedded)return;let r=e.target.closest('[role="option"]');r&&this.contains(r)&&this.select(r)}onOptionKeydown(e){if(this.embedded)return;let r=this.getOptions(),i=e.target.closest('[role="option"]');if(!i)return;if(e.key==="Enter"||e.key===" "){e.preventDefault(),this.select(i);return}let h=oe({items:r,current:i,key:e.key,orientation:"vertical"});h.handled&&(e.preventDefault(),this.select(h.item))}isBordered(){return this.bordered!=null?this.bordered:!this.embedded}syncPresentation(){let e=this.querySelector(".rui-listbox");e&&e.classList.toggle("rui-listbox--bordered",this.isBordered())}render(){let e=this.isBordered();return _e("div",{class:`rui-listbox${e?" rui-listbox--bordered":""}`,role:"listbox","data-rui-control":!0,"data-rui-control-type":"text","aria-label":this.resolvedAriaLabel,"aria-disabled":this.resolvedAriaDisabled,children:_e("slot",{})})}static{se()}};import{jsx as B}from"@ecopages/jsx/jsx-runtime";function Ae(...t){return t.filter(Boolean).join(" ")}var Ke=Symbol.for("@ecopages/storybook-radiant.viewElement"),Se=Symbol.for("@ecopages/storybook-radiant.scriptModule"),Te=Symbol.for("@ecopages/storybook-radiant.scriptExport");function qe(t,e){t[Ke]=e;let r=e[Se];r&&(t[Se]=r,t[Te]=e[Te]??e.name)}function De(t,e,r){let i=h=>e(h);return qe(i,t),i}function Le({value:t,label:e,children:r,class:i,disabled:h,...w}){return B("div",{...w,class:Ae("rui-listbox__option",i),role:"option","data-value":t,"data-label":e,"aria-disabled":h?"true":void 0,tabindex:-1,children:r})}var $e=De(C,({options:t,children:e,...r})=>t!=null?B("rui-listbox",{...r,children:t.map(i=>B(Le,{value:i.value,label:typeof i.label=="string"?i.label:void 0,disabled:i.disabled,children:i.label}))}):B("rui-listbox",{...r,children:e}),{stylesheets:["./listbox.css"]});export{$e as RuiListbox,C as RuiListboxElement,Le as RuiListboxOption};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/ui/listbox/listbox.script.tsx", "../../../../src/lib/roving-tabindex.ts", "../../../../src/components/ui/listbox/listbox.tsx", "../../../../src/lib/radiant-view.ts"],
|
|
4
|
-
"sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_label, _init_extra_label, _init_disabled, _init_extra_disabled, _init_changeEvent, _init_extra_changeEvent;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { RadiantElement, customElement, event, onEvent, onUpdated, prop } from \"@ecopages/radiant\";\nimport { navigateRovingTabindex } from \"@/lib/roving-tabindex\";\nlet _RuiListbox;\nclass RuiListbox extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_label, _init_extra_label, _init_disabled, _init_extra_disabled, _init_changeEvent, _init_extra_changeEvent, _initProto],\n c: [_RuiListbox, _initClass]\n } = _applyDecs(this, [customElement(\"rui-listbox\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [onUpdated([\"value\", \"disabled\"]), 2, \"onPropsUpdated\"], [onEvent({\n selector: '[role=\"option\"]',\n type: \"click\"\n }), 2, \"onOptionClick\"], [onEvent({\n selector: '[role=\"option\"]',\n type: \"keydown\"\n }), 2, \"onOptionKeydown\"]], 0, void 0, RadiantElement));\n }\n value = (_initProto(this), _init_value(this));\n label = (_init_extra_value(this), _init_label(this));\n disabled = (_init_extra_label(this), _init_disabled(this));\n changeEvent = (_init_extra_disabled(this), _init_changeEvent(this));\n resolvedAriaLabel = (_init_extra_changeEvent(this), this.$.label.map(label => label || void 0));\n resolvedAriaDisabled = this.$.disabled.map(disabled => disabled ? \"true\" : void 0);\n connectedCallback() {\n super.connectedCallback();\n queueMicrotask(() => this.sync());\n }\n onPropsUpdated() {\n this.sync();\n }\n getOptions() {\n return Array.from(this.querySelectorAll('[role=\"option\"]'));\n }\n sync() {\n const options = this.getOptions();\n for (const option of options) {\n const selected = option.getAttribute(\"data-value\") === this.value;\n option.setAttribute(\"aria-selected\", String(selected));\n option.tabIndex = selected || !this.value && option === options[0] ? 0 : -1;\n }\n }\n select(option) {\n if (this.disabled || option.getAttribute(\"aria-disabled\") === \"true\") return;\n this.value = option.getAttribute(\"data-value\") || option.textContent?.trim() || \"\";\n this.sync();\n this.changeEvent.emit({\n value: this.value\n });\n option.focus();\n }\n onOptionClick(event2) {\n const option = event2.target.closest('[role=\"option\"]');\n if (option && this.contains(option)) this.select(option);\n }\n onOptionKeydown(event2) {\n const options = this.getOptions();\n const current = event2.target.closest('[role=\"option\"]');\n if (!current) return;\n if (event2.key === \"Enter\" || event2.key === \" \") {\n event2.preventDefault();\n this.select(current);\n return;\n }\n const result = navigateRovingTabindex({\n items: options,\n current,\n key: event2.key,\n orientation: \"vertical\"\n });\n if (!result.handled) return;\n event2.preventDefault();\n this.select(result.item);\n }\n render() {\n return /* @__PURE__ */jsx(\"div\", {\n class: \"rui-listbox\",\n role: \"listbox\",\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n \"aria-label\": this.resolvedAriaLabel,\n \"aria-disabled\": this.resolvedAriaDisabled,\n children: /* @__PURE__ */jsx(\"slot\", {})\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiListbox as RuiListbox };", "export function applyRovingTabindex(items, activeIndex) {\n items.forEach((item, index) => {\n item.tabIndex = index === activeIndex ? 0 : -1;\n });\n}\nexport function focusRovingItem(items, index) {\n if (!items.length) return null;\n const next = Math.max(0, Math.min(items.length - 1, index));\n applyRovingTabindex(items, next);\n items[next]?.focus();\n return items[next] ?? null;\n}\nfunction deltaForKey(key, orientation) {\n if (key === \"Home\") return \"first\";\n if (key === \"End\") return \"last\";\n if (orientation === \"horizontal\") {\n if (key === \"ArrowRight\") return \"next\";\n if (key === \"ArrowLeft\") return \"prev\";\n return null;\n }\n if (key === \"ArrowDown\") return \"next\";\n if (key === \"ArrowUp\") return \"prev\";\n return null;\n}\nexport function navigateRovingTabindex(options) {\n const {\n items,\n current,\n key,\n orientation = \"horizontal\",\n wrap = true\n } = options;\n if (!items.length || !current) return {\n handled: false\n };\n const index = items.indexOf(current);\n if (index < 0) return {\n handled: false\n };\n const delta = deltaForKey(key, orientation);\n if (!delta) return {\n handled: false\n };\n let next = index;\n if (delta === \"first\") next = 0;else if (delta === \"last\") next = items.length - 1;else if (delta === \"next\") next = wrap ? (index + 1) % items.length : Math.min(items.length - 1, index + 1);else next = wrap ? (index - 1 + items.length) % items.length : Math.max(0, index - 1);\n const item = focusRovingItem(items, next);\n if (!item) return {\n handled: false\n };\n return {\n handled: true,\n index: next,\n item\n };\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { defineRadiantView } from \"@/lib/radiant-view\";\nimport { RuiListbox as RuiListboxElement } from \"./listbox.script\";\nexport const RuiListbox = defineRadiantView(RuiListboxElement, ({\n options,\n ...props\n}) => /* @__PURE__ */jsx(\"rui-listbox\", {\n ...props,\n children: options.map(option => /* @__PURE__ */jsx(\"div\", {\n class: \"rui-listbox__option\",\n role: \"option\",\n \"data-value\": option.value,\n \"aria-disabled\": option.disabled ? \"true\" : void 0,\n tabindex: -1,\n children: option.label\n }))\n}), {\n stylesheets: [\"./listbox.css\"]\n});", "const RADIANT_VIEW_ELEMENT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewElement\");\nconst RADIANT_SCRIPT_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptModule\");\nconst RADIANT_SCRIPT_EXPORT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptExport\");\nconst RADIANT_VIEW_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewModule\");\nfunction linkViewToElement(view, element) {\n view[RADIANT_VIEW_ELEMENT] = element;\n const ssrModule = element[RADIANT_SCRIPT_MODULE];\n if (ssrModule) {\n view[RADIANT_SCRIPT_MODULE] = ssrModule;\n view[RADIANT_SCRIPT_EXPORT] = element[RADIANT_SCRIPT_EXPORT] ?? element.name;\n }\n}\nexport function defineRadiantView(element, render, _options) {\n const view = args => render(args);\n linkViewToElement(view, element);\n return view;\n}\nexport function attachRadiantStylesheets(target, _stylesheets, moduleUrl) {\n const view = target;\n view[RADIANT_VIEW_MODULE] = moduleUrl;\n return target;\n}\nexport function syncRadiantViewMetadata(view) {\n const element = view[RADIANT_VIEW_ELEMENT];\n if (element) {\n linkViewToElement(view, element);\n }\n}"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["jsx", "RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "applyRovingTabindex", "items", "activeIndex", "item", "index", "focusRovingItem", "next", "deltaForKey", "key", "orientation", "navigateRovingTabindex", "options", "current", "wrap", "delta", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_label", "_init_extra_label", "_init_disabled", "_init_extra_disabled", "_init_changeEvent", "_init_extra_changeEvent", "_applyDecs", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "
|
|
3
|
+
"sources": ["../../../../src/components/ui/listbox/listbox.script.tsx", "../../../../src/lib/roving-tabindex.ts", "../../../../src/components/ui/listbox/listbox.tsx", "../../../../src/lib/cx.ts", "../../../../src/lib/radiant-view.ts"],
|
|
4
|
+
"sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_label, _init_extra_label, _init_disabled, _init_extra_disabled, _init_embedded, _init_extra_embedded, _init_bordered, _init_extra_bordered, _init_changeEvent, _init_extra_changeEvent;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { RadiantElement, customElement, event, onEvent, onUpdated, prop } from \"@ecopages/radiant\";\nimport { navigateRovingTabindex } from \"@/lib/roving-tabindex\";\nlet _RuiListbox;\nclass RuiListbox extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_label, _init_extra_label, _init_disabled, _init_extra_disabled, _init_embedded, _init_extra_embedded, _init_bordered, _init_extra_bordered, _init_changeEvent, _init_extra_changeEvent, _initProto],\n c: [_RuiListbox, _initClass]\n } = _applyDecs(this, [customElement(\"rui-listbox\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"embedded\"], [prop({\n type: Boolean,\n reflect: true\n }), 0, \"bordered\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [onUpdated([\"value\", \"disabled\", \"embedded\", \"bordered\"]), 2, \"onPropsUpdated\"], [onEvent({\n selector: '[role=\"option\"]',\n type: \"click\"\n }), 2, \"onOptionClick\"], [onEvent({\n selector: '[role=\"option\"]',\n type: \"keydown\"\n }), 2, \"onOptionKeydown\"]], 0, void 0, RadiantElement));\n }\n value = (_initProto(this), _init_value(this));\n label = (_init_extra_value(this), _init_label(this));\n disabled = (_init_extra_label(this), _init_disabled(this));\n embedded = (_init_extra_disabled(this), _init_embedded(this));\n bordered = (_init_extra_embedded(this), _init_bordered(this));\n changeEvent = (_init_extra_bordered(this), _init_changeEvent(this));\n resolvedAriaLabel = (_init_extra_changeEvent(this), this.$.label.map(label => label || void 0));\n resolvedAriaDisabled = this.$.disabled.map(disabled => disabled ? \"true\" : void 0);\n connectedCallback() {\n super.connectedCallback();\n queueMicrotask(() => {\n this.sync();\n this.syncPresentation();\n });\n }\n onPropsUpdated() {\n this.sync();\n this.syncPresentation();\n }\n getOptions() {\n return Array.from(this.querySelectorAll('[role=\"option\"]'));\n }\n sync() {\n const options = this.getOptions();\n for (const option of options) {\n const selected = option.getAttribute(\"data-value\") === this.value;\n option.setAttribute(\"aria-selected\", String(selected));\n option.tabIndex = this.embedded ? -1 : selected || !this.value && option === options[0] ? 0 : -1;\n }\n }\n select(option) {\n if (this.disabled || option.getAttribute(\"aria-disabled\") === \"true\") return;\n this.value = option.getAttribute(\"data-value\") || option.textContent?.trim() || \"\";\n this.sync();\n this.changeEvent.emit({\n value: this.value\n });\n option.focus();\n }\n onOptionClick(event2) {\n if (this.embedded) {\n return;\n }\n const option = event2.target.closest('[role=\"option\"]');\n if (option && this.contains(option)) this.select(option);\n }\n onOptionKeydown(event2) {\n if (this.embedded) {\n return;\n }\n const options = this.getOptions();\n const current = event2.target.closest('[role=\"option\"]');\n if (!current) return;\n if (event2.key === \"Enter\" || event2.key === \" \") {\n event2.preventDefault();\n this.select(current);\n return;\n }\n const result = navigateRovingTabindex({\n items: options,\n current,\n key: event2.key,\n orientation: \"vertical\"\n });\n if (!result.handled) return;\n event2.preventDefault();\n this.select(result.item);\n }\n isBordered() {\n if (this.bordered != null) {\n return this.bordered;\n }\n return !this.embedded;\n }\n syncPresentation() {\n const root = this.querySelector(\".rui-listbox\");\n if (!root) {\n return;\n }\n root.classList.toggle(\"rui-listbox--bordered\", this.isBordered());\n }\n render() {\n const bordered = this.isBordered();\n return /* @__PURE__ */jsx(\"div\", {\n class: `rui-listbox${bordered ? \" rui-listbox--bordered\" : \"\"}`,\n role: \"listbox\",\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n \"aria-label\": this.resolvedAriaLabel,\n \"aria-disabled\": this.resolvedAriaDisabled,\n children: /* @__PURE__ */jsx(\"slot\", {})\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiListbox as RuiListbox };", "export function applyRovingTabindex(items, activeIndex) {\n items.forEach((item, index) => {\n item.tabIndex = index === activeIndex ? 0 : -1;\n });\n}\nexport function focusRovingItem(items, index) {\n if (!items.length) return null;\n const next = Math.max(0, Math.min(items.length - 1, index));\n applyRovingTabindex(items, next);\n items[next]?.focus();\n return items[next] ?? null;\n}\nfunction deltaForKey(key, orientation) {\n if (key === \"Home\") return \"first\";\n if (key === \"End\") return \"last\";\n if (orientation === \"horizontal\") {\n if (key === \"ArrowRight\") return \"next\";\n if (key === \"ArrowLeft\") return \"prev\";\n return null;\n }\n if (key === \"ArrowDown\") return \"next\";\n if (key === \"ArrowUp\") return \"prev\";\n return null;\n}\nexport function navigateRovingTabindex(options) {\n const {\n items,\n current,\n key,\n orientation = \"horizontal\",\n wrap = true\n } = options;\n if (!items.length || !current) return {\n handled: false\n };\n const index = items.indexOf(current);\n if (index < 0) return {\n handled: false\n };\n const delta = deltaForKey(key, orientation);\n if (!delta) return {\n handled: false\n };\n let next = index;\n if (delta === \"first\") next = 0;else if (delta === \"last\") next = items.length - 1;else if (delta === \"next\") next = wrap ? (index + 1) % items.length : Math.min(items.length - 1, index + 1);else next = wrap ? (index - 1 + items.length) % items.length : Math.max(0, index - 1);\n const item = focusRovingItem(items, next);\n if (!item) return {\n handled: false\n };\n return {\n handled: true,\n index: next,\n item\n };\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { defineRadiantView } from \"@/lib/radiant-view\";\nimport { RuiListbox as RuiListboxElement } from \"./listbox.script\";\nexport function RuiListboxOption({\n value,\n label,\n children,\n class: className,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n class: cx(\"rui-listbox__option\", className),\n role: \"option\",\n \"data-value\": value,\n \"data-label\": label,\n \"aria-disabled\": disabled ? \"true\" : void 0,\n tabindex: -1,\n children\n });\n}\nexport const RuiListbox = defineRadiantView(RuiListboxElement, ({\n options,\n children,\n ...props\n}) => {\n if (options != null) {\n return /* @__PURE__ */jsx(\"rui-listbox\", {\n ...props,\n children: options.map(option => /* @__PURE__ */jsx(RuiListboxOption, {\n value: option.value,\n label: typeof option.label === \"string\" ? option.label : void 0,\n disabled: option.disabled,\n children: option.label\n }))\n });\n }\n return /* @__PURE__ */jsx(\"rui-listbox\", {\n ...props,\n children\n });\n}, {\n stylesheets: [\"./listbox.css\"]\n});", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "const RADIANT_VIEW_ELEMENT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewElement\");\nconst RADIANT_SCRIPT_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptModule\");\nconst RADIANT_SCRIPT_EXPORT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptExport\");\nconst RADIANT_VIEW_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewModule\");\nfunction linkViewToElement(view, element) {\n view[RADIANT_VIEW_ELEMENT] = element;\n const ssrModule = element[RADIANT_SCRIPT_MODULE];\n if (ssrModule) {\n view[RADIANT_SCRIPT_MODULE] = ssrModule;\n view[RADIANT_SCRIPT_EXPORT] = element[RADIANT_SCRIPT_EXPORT] ?? element.name;\n }\n}\nexport function defineRadiantView(element, render, _options) {\n const view = args => render(args);\n linkViewToElement(view, element);\n return view;\n}\nexport function attachRadiantStylesheets(target, _stylesheets, moduleUrl) {\n const view = target;\n view[RADIANT_VIEW_MODULE] = moduleUrl;\n return target;\n}\nexport function syncRadiantViewMetadata(view) {\n const element = view[RADIANT_VIEW_ELEMENT];\n if (element) {\n linkViewToElement(view, element);\n }\n}"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["jsx", "RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "applyRovingTabindex", "items", "activeIndex", "item", "index", "focusRovingItem", "next", "deltaForKey", "key", "orientation", "navigateRovingTabindex", "options", "current", "wrap", "delta", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_label", "_init_extra_label", "_init_disabled", "_init_extra_disabled", "_init_embedded", "_init_extra_embedded", "_init_bordered", "_init_extra_bordered", "_init_changeEvent", "_init_extra_changeEvent", "_applyDecs", "e", "t", "n", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiListbox", "RuiListbox", "RadiantElement", "customElement", "prop", "event", "onUpdated", "onEvent", "label", "disabled", "options", "option", "selected", "event2", "current", "result", "navigateRovingTabindex", "root", "bordered", "jsx", "jsx", "cx", "parts", "RADIANT_VIEW_ELEMENT", "RADIANT_SCRIPT_MODULE", "RADIANT_SCRIPT_EXPORT", "linkViewToElement", "view", "element", "RADIANT_VIEW_ELEMENT", "ssrModule", "RADIANT_SCRIPT_MODULE", "RADIANT_SCRIPT_EXPORT", "defineRadiantView", "render", "_options", "args", "RuiListboxOption", "value", "label", "children", "className", "disabled", "props", "jsx", "cx", "RuiListbox", "defineRadiantView", "_RuiListbox", "options", "option"]
|
|
7
7
|
}
|