@k2b/ui 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/actions/Dropdown.js +6 -3
- package/dist/browser/actions/Dropdown.js.map +1 -1
- package/dist/browser/chat/ChatPrimitives.js +44 -41
- package/dist/browser/chat/ChatPrimitives.js.map +1 -1
- package/dist/browser/chat/ChatTimeline.js +3 -1
- package/dist/browser/chat/ChatTimeline.js.map +1 -1
- package/dist/browser/chat/types.js.map +1 -1
- package/dist/browser/content/MarkdownView.js +14 -3
- package/dist/browser/content/MarkdownView.js.map +1 -1
- package/dist/browser/feedback/Tooltip.js +6 -2
- package/dist/browser/feedback/Tooltip.js.map +1 -1
- package/dist/browser/feedback/dialog-core.js +22 -3
- package/dist/browser/feedback/dialog-core.js.map +1 -1
- package/dist/browser/feedback/tooltip-position.js +15 -0
- package/dist/browser/feedback/tooltip-position.js.map +1 -1
- package/dist/browser/inputs/ChoiceInputs.js +47 -38
- package/dist/browser/inputs/ChoiceInputs.js.map +1 -1
- package/dist/browser/internal/portal.js +1 -1
- package/dist/browser/internal/portal.js.map +1 -1
- package/dist/browser/layout/DetailPanel.js +194 -81
- package/dist/browser/layout/DetailPanel.js.map +1 -1
- package/dist/browser/layout/PanelDialog.js +14 -5
- package/dist/browser/layout/PanelDialog.js.map +1 -1
- package/dist/ssr/actions/Dropdown.js +1 -1
- package/dist/ssr/actions/Dropdown.js.map +1 -1
- package/dist/ssr/chat/ChatPrimitives.js +1 -1
- package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
- package/dist/ssr/chat/ChatTimeline.js +3 -1
- package/dist/ssr/chat/ChatTimeline.js.map +1 -1
- package/dist/ssr/chat/types.js.map +1 -1
- package/dist/ssr/content/MarkdownView.js +14 -3
- package/dist/ssr/content/MarkdownView.js.map +1 -1
- package/dist/ssr/feedback/Tooltip.js +6 -4
- package/dist/ssr/feedback/Tooltip.js.map +1 -1
- package/dist/ssr/feedback/dialog-core.js +22 -3
- package/dist/ssr/feedback/dialog-core.js.map +1 -1
- package/dist/ssr/feedback/tooltip-position.js +15 -0
- package/dist/ssr/feedback/tooltip-position.js.map +1 -1
- package/dist/ssr/inputs/ChoiceInputs.js +9 -6
- package/dist/ssr/inputs/ChoiceInputs.js.map +1 -1
- package/dist/ssr/internal/portal.js +1 -1
- package/dist/ssr/internal/portal.js.map +1 -1
- package/dist/ssr/layout/DetailPanel.js +86 -15
- package/dist/ssr/layout/DetailPanel.js.map +1 -1
- package/dist/ssr/layout/PanelDialog.js +1 -1
- package/dist/ssr/layout/PanelDialog.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/actions/Dropdown.d.ts +3 -1
- package/dist/types/chat/types.d.ts +2 -0
- package/dist/types/content/MarkdownView.d.ts +6 -1
- package/dist/types/feedback/dialog-core.d.ts +2 -0
- package/dist/types/feedback/tooltip-position.d.ts +1 -1
- package/dist/types/inputs/ChoiceInputs.d.ts +3 -0
- package/dist/types/layout/DetailPanel.d.ts +6 -0
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["For","Show","splitProps","createFieldMeta","Field","fieldControlAria","useUiMessages","commitFieldValue","resolveMaybeAccessor","PinInput","props","messages","meta","id","length","Math","max","inputs","digits","value","replace","slice","error","emit","onValueChange","onValueCommit","updateDigit","index","input","disabled","digit","current","focus","select","handleKeyDown","event","key","preventDefault","handlePaste","pasted","clipboardData","getData","focused","indexOf","document","activeElement","start","insert","next","min","_$createComponent","class","label","description","labelFor","required","children","_$ssrElement","_$mergeProps","controlId","data-stretch","stretch","undefined","role","_$escape","each","Array","from","_","_$ssr","_tmpl$","_$ssrAttribute","pinDigit","total","when","name","_tmpl$2","Slider","local","rest","Number","percentage","span","track","position","center","low","high","resetValue","defaultValue","_tmpl$4","type","style","background","showValue","_tmpl$3","formatValue","ColorInput","currentColor","isTransparent","transparentValue","compact","picker","control","_tmpl$5","_tmpl$9","_tmpl$6","_$ssrStyle","_tmpl$7","toUpperCase","transparent","_tmpl$8","useColor","useTransparent"],"sources":["inputs/ChoiceInputs.tsx"],"sourcesContent":["import { For, type JSX, Show, splitProps } from \"solid-js\";\nimport { createFieldMeta, Field, fieldControlAria } from \"../internal/field\";\nimport { useUiMessages } from \"../intl/messages\";\nimport type { FieldProps, MaybeAccessor, ValueFieldProps } from \"./field-contract\";\nimport { commitFieldValue, resolveMaybeAccessor } from \"./field-contract\";\n\nexport type PinInputProps = ValueFieldProps<string> & {\n length?: number;\n name?: string;\n stretch?: boolean;\n};\n\nexport function PinInput(props: PinInputProps): JSX.Element {\n const messages = useUiMessages();\n const meta = createFieldMeta(props.id);\n const length = () => Math.max(1, props.length ?? 6);\n let inputs: HTMLInputElement[] = [];\n const digits = () => (resolveMaybeAccessor(props.value) ?? \"\").replace(/\\D/g, \"\").slice(0, length());\n const error = () => resolveMaybeAccessor(props.error);\n const emit = (value: string) => {\n props.onValueChange?.(value);\n if (value.length === length()) props.onValueCommit?.(value);\n };\n\n const updateDigit = (index: number, input: string) => {\n if (props.disabled) return;\n const digit = input.replace(/\\D/g, \"\").slice(-1);\n const current = digits();\n emit(`${current.slice(0, index)}${digit}${current.slice(index + 1)}`);\n if (digit && index < length() - 1) {\n inputs[index + 1]?.focus();\n inputs[index + 1]?.select();\n }\n };\n\n const handleKeyDown = (index: number, event: KeyboardEvent) => {\n if (props.disabled) return;\n if (event.key === \"ArrowLeft\" && index > 0) {\n event.preventDefault();\n inputs[index - 1]?.focus();\n inputs[index - 1]?.select();\n } else if (event.key === \"ArrowRight\" && index < length() - 1) {\n event.preventDefault();\n inputs[index + 1]?.focus();\n inputs[index + 1]?.select();\n } else if (event.key === \"Backspace\" && !digits()[index] && index > 0) {\n event.preventDefault();\n const current = digits();\n emit(`${current.slice(0, index - 1)}${current.slice(index)}`);\n inputs[index - 1]?.focus();\n inputs[index - 1]?.select();\n }\n };\n\n const handlePaste = (event: ClipboardEvent) => {\n if (props.disabled) return;\n const pasted = event.clipboardData?.getData(\"text\").replace(/\\D/g, \"\");\n if (!pasted) return;\n event.preventDefault();\n const focused = inputs.indexOf(document.activeElement as HTMLInputElement);\n const start = focused >= 0 ? focused : 0;\n const insert = pasted.slice(0, length() - start);\n const current = digits();\n emit(`${current.slice(0, start)}${insert}${current.slice(start + insert.length)}`.slice(0, length()));\n const next = Math.min(start + insert.length, length() - 1);\n inputs[next]?.focus();\n inputs[next]?.select();\n };\n\n return (\n <Field\n class={props.class}\n label={props.label}\n description={props.description}\n error={error()}\n meta={meta}\n labelFor={false}\n required={props.required}\n disabled={props.disabled}\n >\n <div\n class=\"k2b-pin-input\"\n id={meta.controlId}\n data-stretch={props.stretch ? \"true\" : undefined}\n role=\"group\"\n {...fieldControlAria(meta, props)}\n onPaste={handlePaste}\n >\n <For each={Array.from({ length: length() })}>\n {(_, index) => (\n <input\n ref={(element) => {\n inputs[index()] = element;\n }}\n class=\"k2b-control k2b-pin-input__digit\"\n data-filled={digits()[index()] ? \"true\" : undefined}\n type=\"text\"\n inputmode=\"numeric\"\n autocomplete=\"off\"\n pattern=\"[0-9]\"\n maxlength={1}\n value={digits()[index()] ?? \"\"}\n required={props.required}\n disabled={props.disabled}\n aria-label={messages().pinDigit({ index: index() + 1, total: length() })}\n onInput={(event) => updateDigit(index(), event.currentTarget.value)}\n onKeyDown={(event) => handleKeyDown(index(), event)}\n onFocus={(event) => event.currentTarget.select()}\n />\n )}\n </For>\n </div>\n <Show when={props.name}>{(name) => <input type=\"hidden\" name={name()} value={digits()} />}</Show>\n </Field>\n );\n}\n\nexport type SliderProps = FieldProps &\n Omit<JSX.InputHTMLAttributes<HTMLInputElement>, \"type\" | \"value\" | \"onInput\" | \"onChange\" | keyof FieldProps> &\n ValueFieldProps<number> & {\n value: MaybeAccessor<number>;\n formatValue?: (value: number) => string;\n showValue?: boolean;\n center?: boolean;\n defaultValue?: number;\n };\n\nexport function Slider(props: SliderProps): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"aria-describedby\",\n \"aria-label\",\n \"center\",\n \"class\",\n \"defaultValue\",\n \"description\",\n \"error\",\n \"id\",\n \"label\",\n \"onValueChange\",\n \"onValueCommit\",\n \"required\",\n \"showValue\",\n \"value\",\n \"formatValue\",\n ]);\n const meta = createFieldMeta(local.id);\n const min = () => Number(rest.min ?? 0);\n const max = () => Number(rest.max ?? 100);\n const value = () => resolveMaybeAccessor(local.value) ?? min();\n const error = () => resolveMaybeAccessor(local.error);\n const percentage = () => {\n const span = max() - min();\n return span <= 0 ? 0 : Math.min(100, Math.max(0, ((value() - min()) / span) * 100));\n };\n const track = () => {\n const position = percentage();\n if (local.center) {\n const low = Math.min(50, position);\n const high = Math.max(50, position);\n return `linear-gradient(to right, var(--k2b-surface-muted) 0 ${low}%, var(--k2b-action) ${low}% ${high}%, var(--k2b-surface-muted) ${high}% 100%)`;\n }\n return `linear-gradient(to right, var(--k2b-action) 0 ${position}%, var(--k2b-surface-muted) ${position}% 100%)`;\n };\n const resetValue = () => local.defaultValue ?? (local.center ? (min() + max()) / 2 : min());\n\n return (\n <Field\n class={local.class}\n label={local.label}\n description={local.description}\n error={error()}\n meta={meta}\n required={local.required}\n disabled={rest.disabled}\n >\n <div class=\"k2b-slider\">\n <input\n {...rest}\n id={meta.controlId}\n type=\"range\"\n value={value()}\n style={{ background: track() }}\n {...fieldControlAria(meta, local)}\n onInput={(event) => local.onValueChange?.(event.currentTarget.valueAsNumber)}\n onChange={(event) => local.onValueCommit?.(event.currentTarget.valueAsNumber)}\n onDblClick={() => {\n const next = resetValue();\n commitFieldValue(local, next);\n }}\n />\n <Show when={local.showValue ?? true}>\n <output for={meta.controlId}>{local.formatValue?.(value()) ?? value()}</output>\n </Show>\n </div>\n </Field>\n );\n}\n\nexport type ColorInputProps = ValueFieldProps<string> & {\n name?: string;\n compact?: boolean;\n transparent?: boolean;\n transparentValue?: MaybeAccessor<boolean>;\n onTransparentValueChange?: (value: boolean) => void;\n};\n\nexport function ColorInput(props: ColorInputProps): JSX.Element {\n const messages = useUiMessages();\n const meta = createFieldMeta(props.id);\n const currentColor = () => resolveMaybeAccessor(props.value) || \"#3b82f6\";\n const isTransparent = () => resolveMaybeAccessor(props.transparentValue) ?? false;\n const error = () => resolveMaybeAccessor(props.error);\n const compact = () => props.compact ?? !props.label;\n let picker: HTMLInputElement | undefined;\n\n const control = () =>\n compact() ? (\n <span class=\"k2b-color-input k2b-color-input--compact\">\n <button\n type=\"button\"\n class=\"k2b-color-input__swatch\"\n style={{ \"background-color\": currentColor() }}\n disabled={props.disabled}\n {...fieldControlAria(meta, props)}\n onClick={() => picker?.click()}\n />\n <input\n ref={picker}\n id={meta.controlId}\n class=\"k2b-color-input__native\"\n type=\"color\"\n name={props.name}\n value={currentColor()}\n disabled={props.disabled}\n onInput={(event) => props.onValueChange?.(event.currentTarget.value)}\n onChange={(event) => props.onValueCommit?.(event.currentTarget.value)}\n />\n </span>\n ) : (\n <div\n class=\"k2b-color-input\"\n data-disabled={props.disabled || isTransparent() ? \"true\" : undefined}\n data-invalid={error() ? \"true\" : undefined}\n >\n <button\n type=\"button\"\n class=\"k2b-color-input__value\"\n disabled={props.disabled || isTransparent()}\n {...fieldControlAria(meta, props)}\n onClick={() => picker?.click()}\n >\n <span\n class=\"k2b-color-input__swatch\"\n data-transparent={isTransparent() ? \"true\" : undefined}\n style={isTransparent() ? undefined : { \"background-color\": currentColor() }}\n />\n <code>{isTransparent() ? \"transparent\" : currentColor().toUpperCase()}</code>\n </button>\n <Show when={props.transparent}>\n <button\n type=\"button\"\n class=\"k2b-color-input__transparent\"\n aria-label={isTransparent() ? messages().useColor : messages().useTransparent}\n aria-pressed={isTransparent()}\n disabled={props.disabled}\n onClick={() => props.onTransparentValueChange?.(!isTransparent())}\n >\n <i class=\"ti ti-grid-dots\" aria-hidden=\"true\" />\n </button>\n </Show>\n <input\n ref={picker}\n id={meta.controlId}\n class=\"k2b-color-input__native\"\n type=\"color\"\n name={props.name}\n value={currentColor()}\n disabled={props.disabled || isTransparent()}\n onInput={(event) => props.onValueChange?.(event.currentTarget.value)}\n onChange={(event) => props.onValueCommit?.(event.currentTarget.value)}\n />\n </div>\n );\n\n return (\n <Field\n class={props.class}\n label={props.label}\n description={props.description}\n error={error()}\n meta={meta}\n required={props.required}\n disabled={props.disabled}\n >\n {control()}\n </Field>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["For","Show","splitProps","createFieldMeta","Field","fieldControlAria","useUiMessages","commitFieldValue","resolveMaybeAccessor","PinInput","props","messages","meta","id","length","Math","max","inputs","digits","value","replace","slice","error","emit","onValueChange","onValueCommit","updateDigit","index","input","disabled","readOnly","digit","current","focus","select","handleKeyDown","event","key","onSubmit","shiftKey","metaKey","preventDefault","handlePaste","pasted","clipboardData","getData","focused","indexOf","document","activeElement","start","insert","next","min","_$createComponent","class","label","description","labelFor","required","children","_$ssrElement","_$mergeProps","controlId","data-stretch","stretch","undefined","role","_$escape","each","Array","from","_","_$ssr","_tmpl$","_$ssrAttribute","password","pinDigit","total","when","name","_tmpl$2","Slider","local","rest","Number","percentage","span","track","position","center","low","high","resetValue","defaultValue","_tmpl$4","type","style","background","showValue","_tmpl$3","formatValue","ColorInput","currentColor","isTransparent","transparentValue","compact","picker","control","_tmpl$5","_tmpl$9","_tmpl$6","_$ssrStyle","_tmpl$7","toUpperCase","transparent","_tmpl$8","useColor","useTransparent"],"sources":["inputs/ChoiceInputs.tsx"],"sourcesContent":["import { For, type JSX, Show, splitProps } from \"solid-js\";\nimport { createFieldMeta, Field, fieldControlAria } from \"../internal/field\";\nimport { useUiMessages } from \"../intl/messages\";\nimport type { FieldProps, MaybeAccessor, ValueFieldProps } from \"./field-contract\";\nimport { commitFieldValue, resolveMaybeAccessor } from \"./field-contract\";\n\nexport type PinInputProps = ValueFieldProps<string> & {\n length?: number;\n name?: string;\n stretch?: boolean;\n password?: boolean;\n readOnly?: boolean;\n onSubmit?: () => void;\n};\n\nexport function PinInput(props: PinInputProps): JSX.Element {\n const messages = useUiMessages();\n const meta = createFieldMeta(props.id);\n const length = () => Math.max(1, props.length ?? 6);\n let inputs: HTMLInputElement[] = [];\n const digits = () => (resolveMaybeAccessor(props.value) ?? \"\").replace(/\\D/g, \"\").slice(0, length());\n const error = () => resolveMaybeAccessor(props.error);\n const emit = (value: string) => {\n props.onValueChange?.(value);\n if (value.length === length()) props.onValueCommit?.(value);\n };\n\n const updateDigit = (index: number, input: string) => {\n if (props.disabled || props.readOnly) return;\n const digit = input.replace(/\\D/g, \"\").slice(-1);\n const current = digits();\n emit(`${current.slice(0, index)}${digit}${current.slice(index + 1)}`);\n if (digit && index < length() - 1) {\n inputs[index + 1]?.focus();\n inputs[index + 1]?.select();\n }\n };\n\n const handleKeyDown = (index: number, event: KeyboardEvent) => {\n if (props.disabled || props.readOnly) return;\n if (event.key === \"Enter\" && props.onSubmit && !event.shiftKey && !event.metaKey) {\n event.preventDefault();\n props.onSubmit();\n } else if (event.key === \"ArrowLeft\" && index > 0) {\n event.preventDefault();\n inputs[index - 1]?.focus();\n inputs[index - 1]?.select();\n } else if (event.key === \"ArrowRight\" && index < length() - 1) {\n event.preventDefault();\n inputs[index + 1]?.focus();\n inputs[index + 1]?.select();\n } else if (event.key === \"Backspace\" && !digits()[index] && index > 0) {\n event.preventDefault();\n const current = digits();\n emit(`${current.slice(0, index - 1)}${current.slice(index)}`);\n inputs[index - 1]?.focus();\n inputs[index - 1]?.select();\n }\n };\n\n const handlePaste = (event: ClipboardEvent) => {\n if (props.disabled || props.readOnly) return;\n const pasted = event.clipboardData?.getData(\"text\").replace(/\\D/g, \"\");\n if (!pasted) return;\n event.preventDefault();\n const focused = inputs.indexOf(document.activeElement as HTMLInputElement);\n const start = focused >= 0 ? focused : 0;\n const insert = pasted.slice(0, length() - start);\n const current = digits();\n emit(`${current.slice(0, start)}${insert}${current.slice(start + insert.length)}`.slice(0, length()));\n const next = Math.min(start + insert.length, length() - 1);\n inputs[next]?.focus();\n inputs[next]?.select();\n };\n\n return (\n <Field\n class={props.class}\n label={props.label}\n description={props.description}\n error={error()}\n meta={meta}\n labelFor={false}\n required={props.required}\n disabled={props.disabled}\n >\n <div\n class=\"k2b-pin-input\"\n id={meta.controlId}\n data-stretch={props.stretch ? \"true\" : undefined}\n role=\"group\"\n {...fieldControlAria(meta, props)}\n onPaste={handlePaste}\n >\n <For each={Array.from({ length: length() })}>\n {(_, index) => (\n <input\n ref={(element) => {\n inputs[index()] = element;\n }}\n class=\"k2b-control k2b-pin-input__digit\"\n data-filled={digits()[index()] ? \"true\" : undefined}\n type={props.password ? \"password\" : \"text\"}\n inputmode=\"numeric\"\n autocomplete=\"off\"\n pattern=\"[0-9]\"\n maxlength={1}\n value={digits()[index()] ?? \"\"}\n required={props.required}\n disabled={props.disabled}\n readOnly={props.readOnly}\n aria-label={messages().pinDigit({ index: index() + 1, total: length() })}\n onInput={(event) => updateDigit(index(), event.currentTarget.value)}\n onKeyDown={(event) => handleKeyDown(index(), event)}\n onFocus={(event) => event.currentTarget.select()}\n />\n )}\n </For>\n </div>\n <Show when={props.name}>{(name) => <input type=\"hidden\" name={name()} value={digits()} />}</Show>\n </Field>\n );\n}\n\nexport type SliderProps = FieldProps &\n Omit<JSX.InputHTMLAttributes<HTMLInputElement>, \"type\" | \"value\" | \"onInput\" | \"onChange\" | keyof FieldProps> &\n ValueFieldProps<number> & {\n value: MaybeAccessor<number>;\n formatValue?: (value: number) => string;\n showValue?: boolean;\n center?: boolean;\n defaultValue?: number;\n };\n\nexport function Slider(props: SliderProps): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"aria-describedby\",\n \"aria-label\",\n \"center\",\n \"class\",\n \"defaultValue\",\n \"description\",\n \"error\",\n \"id\",\n \"label\",\n \"onValueChange\",\n \"onValueCommit\",\n \"required\",\n \"showValue\",\n \"value\",\n \"formatValue\",\n ]);\n const meta = createFieldMeta(local.id);\n const min = () => Number(rest.min ?? 0);\n const max = () => Number(rest.max ?? 100);\n const value = () => resolveMaybeAccessor(local.value) ?? min();\n const error = () => resolveMaybeAccessor(local.error);\n const percentage = () => {\n const span = max() - min();\n return span <= 0 ? 0 : Math.min(100, Math.max(0, ((value() - min()) / span) * 100));\n };\n const track = () => {\n const position = percentage();\n if (local.center) {\n const low = Math.min(50, position);\n const high = Math.max(50, position);\n return `linear-gradient(to right, var(--k2b-surface-muted) 0 ${low}%, var(--k2b-action) ${low}% ${high}%, var(--k2b-surface-muted) ${high}% 100%)`;\n }\n return `linear-gradient(to right, var(--k2b-action) 0 ${position}%, var(--k2b-surface-muted) ${position}% 100%)`;\n };\n const resetValue = () => local.defaultValue ?? (local.center ? (min() + max()) / 2 : min());\n\n return (\n <Field\n class={local.class}\n label={local.label}\n description={local.description}\n error={error()}\n meta={meta}\n required={local.required}\n disabled={rest.disabled}\n >\n <div class=\"k2b-slider\">\n <input\n {...rest}\n id={meta.controlId}\n type=\"range\"\n value={value()}\n style={{ background: track() }}\n {...fieldControlAria(meta, local)}\n onInput={(event) => local.onValueChange?.(event.currentTarget.valueAsNumber)}\n onChange={(event) => local.onValueCommit?.(event.currentTarget.valueAsNumber)}\n onDblClick={() => {\n const next = resetValue();\n commitFieldValue(local, next);\n }}\n />\n <Show when={local.showValue ?? true}>\n <output for={meta.controlId}>{local.formatValue?.(value()) ?? value()}</output>\n </Show>\n </div>\n </Field>\n );\n}\n\nexport type ColorInputProps = ValueFieldProps<string> & {\n name?: string;\n compact?: boolean;\n transparent?: boolean;\n transparentValue?: MaybeAccessor<boolean>;\n onTransparentValueChange?: (value: boolean) => void;\n};\n\nexport function ColorInput(props: ColorInputProps): JSX.Element {\n const messages = useUiMessages();\n const meta = createFieldMeta(props.id);\n const currentColor = () => resolveMaybeAccessor(props.value) || \"#3b82f6\";\n const isTransparent = () => resolveMaybeAccessor(props.transparentValue) ?? false;\n const error = () => resolveMaybeAccessor(props.error);\n const compact = () => props.compact ?? !props.label;\n let picker: HTMLInputElement | undefined;\n\n const control = () =>\n compact() ? (\n <span class=\"k2b-color-input k2b-color-input--compact\">\n <button\n type=\"button\"\n class=\"k2b-color-input__swatch\"\n style={{ \"background-color\": currentColor() }}\n disabled={props.disabled}\n {...fieldControlAria(meta, props)}\n onClick={() => picker?.click()}\n />\n <input\n ref={picker}\n id={meta.controlId}\n class=\"k2b-color-input__native\"\n type=\"color\"\n name={props.name}\n value={currentColor()}\n disabled={props.disabled}\n onInput={(event) => props.onValueChange?.(event.currentTarget.value)}\n onChange={(event) => props.onValueCommit?.(event.currentTarget.value)}\n />\n </span>\n ) : (\n <div\n class=\"k2b-color-input\"\n data-disabled={props.disabled || isTransparent() ? \"true\" : undefined}\n data-invalid={error() ? \"true\" : undefined}\n >\n <button\n type=\"button\"\n class=\"k2b-color-input__value\"\n disabled={props.disabled || isTransparent()}\n {...fieldControlAria(meta, props)}\n onClick={() => picker?.click()}\n >\n <span\n class=\"k2b-color-input__swatch\"\n data-transparent={isTransparent() ? \"true\" : undefined}\n style={isTransparent() ? undefined : { \"background-color\": currentColor() }}\n />\n <code>{isTransparent() ? \"transparent\" : currentColor().toUpperCase()}</code>\n </button>\n <Show when={props.transparent}>\n <button\n type=\"button\"\n class=\"k2b-color-input__transparent\"\n aria-label={isTransparent() ? messages().useColor : messages().useTransparent}\n aria-pressed={isTransparent()}\n disabled={props.disabled}\n onClick={() => props.onTransparentValueChange?.(!isTransparent())}\n >\n <i class=\"ti ti-grid-dots\" aria-hidden=\"true\" />\n </button>\n </Show>\n <input\n ref={picker}\n id={meta.controlId}\n class=\"k2b-color-input__native\"\n type=\"color\"\n name={props.name}\n value={currentColor()}\n disabled={props.disabled || isTransparent()}\n onInput={(event) => props.onValueChange?.(event.currentTarget.value)}\n onChange={(event) => props.onValueCommit?.(event.currentTarget.value)}\n />\n </div>\n );\n\n return (\n <Field\n class={props.class}\n label={props.label}\n description={props.description}\n error={error()}\n meta={meta}\n required={props.required}\n disabled={props.disabled}\n >\n {control()}\n </Field>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,7 +10,7 @@ export const getK2bPortalRoot = scope => {
|
|
|
10
10
|
const root = document.createElement("div");
|
|
11
11
|
root.setAttribute(PORTAL_ATTRIBUTE, "");
|
|
12
12
|
root.classList.add("k2b-ui-portal");
|
|
13
|
-
if (owner === document.body) root.classList.add("k2b-ui");
|
|
13
|
+
if (owner === document.body && !owner.classList.contains("k2b-ui")) root.classList.add("k2b-ui");
|
|
14
14
|
owner.appendChild(root);
|
|
15
15
|
return root;
|
|
16
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PORTAL_ATTRIBUTE","activeScope","active","document","activeElement","Element","closest","undefined","getK2bPortalRoot","scope","owner","querySelector","body","existing","Array","from","children","find","child","HTMLElement","hasAttribute","root","createElement","setAttribute","classList","add","appendChild"],"sources":["internal/portal.ts"],"sourcesContent":["const PORTAL_ATTRIBUTE = \"data-k2b-ui-portal\";\n\nconst activeScope = (): HTMLElement | undefined => {\n const active = document.activeElement;\n return active instanceof Element ? ((active.closest(\".k2b-ui\") as HTMLElement | null) ?? undefined) : undefined;\n};\n\nexport const getK2bPortalRoot = (scope?: HTMLElement | null): HTMLElement => {\n const owner = scope ?? activeScope() ?? document.querySelector<HTMLElement>(\".k2b-ui\") ?? document.body;\n const existing = Array.from(owner.children).find((child) => child instanceof HTMLElement && child.hasAttribute(PORTAL_ATTRIBUTE));\n if (existing instanceof HTMLElement) return existing;\n\n const root = document.createElement(\"div\");\n root.setAttribute(PORTAL_ATTRIBUTE, \"\");\n root.classList.add(\"k2b-ui-portal\");\n if (owner === document.body) root.classList.add(\"k2b-ui\");\n owner.appendChild(root);\n return root;\n};\n"],"mappings":"AAAA,MAAMA,gBAAgB,GAAG,oBAAoB;AAE7C,MAAMC,WAAW,GAAGA,CAAA,KAA+B;EACjD,MAAMC,MAAM,GAAGC,QAAQ,CAACC,aAAa;EACrC,OAAOF,MAAM,YAAYG,OAAO,GAAKH,MAAM,CAACI,OAAO,CAAC,SAAS,CAAC,IAA2BC,SAAS,GAAIA,SAAS;AACjH,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAIC,KAA0B,IAAkB;EAC3E,MAAMC,KAAK,GAAGD,KAAK,IAAIR,WAAW,CAAC,CAAC,IAAIE,QAAQ,CAACQ,aAAa,CAAc,SAAS,CAAC,IAAIR,QAAQ,CAACS,IAAI;EACvG,MAAMC,QAAQ,GAAGC,KAAK,CAACC,IAAI,CAACL,KAAK,CAACM,QAAQ,CAAC,CAACC,IAAI,CAAEC,KAAK,IAAKA,KAAK,YAAYC,WAAW,IAAID,KAAK,CAACE,YAAY,CAACpB,gBAAgB,CAAC,CAAC;EACjI,IAAIa,QAAQ,YAAYM,WAAW,EAAE,OAAON,QAAQ;EAEpD,MAAMQ,IAAI,GAAGlB,QAAQ,CAACmB,aAAa,CAAC,KAAK,CAAC;EAC1CD,IAAI,CAACE,YAAY,CAACvB,gBAAgB,EAAE,EAAE,CAAC;EACvCqB,IAAI,CAACG,SAAS,CAACC,GAAG,CAAC,eAAe,CAAC;EACnC,IAAIf,KAAK,KAAKP,QAAQ,CAACS,IAAI,
|
|
1
|
+
{"version":3,"names":["PORTAL_ATTRIBUTE","activeScope","active","document","activeElement","Element","closest","undefined","getK2bPortalRoot","scope","owner","querySelector","body","existing","Array","from","children","find","child","HTMLElement","hasAttribute","root","createElement","setAttribute","classList","add","contains","appendChild"],"sources":["internal/portal.ts"],"sourcesContent":["const PORTAL_ATTRIBUTE = \"data-k2b-ui-portal\";\n\nconst activeScope = (): HTMLElement | undefined => {\n const active = document.activeElement;\n return active instanceof Element ? ((active.closest(\".k2b-ui\") as HTMLElement | null) ?? undefined) : undefined;\n};\n\nexport const getK2bPortalRoot = (scope?: HTMLElement | null): HTMLElement => {\n const owner = scope ?? activeScope() ?? document.querySelector<HTMLElement>(\".k2b-ui\") ?? document.body;\n const existing = Array.from(owner.children).find((child) => child instanceof HTMLElement && child.hasAttribute(PORTAL_ATTRIBUTE));\n if (existing instanceof HTMLElement) return existing;\n\n const root = document.createElement(\"div\");\n root.setAttribute(PORTAL_ATTRIBUTE, \"\");\n root.classList.add(\"k2b-ui-portal\");\n if (owner === document.body && !owner.classList.contains(\"k2b-ui\")) root.classList.add(\"k2b-ui\");\n owner.appendChild(root);\n return root;\n};\n"],"mappings":"AAAA,MAAMA,gBAAgB,GAAG,oBAAoB;AAE7C,MAAMC,WAAW,GAAGA,CAAA,KAA+B;EACjD,MAAMC,MAAM,GAAGC,QAAQ,CAACC,aAAa;EACrC,OAAOF,MAAM,YAAYG,OAAO,GAAKH,MAAM,CAACI,OAAO,CAAC,SAAS,CAAC,IAA2BC,SAAS,GAAIA,SAAS;AACjH,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAIC,KAA0B,IAAkB;EAC3E,MAAMC,KAAK,GAAGD,KAAK,IAAIR,WAAW,CAAC,CAAC,IAAIE,QAAQ,CAACQ,aAAa,CAAc,SAAS,CAAC,IAAIR,QAAQ,CAACS,IAAI;EACvG,MAAMC,QAAQ,GAAGC,KAAK,CAACC,IAAI,CAACL,KAAK,CAACM,QAAQ,CAAC,CAACC,IAAI,CAAEC,KAAK,IAAKA,KAAK,YAAYC,WAAW,IAAID,KAAK,CAACE,YAAY,CAACpB,gBAAgB,CAAC,CAAC;EACjI,IAAIa,QAAQ,YAAYM,WAAW,EAAE,OAAON,QAAQ;EAEpD,MAAMQ,IAAI,GAAGlB,QAAQ,CAACmB,aAAa,CAAC,KAAK,CAAC;EAC1CD,IAAI,CAACE,YAAY,CAACvB,gBAAgB,EAAE,EAAE,CAAC;EACvCqB,IAAI,CAACG,SAAS,CAACC,GAAG,CAAC,eAAe,CAAC;EACnC,IAAIf,KAAK,KAAKP,QAAQ,CAACS,IAAI,IAAI,CAACF,KAAK,CAACc,SAAS,CAACE,QAAQ,CAAC,QAAQ,CAAC,EAAEL,IAAI,CAACG,SAAS,CAACC,GAAG,CAAC,QAAQ,CAAC;EAChGf,KAAK,CAACiB,WAAW,CAACN,IAAI,CAAC;EACvB,OAAOA,IAAI;AACb,CAAC","ignoreList":[]}
|
|
@@ -23,13 +23,16 @@ var _tmpl$ = ["<div class=\"k2b-detail-panel__header-leading\">", "</div>"],
|
|
|
23
23
|
_tmpl$16 = "<i class=\"ti ti-dots\" aria-hidden=\"true\"></i>",
|
|
24
24
|
_tmpl$17 = ["<div class=\"k2b-detail-panel__action-row\">", "", "</div>"],
|
|
25
25
|
_tmpl$18 = ["<span class=\"k2b-detail-panel__section-description\">", "</span>"],
|
|
26
|
-
_tmpl$19 = ["<span class=\"k2b-detail-panel__section-
|
|
27
|
-
_tmpl$20 = ["<
|
|
28
|
-
_tmpl$21 =
|
|
29
|
-
_tmpl$22 = ["<div class=\"k2b-detail-panel__section-
|
|
30
|
-
_tmpl$23 =
|
|
31
|
-
_tmpl$24 = ["<section", "><header class=\"k2b-detail-panel__section-header\">", "<div class=\"k2b-detail-panel__section-copy\"><h3", ">", "</h3>", "</div>", "", "</header>", "</section>"]
|
|
32
|
-
|
|
26
|
+
_tmpl$19 = ["<span class=\"k2b-detail-panel__section-copy\"><span id=\"", "\" class=\"k2b-detail-panel__section-title\">", "</span>", "</span>"],
|
|
27
|
+
_tmpl$20 = ["<span class=\"k2b-detail-panel__section-meta\">", "</span>"],
|
|
28
|
+
_tmpl$21 = "<i class=\"ti ti-chevron-down\" aria-hidden=\"true\"></i>",
|
|
29
|
+
_tmpl$22 = ["<div class=\"k2b-detail-panel__section-meta\">", "</div>"],
|
|
30
|
+
_tmpl$23 = "<i class=\"ti ti-chevron-up\" aria-hidden=\"true\"></i>",
|
|
31
|
+
_tmpl$24 = ["<section", "><div", ">", "</div><div", "><header class=\"k2b-detail-panel__section-header\">", "<div class=\"k2b-detail-panel__section-copy\"><h3", ">", "</h3>", "</div>", "", "</header></div><div", "", " class=\"k2b-detail-panel__section-body\">", "</div></section>"],
|
|
32
|
+
_tmpl$25 = ["<div class=\"k2b-detail-panel__section-actions\">", "</div>"],
|
|
33
|
+
_tmpl$26 = ["<div class=\"k2b-detail-panel__section-body\">", "</div>"],
|
|
34
|
+
_tmpl$27 = ["<section", "><header class=\"k2b-detail-panel__section-header\">", "<div class=\"k2b-detail-panel__section-copy\"><h3", ">", "</h3>", "</div>", "", "</header>", "</section>"];
|
|
35
|
+
import { createEffect, createSignal, createUniqueId, Show, splitProps } from "solid-js";
|
|
33
36
|
import { Button, ButtonLink } from "../actions/Button";
|
|
34
37
|
import { Dropdown } from "../actions/Dropdown";
|
|
35
38
|
const classNames = (base, extra) => extra ? `${base} ${extra}` : base;
|
|
@@ -204,13 +207,35 @@ const DetailPanelAction = props => {
|
|
|
204
207
|
};
|
|
205
208
|
const DetailPanelSection = props => {
|
|
206
209
|
const headingId = `k2b-detail-panel-section-${createUniqueId()}`;
|
|
210
|
+
const bodyId = `${headingId}-body`;
|
|
211
|
+
const [internalOpen, setInternalOpen] = createSignal(props.defaultOpen ?? false);
|
|
212
|
+
const open = () => props.open ?? internalOpen();
|
|
213
|
+
let expand;
|
|
214
|
+
let collapse;
|
|
215
|
+
let body;
|
|
216
|
+
const toggle = next => {
|
|
217
|
+
if (props.disabled) return;
|
|
218
|
+
if (props.open === undefined) setInternalOpen(next);
|
|
219
|
+
props.onOpenChange?.(next);
|
|
220
|
+
};
|
|
221
|
+
createEffect(() => {
|
|
222
|
+
const expanded = open();
|
|
223
|
+
// Restore focus only when its current control becomes hidden, including
|
|
224
|
+
// a parent-controlled collapse while focus is inside an editor.
|
|
225
|
+
queueMicrotask(() => {
|
|
226
|
+
if (expanded !== open()) return;
|
|
227
|
+
const active = expand?.ownerDocument.activeElement;
|
|
228
|
+
if (expanded && active === expand) collapse?.focus();
|
|
229
|
+
if (!expanded && (active === collapse || active && body?.contains(active))) expand?.focus();
|
|
230
|
+
});
|
|
231
|
+
});
|
|
207
232
|
const className = () => classNames("k2b-detail-panel__section", props.class);
|
|
208
233
|
return _$createComponent(Show, {
|
|
209
234
|
get when() {
|
|
210
235
|
return props.collapsible;
|
|
211
236
|
},
|
|
212
237
|
get fallback() {
|
|
213
|
-
return _$ssr(_tmpl$
|
|
238
|
+
return _$ssr(_tmpl$27, _$ssrAttribute("class", _$escape(className(), true), false) + _$ssrAttribute("aria-labelledby", _$escape(headingId, true), false), _$escape(_$createComponent(DetailPanelSectionIcon, {
|
|
214
239
|
get icon() {
|
|
215
240
|
return props.icon;
|
|
216
241
|
},
|
|
@@ -229,26 +254,59 @@ const DetailPanelSection = props => {
|
|
|
229
254
|
return props.meta;
|
|
230
255
|
},
|
|
231
256
|
get children() {
|
|
232
|
-
return _$ssr(_tmpl$
|
|
257
|
+
return _$ssr(_tmpl$22, _$escape(props.meta));
|
|
233
258
|
}
|
|
234
259
|
})), _$escape(_$createComponent(Show, {
|
|
235
260
|
get when() {
|
|
236
261
|
return props.actions;
|
|
237
262
|
},
|
|
238
263
|
get children() {
|
|
239
|
-
return _$ssr(_tmpl$
|
|
264
|
+
return _$ssr(_tmpl$25, _$escape(props.actions));
|
|
240
265
|
}
|
|
241
266
|
})), _$escape(_$createComponent(Show, {
|
|
242
267
|
get when() {
|
|
243
268
|
return props.children !== undefined;
|
|
244
269
|
},
|
|
245
270
|
get children() {
|
|
246
|
-
return _$ssr(_tmpl$
|
|
271
|
+
return _$ssr(_tmpl$26, _$escape(props.children));
|
|
247
272
|
}
|
|
248
273
|
})));
|
|
249
274
|
},
|
|
250
275
|
get children() {
|
|
251
|
-
return _$ssr(_tmpl$
|
|
276
|
+
return _$ssr(_tmpl$24, _$ssrAttribute("class", _$escape(className(), true), false) + _$ssrAttribute("aria-labelledby", open() ? _$escape(headingId, true) : `${_$escape(headingId, true)}-closed`, false) + _$ssrAttribute("data-open", _$escape(open(), true), false), _$ssrAttribute("hidden", open(), true), _$escape(_$createComponent(Button, {
|
|
277
|
+
variant: "ghost",
|
|
278
|
+
"class": "k2b-detail-panel__section-summary",
|
|
279
|
+
get disabled() {
|
|
280
|
+
return props.disabled;
|
|
281
|
+
},
|
|
282
|
+
"aria-expanded": false,
|
|
283
|
+
"aria-controls": bodyId,
|
|
284
|
+
onClick: () => toggle(true),
|
|
285
|
+
get children() {
|
|
286
|
+
return [_$createComponent(DetailPanelSectionIcon, {
|
|
287
|
+
get icon() {
|
|
288
|
+
return props.icon;
|
|
289
|
+
},
|
|
290
|
+
get tone() {
|
|
291
|
+
return props.tone;
|
|
292
|
+
}
|
|
293
|
+
}), _$ssr(_tmpl$19, `${_$escape(headingId, true)}-closed`, _$escape(props.title), _$escape(_$createComponent(Show, {
|
|
294
|
+
get when() {
|
|
295
|
+
return props.description;
|
|
296
|
+
},
|
|
297
|
+
get children() {
|
|
298
|
+
return _$ssr(_tmpl$18, _$escape(props.description));
|
|
299
|
+
}
|
|
300
|
+
}))), _$createComponent(Show, {
|
|
301
|
+
get when() {
|
|
302
|
+
return props.meta;
|
|
303
|
+
},
|
|
304
|
+
get children() {
|
|
305
|
+
return _$ssr(_tmpl$20, _$escape(props.meta));
|
|
306
|
+
}
|
|
307
|
+
}), _$ssr(_tmpl$21)];
|
|
308
|
+
}
|
|
309
|
+
})), _$ssrAttribute("hidden", !open(), true), _$escape(_$createComponent(DetailPanelSectionIcon, {
|
|
252
310
|
get icon() {
|
|
253
311
|
return props.icon;
|
|
254
312
|
},
|
|
@@ -260,16 +318,29 @@ const DetailPanelSection = props => {
|
|
|
260
318
|
return props.description;
|
|
261
319
|
},
|
|
262
320
|
get children() {
|
|
263
|
-
return _$ssr(_tmpl$
|
|
321
|
+
return _$ssr(_tmpl$2, _$escape(props.description));
|
|
264
322
|
}
|
|
265
323
|
})), _$escape(_$createComponent(Show, {
|
|
266
324
|
get when() {
|
|
267
325
|
return props.meta;
|
|
268
326
|
},
|
|
269
327
|
get children() {
|
|
270
|
-
return _$ssr(_tmpl$
|
|
328
|
+
return _$ssr(_tmpl$22, _$escape(props.meta));
|
|
329
|
+
}
|
|
330
|
+
})), _$escape(_$createComponent(Button, {
|
|
331
|
+
variant: "ghost",
|
|
332
|
+
size: "sm",
|
|
333
|
+
get disabled() {
|
|
334
|
+
return props.disabled;
|
|
335
|
+
},
|
|
336
|
+
"aria-labelledby": headingId,
|
|
337
|
+
"aria-expanded": true,
|
|
338
|
+
"aria-controls": bodyId,
|
|
339
|
+
onClick: () => toggle(false),
|
|
340
|
+
get children() {
|
|
341
|
+
return _$ssr(_tmpl$23);
|
|
271
342
|
}
|
|
272
|
-
})), _$escape(props.children));
|
|
343
|
+
})), _$ssrAttribute("id", _$escape(bodyId, true), false), _$ssrAttribute("hidden", !open(), true), _$escape(props.children));
|
|
273
344
|
}
|
|
274
345
|
});
|
|
275
346
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createUniqueId","Show","splitProps","Button","ButtonLink","Dropdown","classNames","base","extra","DetailPanelHeader","props","_$ssr","_tmpl$7","_$ssrAttribute","_$escape","class","_$createComponent","when","icon","children","_tmpl$8","leading","_tmpl$","title","subtitle","meta","_tmpl$4","_tmpl$2","_tmpl$3","actions","_tmpl$5","primaryActions","_tmpl$6","DetailPanelBody","_tmpl$9","scrollPreserveKey","DetailPanelSummary","headingId","_tmpl$1","_tmpl$0","DetailPanelGroup","_tmpl$10","label","DetailPanelSectionIcon","_tmpl$11","tone","DetailPanelActionContent","_tmpl$12","_tmpl$14","description","_tmpl$13","trailing","_tmpl$15","DetailPanelAction","local","rest","className","content","action","href","undefined","fallback","_$mergeProps","variant","size","menuItems","length","_tmpl$17","Root","items","align","menuLabel","Trigger","iconOnly","_tmpl$16","DetailPanelSection","collapsible","_tmpl$24","_tmpl$21","_tmpl$22","_tmpl$23","_tmpl$20","defaultOpen","_tmpl$18","_tmpl$19","DetailPanel","Header","Body","Summary","Group","Section","Action"],"sources":["layout/DetailPanel.tsx"],"sourcesContent":["import { createUniqueId, type JSX, Show, splitProps } from \"solid-js\";\nimport { Button, ButtonLink, type ButtonLinkProps, type ButtonProps } from \"../actions/Button\";\nimport { Dropdown, type DropdownItem } from \"../actions/Dropdown\";\n\nexport type DetailPanelProps = {\n children: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelHeaderBaseProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n meta?: JSX.Element;\n actions?: JSX.Element;\n primaryActions?: JSX.Element;\n class?: string;\n};\n\nexport type DetailPanelHeaderProps = DetailPanelHeaderBaseProps &\n (\n | {\n leading?: JSX.Element;\n icon?: never;\n }\n | {\n leading?: never;\n icon?: string;\n }\n );\n\nexport type DetailPanelBodyProps = {\n children: JSX.Element;\n scrollPreserveKey?: string;\n class?: string;\n};\n\nexport type DetailPanelSummaryProps = {\n title: JSX.Element;\n children: JSX.Element;\n actions?: JSX.Element;\n class?: string;\n};\n\nexport type DetailPanelGroupProps = {\n children: JSX.Element;\n label?: string;\n class?: string;\n};\n\nexport type DetailPanelTone = \"accent\" | \"neutral\" | \"success\" | \"warning\" | \"danger\";\n\ntype DetailPanelSectionBaseProps = {\n title: JSX.Element;\n icon?: string;\n tone?: DetailPanelTone;\n description?: JSX.Element;\n meta?: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelActionBaseProps = {\n title: JSX.Element;\n description?: JSX.Element;\n leading?: JSX.Element;\n trailing?: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelActionMenuProps =\n | {\n menuItems?: never;\n menuLabel?: never;\n }\n | {\n menuItems: readonly DropdownItem[];\n menuLabel: string;\n };\n\nexport type DetailPanelActionLinkProps = DetailPanelActionBaseProps &\n DetailPanelActionMenuProps &\n Omit<ButtonLinkProps, \"children\" | \"class\" | \"size\" | \"title\" | \"variant\"> & {\n href: string;\n };\n\nexport type DetailPanelActionButtonProps = DetailPanelActionBaseProps &\n DetailPanelActionMenuProps &\n Omit<ButtonProps, \"children\" | \"class\" | \"size\" | \"title\" | \"variant\"> & {\n href?: never;\n };\n\nexport type DetailPanelActionProps = DetailPanelActionLinkProps | DetailPanelActionButtonProps;\n\nexport type DetailPanelSectionProps = DetailPanelSectionBaseProps &\n (\n | {\n children?: JSX.Element;\n actions?: JSX.Element;\n collapsible?: false;\n defaultOpen?: never;\n }\n | {\n children: JSX.Element;\n actions?: never;\n collapsible: true;\n defaultOpen?: boolean;\n }\n );\n\ntype DetailPanelComponent = ((props: DetailPanelProps) => JSX.Element) & {\n Header: (props: DetailPanelHeaderProps) => JSX.Element;\n Body: (props: DetailPanelBodyProps) => JSX.Element;\n Summary: (props: DetailPanelSummaryProps) => JSX.Element;\n Group: (props: DetailPanelGroupProps) => JSX.Element;\n Section: (props: DetailPanelSectionProps) => JSX.Element;\n Action: (props: DetailPanelActionProps) => JSX.Element;\n};\n\nconst classNames = (base: string, extra?: string): string => (extra ? `${base} ${extra}` : base);\n\nconst DetailPanelHeader = (props: DetailPanelHeaderProps): JSX.Element => (\n <header class={classNames(\"k2b-detail-panel__header\", props.class)}>\n <div class=\"k2b-detail-panel__header-main\">\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-detail-panel__header-icon\" aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n <Show when={props.leading}>\n <div class=\"k2b-detail-panel__header-leading\">{props.leading}</div>\n </Show>\n <div class=\"k2b-detail-panel__heading\">\n <h2>{props.title}</h2>\n <Show when={props.subtitle || props.meta}>\n <div class=\"k2b-detail-panel__supporting\">\n <Show when={props.subtitle}>\n <p>{props.subtitle}</p>\n </Show>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__meta\">{props.meta}</div>\n </Show>\n </div>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__actions\">{props.actions}</div>\n </Show>\n </div>\n <Show when={props.primaryActions}>\n <div class=\"k2b-detail-panel__primary-actions\">{props.primaryActions}</div>\n </Show>\n </header>\n);\n\nconst DetailPanelBody = (props: DetailPanelBodyProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel__body\", props.class)} data-scroll-preserve={props.scrollPreserveKey}>\n {props.children}\n </div>\n);\n\nconst DetailPanelSummary = (props: DetailPanelSummaryProps): JSX.Element => {\n const headingId = `k2b-detail-panel-summary-${createUniqueId()}`;\n\n return (\n <section class={classNames(\"k2b-detail-panel__summary\", props.class)} aria-labelledby={headingId}>\n <header class=\"k2b-detail-panel__summary-header\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__summary-actions\">{props.actions}</div>\n </Show>\n </header>\n <div class=\"k2b-detail-panel__summary-body\">{props.children}</div>\n </section>\n );\n};\n\nconst DetailPanelGroup = (props: DetailPanelGroupProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel__group\", props.class)} role=\"group\" aria-label={props.label}>\n {props.children}\n </div>\n);\n\nconst DetailPanelSectionIcon = (props: Pick<DetailPanelSectionBaseProps, \"icon\" | \"tone\">): JSX.Element => (\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-detail-panel__section-icon\" data-tone={props.tone ?? \"neutral\"} aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n);\n\nconst DetailPanelActionContent = (props: DetailPanelActionBaseProps): JSX.Element => (\n <>\n <Show when={props.leading}>\n <span class=\"k2b-detail-panel__action-leading\">{props.leading}</span>\n </Show>\n <span class=\"k2b-detail-panel__action-copy\">\n <span class=\"k2b-detail-panel__action-title\">{props.title}</span>\n <Show when={props.description}>\n <span class=\"k2b-detail-panel__action-description\">{props.description}</span>\n </Show>\n </span>\n <Show when={props.trailing}>\n <span class=\"k2b-detail-panel__action-trailing\">{props.trailing}</span>\n </Show>\n </>\n);\n\nconst DetailPanelAction = (props: DetailPanelActionProps): JSX.Element => {\n const [local, rest] = splitProps(props, [\"class\", \"description\", \"href\", \"leading\", \"menuItems\", \"menuLabel\", \"title\", \"trailing\"]);\n const className = classNames(\"k2b-detail-panel__action\", local.class);\n const content = () => (\n <DetailPanelActionContent title={local.title} description={local.description} leading={local.leading} trailing={local.trailing} />\n );\n\n const action = () => (\n <Show\n when={local.href !== undefined}\n fallback={\n <Button\n {...(rest as Omit<DetailPanelActionButtonProps, keyof DetailPanelActionBaseProps>)}\n class={className}\n variant=\"ghost\"\n size=\"sm\"\n >\n {content()}\n </Button>\n }\n >\n <ButtonLink\n {...(rest as Omit<DetailPanelActionLinkProps, keyof DetailPanelActionBaseProps | \"href\">)}\n href={local.href as string}\n class={className}\n variant=\"ghost\"\n size=\"sm\"\n >\n {content()}\n </ButtonLink>\n </Show>\n );\n\n return (\n <Show when={local.menuItems?.length} fallback={action()}>\n <div class=\"k2b-detail-panel__action-row\">\n {action()}\n <Dropdown.Root items={local.menuItems ?? []} align=\"end\" label={local.menuLabel} class=\"k2b-detail-panel__action-menu\">\n <Dropdown.Trigger iconOnly size=\"sm\" variant=\"ghost\" label={local.menuLabel} class=\"k2b-detail-panel__action-menu-trigger\">\n <i class=\"ti ti-dots\" aria-hidden=\"true\" />\n </Dropdown.Trigger>\n </Dropdown.Root>\n </div>\n </Show>\n );\n};\n\nconst DetailPanelSection = (props: DetailPanelSectionProps): JSX.Element => {\n const headingId = `k2b-detail-panel-section-${createUniqueId()}`;\n const className = () => classNames(\"k2b-detail-panel__section\", props.class);\n\n return (\n <Show\n when={props.collapsible}\n fallback={\n <section class={className()} aria-labelledby={headingId}>\n <header class=\"k2b-detail-panel__section-header\">\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <div class=\"k2b-detail-panel__section-copy\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.description}>\n <p>{props.description}</p>\n </Show>\n </div>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__section-meta\">{props.meta}</div>\n </Show>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__section-actions\">{props.actions}</div>\n </Show>\n </header>\n <Show when={props.children !== undefined}>\n <div class=\"k2b-detail-panel__section-body\">{props.children}</div>\n </Show>\n </section>\n }\n >\n <details class={className()} open={props.defaultOpen}>\n <summary class=\"k2b-detail-panel__section-summary\">\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <span class=\"k2b-detail-panel__section-copy\">\n <span id={headingId} class=\"k2b-detail-panel__section-title\">\n {props.title}\n </span>\n <Show when={props.description}>\n <span class=\"k2b-detail-panel__section-description\">{props.description}</span>\n </Show>\n </span>\n <Show when={props.meta}>\n <span class=\"k2b-detail-panel__section-meta\">{props.meta}</span>\n </Show>\n <i class=\"ti ti-chevron-down\" aria-hidden=\"true\" />\n </summary>\n <div class=\"k2b-detail-panel__section-body\">{props.children}</div>\n </details>\n </Show>\n );\n};\n\nconst DetailPanel = ((props: DetailPanelProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel\", props.class)}>{props.children}</div>\n)) as DetailPanelComponent;\n\nDetailPanel.Header = DetailPanelHeader;\nDetailPanel.Body = DetailPanelBody;\nDetailPanel.Summary = DetailPanelSummary;\nDetailPanel.Group = DetailPanelGroup;\nDetailPanel.Section = DetailPanelSection;\nDetailPanel.Action = DetailPanelAction;\n\nexport default DetailPanel;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createEffect","createSignal","createUniqueId","Show","splitProps","Button","ButtonLink","Dropdown","classNames","base","extra","DetailPanelHeader","props","_$ssr","_tmpl$7","_$ssrAttribute","_$escape","class","_$createComponent","when","icon","children","_tmpl$8","leading","_tmpl$","title","subtitle","meta","_tmpl$4","_tmpl$2","_tmpl$3","actions","_tmpl$5","primaryActions","_tmpl$6","DetailPanelBody","_tmpl$9","scrollPreserveKey","DetailPanelSummary","headingId","_tmpl$1","_tmpl$0","DetailPanelGroup","_tmpl$10","label","DetailPanelSectionIcon","_tmpl$11","tone","DetailPanelActionContent","_tmpl$12","_tmpl$14","description","_tmpl$13","trailing","_tmpl$15","DetailPanelAction","local","rest","className","content","action","href","undefined","fallback","_$mergeProps","variant","size","menuItems","length","_tmpl$17","Root","items","align","menuLabel","Trigger","iconOnly","_tmpl$16","DetailPanelSection","bodyId","internalOpen","setInternalOpen","defaultOpen","open","expand","collapse","body","toggle","next","disabled","onOpenChange","expanded","queueMicrotask","active","ownerDocument","activeElement","focus","contains","collapsible","_tmpl$27","_tmpl$22","_tmpl$25","_tmpl$26","_tmpl$24","onClick","_tmpl$19","_tmpl$18","_tmpl$20","_tmpl$21","_tmpl$23","DetailPanel","Header","Body","Summary","Group","Section","Action"],"sources":["layout/DetailPanel.tsx"],"sourcesContent":["import { createEffect, createSignal, createUniqueId, type JSX, Show, splitProps } from \"solid-js\";\nimport { Button, ButtonLink, type ButtonLinkProps, type ButtonProps } from \"../actions/Button\";\nimport { Dropdown, type DropdownItem } from \"../actions/Dropdown\";\n\nexport type DetailPanelProps = {\n children: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelHeaderBaseProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n meta?: JSX.Element;\n actions?: JSX.Element;\n primaryActions?: JSX.Element;\n class?: string;\n};\n\nexport type DetailPanelHeaderProps = DetailPanelHeaderBaseProps &\n (\n | {\n leading?: JSX.Element;\n icon?: never;\n }\n | {\n leading?: never;\n icon?: string;\n }\n );\n\nexport type DetailPanelBodyProps = {\n children: JSX.Element;\n scrollPreserveKey?: string;\n class?: string;\n};\n\nexport type DetailPanelSummaryProps = {\n title: JSX.Element;\n children: JSX.Element;\n actions?: JSX.Element;\n class?: string;\n};\n\nexport type DetailPanelGroupProps = {\n children: JSX.Element;\n label?: string;\n class?: string;\n};\n\nexport type DetailPanelTone = \"accent\" | \"neutral\" | \"success\" | \"warning\" | \"danger\";\n\ntype DetailPanelSectionBaseProps = {\n title: JSX.Element;\n icon?: string;\n tone?: DetailPanelTone;\n description?: JSX.Element;\n meta?: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelActionBaseProps = {\n title: JSX.Element;\n description?: JSX.Element;\n leading?: JSX.Element;\n trailing?: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelActionMenuProps =\n | {\n menuItems?: never;\n menuLabel?: never;\n }\n | {\n menuItems: readonly DropdownItem[];\n menuLabel: string;\n };\n\nexport type DetailPanelActionLinkProps = DetailPanelActionBaseProps &\n DetailPanelActionMenuProps &\n Omit<ButtonLinkProps, \"children\" | \"class\" | \"size\" | \"title\" | \"variant\"> & {\n href: string;\n };\n\nexport type DetailPanelActionButtonProps = DetailPanelActionBaseProps &\n DetailPanelActionMenuProps &\n Omit<ButtonProps, \"children\" | \"class\" | \"size\" | \"title\" | \"variant\"> & {\n href?: never;\n };\n\nexport type DetailPanelActionProps = DetailPanelActionLinkProps | DetailPanelActionButtonProps;\n\nexport type DetailPanelSectionProps = DetailPanelSectionBaseProps &\n (\n | {\n children?: JSX.Element;\n actions?: JSX.Element;\n collapsible?: false;\n defaultOpen?: never;\n open?: never;\n onOpenChange?: never;\n disabled?: never;\n }\n | {\n children: JSX.Element;\n actions?: never;\n collapsible: true;\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n disabled?: boolean;\n }\n );\n\ntype DetailPanelComponent = ((props: DetailPanelProps) => JSX.Element) & {\n Header: (props: DetailPanelHeaderProps) => JSX.Element;\n Body: (props: DetailPanelBodyProps) => JSX.Element;\n Summary: (props: DetailPanelSummaryProps) => JSX.Element;\n Group: (props: DetailPanelGroupProps) => JSX.Element;\n Section: (props: DetailPanelSectionProps) => JSX.Element;\n Action: (props: DetailPanelActionProps) => JSX.Element;\n};\n\nconst classNames = (base: string, extra?: string): string => (extra ? `${base} ${extra}` : base);\n\nconst DetailPanelHeader = (props: DetailPanelHeaderProps): JSX.Element => (\n <header class={classNames(\"k2b-detail-panel__header\", props.class)}>\n <div class=\"k2b-detail-panel__header-main\">\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-detail-panel__header-icon\" aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n <Show when={props.leading}>\n <div class=\"k2b-detail-panel__header-leading\">{props.leading}</div>\n </Show>\n <div class=\"k2b-detail-panel__heading\">\n <h2>{props.title}</h2>\n <Show when={props.subtitle || props.meta}>\n <div class=\"k2b-detail-panel__supporting\">\n <Show when={props.subtitle}>\n <p>{props.subtitle}</p>\n </Show>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__meta\">{props.meta}</div>\n </Show>\n </div>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__actions\">{props.actions}</div>\n </Show>\n </div>\n <Show when={props.primaryActions}>\n <div class=\"k2b-detail-panel__primary-actions\">{props.primaryActions}</div>\n </Show>\n </header>\n);\n\nconst DetailPanelBody = (props: DetailPanelBodyProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel__body\", props.class)} data-scroll-preserve={props.scrollPreserveKey}>\n {props.children}\n </div>\n);\n\nconst DetailPanelSummary = (props: DetailPanelSummaryProps): JSX.Element => {\n const headingId = `k2b-detail-panel-summary-${createUniqueId()}`;\n\n return (\n <section class={classNames(\"k2b-detail-panel__summary\", props.class)} aria-labelledby={headingId}>\n <header class=\"k2b-detail-panel__summary-header\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__summary-actions\">{props.actions}</div>\n </Show>\n </header>\n <div class=\"k2b-detail-panel__summary-body\">{props.children}</div>\n </section>\n );\n};\n\nconst DetailPanelGroup = (props: DetailPanelGroupProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel__group\", props.class)} role=\"group\" aria-label={props.label}>\n {props.children}\n </div>\n);\n\nconst DetailPanelSectionIcon = (props: Pick<DetailPanelSectionBaseProps, \"icon\" | \"tone\">): JSX.Element => (\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-detail-panel__section-icon\" data-tone={props.tone ?? \"neutral\"} aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n);\n\nconst DetailPanelActionContent = (props: DetailPanelActionBaseProps): JSX.Element => (\n <>\n <Show when={props.leading}>\n <span class=\"k2b-detail-panel__action-leading\">{props.leading}</span>\n </Show>\n <span class=\"k2b-detail-panel__action-copy\">\n <span class=\"k2b-detail-panel__action-title\">{props.title}</span>\n <Show when={props.description}>\n <span class=\"k2b-detail-panel__action-description\">{props.description}</span>\n </Show>\n </span>\n <Show when={props.trailing}>\n <span class=\"k2b-detail-panel__action-trailing\">{props.trailing}</span>\n </Show>\n </>\n);\n\nconst DetailPanelAction = (props: DetailPanelActionProps): JSX.Element => {\n const [local, rest] = splitProps(props, [\"class\", \"description\", \"href\", \"leading\", \"menuItems\", \"menuLabel\", \"title\", \"trailing\"]);\n const className = classNames(\"k2b-detail-panel__action\", local.class);\n const content = () => (\n <DetailPanelActionContent title={local.title} description={local.description} leading={local.leading} trailing={local.trailing} />\n );\n\n const action = () => (\n <Show\n when={local.href !== undefined}\n fallback={\n <Button\n {...(rest as Omit<DetailPanelActionButtonProps, keyof DetailPanelActionBaseProps>)}\n class={className}\n variant=\"ghost\"\n size=\"sm\"\n >\n {content()}\n </Button>\n }\n >\n <ButtonLink\n {...(rest as Omit<DetailPanelActionLinkProps, keyof DetailPanelActionBaseProps | \"href\">)}\n href={local.href as string}\n class={className}\n variant=\"ghost\"\n size=\"sm\"\n >\n {content()}\n </ButtonLink>\n </Show>\n );\n\n return (\n <Show when={local.menuItems?.length} fallback={action()}>\n <div class=\"k2b-detail-panel__action-row\">\n {action()}\n <Dropdown.Root items={local.menuItems ?? []} align=\"end\" label={local.menuLabel} class=\"k2b-detail-panel__action-menu\">\n <Dropdown.Trigger iconOnly size=\"sm\" variant=\"ghost\" label={local.menuLabel} class=\"k2b-detail-panel__action-menu-trigger\">\n <i class=\"ti ti-dots\" aria-hidden=\"true\" />\n </Dropdown.Trigger>\n </Dropdown.Root>\n </div>\n </Show>\n );\n};\n\nconst DetailPanelSection = (props: DetailPanelSectionProps): JSX.Element => {\n const headingId = `k2b-detail-panel-section-${createUniqueId()}`;\n const bodyId = `${headingId}-body`;\n const [internalOpen, setInternalOpen] = createSignal(props.defaultOpen ?? false);\n const open = () => props.open ?? internalOpen();\n let expand: HTMLButtonElement | undefined;\n let collapse: HTMLButtonElement | undefined;\n let body: HTMLDivElement | undefined;\n const toggle = (next: boolean) => {\n if (props.disabled) return;\n if (props.open === undefined) setInternalOpen(next);\n props.onOpenChange?.(next);\n };\n createEffect(() => {\n const expanded = open();\n // Restore focus only when its current control becomes hidden, including\n // a parent-controlled collapse while focus is inside an editor.\n queueMicrotask(() => {\n if (expanded !== open()) return;\n const active = expand?.ownerDocument.activeElement;\n if (expanded && active === expand) collapse?.focus();\n if (!expanded && (active === collapse || (active && body?.contains(active)))) expand?.focus();\n });\n });\n const className = () => classNames(\"k2b-detail-panel__section\", props.class);\n\n return (\n <Show\n when={props.collapsible}\n fallback={\n <section class={className()} aria-labelledby={headingId}>\n <header class=\"k2b-detail-panel__section-header\">\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <div class=\"k2b-detail-panel__section-copy\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.description}>\n <p>{props.description}</p>\n </Show>\n </div>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__section-meta\">{props.meta}</div>\n </Show>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__section-actions\">{props.actions}</div>\n </Show>\n </header>\n <Show when={props.children !== undefined}>\n <div class=\"k2b-detail-panel__section-body\">{props.children}</div>\n </Show>\n </section>\n }\n >\n <section class={className()} aria-labelledby={open() ? headingId : `${headingId}-closed`} data-open={open()}>\n <div hidden={open()}>\n <Button\n ref={expand}\n variant=\"ghost\"\n class=\"k2b-detail-panel__section-summary\"\n disabled={props.disabled}\n aria-expanded={false}\n aria-controls={bodyId}\n onClick={() => toggle(true)}\n >\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <span class=\"k2b-detail-panel__section-copy\">\n <span id={`${headingId}-closed`} class=\"k2b-detail-panel__section-title\">\n {props.title}\n </span>\n <Show when={props.description}>\n <span class=\"k2b-detail-panel__section-description\">{props.description}</span>\n </Show>\n </span>\n <Show when={props.meta}>\n <span class=\"k2b-detail-panel__section-meta\">{props.meta}</span>\n </Show>\n <i class=\"ti ti-chevron-down\" aria-hidden=\"true\" />\n </Button>\n </div>\n <div hidden={!open()}>\n <header class=\"k2b-detail-panel__section-header\">\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <div class=\"k2b-detail-panel__section-copy\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.description}>\n <p>{props.description}</p>\n </Show>\n </div>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__section-meta\">{props.meta}</div>\n </Show>\n <Button\n ref={collapse}\n variant=\"ghost\"\n size=\"sm\"\n disabled={props.disabled}\n aria-labelledby={headingId}\n aria-expanded={true}\n aria-controls={bodyId}\n onClick={() => toggle(false)}\n >\n <i class=\"ti ti-chevron-up\" aria-hidden=\"true\" />\n </Button>\n </header>\n </div>\n <div ref={body} id={bodyId} hidden={!open()} class=\"k2b-detail-panel__section-body\">\n {props.children}\n </div>\n </section>\n </Show>\n );\n};\n\nconst DetailPanel = ((props: DetailPanelProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel\", props.class)}>{props.children}</div>\n)) as DetailPanelComponent;\n\nDetailPanel.Header = DetailPanelHeader;\nDetailPanel.Body = DetailPanelBody;\nDetailPanel.Summary = DetailPanelSummary;\nDetailPanel.Group = DetailPanelGroup;\nDetailPanel.Section = DetailPanelSection;\nDetailPanel.Action = DetailPanelAction;\n\nexport default DetailPanel;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -50,7 +50,7 @@ export const confirmDiscardIfDirty = async dirty => {
|
|
|
50
50
|
};
|
|
51
51
|
const PanelDialogHeader = props => {
|
|
52
52
|
const messages = useUiMessages();
|
|
53
|
-
return _$ssr(_tmpl$4, _$ssrAttribute("data-surface", _$escape(usePanelDialogSurface(), true), false), _$escape(_$createComponent(Show, {
|
|
53
|
+
return _$ssr(_tmpl$4, _$ssrAttribute("data-surface", _$escape(usePanelDialogSurface(), true), false) + _$ssrAttribute("data-has-subtitle", _$escape(Boolean(props.subtitle), true), false), _$escape(_$createComponent(Show, {
|
|
54
54
|
get when() {
|
|
55
55
|
return props.icon;
|
|
56
56
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","Show","useContext","Tabs","prompts","resolveUiMessages","useUiMessages","PanelDialogSurfaceContext","usePanelDialogSurface","panelDialogBasePanelClass","panelDialogPanelClass","panelDialogOptions","panelClassName","contentClassName","panelDialogWidePanelClass","panelDialogWideOptions","panelDialogFixedPanelClass","panelDialogFixedOptions","panelDialogWorkspacePanelClass","panelDialogWorkspaceOptions","confirmDiscardIfDirty","dirty","hasChanges","Boolean","confirm","discardUnsavedChanges","title","unsavedChangesTitle","variant","confirmText","discard","PanelDialogHeader","props","messages","_$ssr","_tmpl$4","_$ssrAttribute","_$escape","_$createComponent","when","icon","children","_tmpl$5","subtitle","_tmpl$","actions","_tmpl$2","close","_tmpl$3","closeLabel","closeDialog","closeDisabled","PanelDialogBody","_tmpl$6","scrollPreserveKey","PanelDialogFooter","_tmpl$7","PanelDialogSection","_tmpl$8","_tmpl$9","PanelDialogTabs","value","onValueChange","ariaLabel","label","dialogTabs","options","PanelDialog","surface","Provider","_tmpl$0","Header","Body","Footer","Section"],"sources":["layout/PanelDialog.tsx"],"sourcesContent":["import { createContext, type JSX, Show, useContext } from \"solid-js\";\nimport { Tabs } from \"../actions/Tabs\";\nimport type { OpenDialogOptions } from \"../feedback/dialog-core\";\nimport { prompts } from \"../feedback/prompts\";\nimport { resolveUiMessages, useUiMessages } from \"../intl/messages\";\n\nexport type PanelDialogSurface = \"contained\" | \"floating\";\n\nexport type PanelDialogProps = {\n children: JSX.Element;\n surface?: PanelDialogSurface;\n};\n\nexport type PanelDialogHeaderProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n icon?: string;\n actions?: JSX.Element;\n close?: () => void;\n closeDisabled?: boolean;\n closeLabel?: string;\n};\n\nexport type PanelDialogBodyProps = {\n children: JSX.Element;\n scrollPreserveKey?: string;\n};\n\nexport type PanelDialogFooterProps = {\n children: JSX.Element;\n};\n\nexport type PanelDialogSectionProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n icon?: string;\n actions?: JSX.Element;\n children: JSX.Element;\n};\n\nexport type PanelDialogTabOption<T extends string = string> = {\n value: T;\n label: JSX.Element;\n icon?: string;\n disabled?: boolean;\n};\n\nexport type PanelDialogTabsProps<T extends string = string> = {\n options: readonly PanelDialogTabOption<T>[];\n value: T | (() => T);\n onValueChange: (value: T) => void;\n ariaLabel?: string;\n label?: string;\n};\n\ntype PanelDialogComponent = ((props: PanelDialogProps) => JSX.Element) & {\n Header: (props: PanelDialogHeaderProps) => JSX.Element;\n Body: (props: PanelDialogBodyProps) => JSX.Element;\n Footer: (props: PanelDialogFooterProps) => JSX.Element;\n Section: (props: PanelDialogSectionProps) => JSX.Element;\n Tabs: <T extends string>(props: PanelDialogTabsProps<T>) => JSX.Element;\n};\n\nconst PanelDialogSurfaceContext = createContext<PanelDialogSurface>(\"contained\");\nconst usePanelDialogSurface = () => useContext(PanelDialogSurfaceContext);\n\nconst panelDialogBasePanelClass = \"k2b-dialog k2b-panel-dialog-frame\";\n\nexport const panelDialogPanelClass = `${panelDialogBasePanelClass} is-standard`;\nexport const panelDialogOptions = {\n panelClassName: panelDialogPanelClass,\n contentClassName: \"k2b-panel-dialog-viewport\",\n} satisfies OpenDialogOptions;\n\nexport const panelDialogWidePanelClass = `${panelDialogBasePanelClass} is-wide`;\nexport const panelDialogWideOptions = {\n panelClassName: panelDialogWidePanelClass,\n contentClassName: \"k2b-panel-dialog-viewport\",\n} satisfies OpenDialogOptions;\n\nexport const panelDialogFixedPanelClass = `${panelDialogBasePanelClass} is-fixed`;\nexport const panelDialogFixedOptions = {\n panelClassName: panelDialogFixedPanelClass,\n contentClassName: \"k2b-panel-dialog-viewport is-fixed\",\n} satisfies OpenDialogOptions;\n\nexport const panelDialogWorkspacePanelClass = `${panelDialogBasePanelClass} is-workspace`;\nexport const panelDialogWorkspaceOptions = {\n panelClassName: panelDialogWorkspacePanelClass,\n contentClassName: \"k2b-panel-dialog-viewport is-workspace\",\n} satisfies OpenDialogOptions;\n\nexport const confirmDiscardIfDirty = async (dirty: boolean | (() => boolean)): Promise<boolean> => {\n const hasChanges = typeof dirty === \"function\" ? dirty() : dirty;\n if (!hasChanges) return true;\n return Boolean(\n await prompts.confirm(resolveUiMessages().discardUnsavedChanges, {\n title: resolveUiMessages().unsavedChangesTitle,\n variant: \"danger\",\n confirmText: resolveUiMessages().discard,\n }),\n );\n};\n\nconst PanelDialogHeader = (props: PanelDialogHeaderProps): JSX.Element => {\n const messages = useUiMessages();\n return (\n <header class=\"k2b-panel-dialog__header\" data-surface={usePanelDialogSurface()}>\n <Show when={props.icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>\n <div class=\"k2b-panel-dialog__heading\">\n <h2>{props.title}</h2>\n <Show when={props.subtitle}>\n <p>{props.subtitle}</p>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-panel-dialog__actions\">{props.actions}</div>\n </Show>\n <Show when={props.close}>\n <button\n type=\"button\"\n class=\"k2b-dialog__close\"\n aria-label={props.closeLabel ?? messages().closeDialog}\n disabled={props.closeDisabled}\n onClick={props.close}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </header>\n );\n};\n\nconst PanelDialogBody = (props: PanelDialogBodyProps): JSX.Element => (\n <div class=\"k2b-panel-dialog__body\" data-scroll-preserve={props.scrollPreserveKey} data-surface={usePanelDialogSurface()}>\n {props.children}\n </div>\n);\n\nconst PanelDialogFooter = (props: PanelDialogFooterProps): JSX.Element => (\n <footer class=\"k2b-panel-dialog__footer\" data-surface={usePanelDialogSurface()}>\n {props.children}\n </footer>\n);\n\nconst PanelDialogSection = (props: PanelDialogSectionProps): JSX.Element => (\n <section class=\"k2b-panel-dialog__section\" data-surface={usePanelDialogSurface()}>\n <header>\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-panel-dialog__section-icon\">\n <i class={icon()} aria-hidden=\"true\" />\n </span>\n )}\n </Show>\n <div>\n <h3>{props.title}</h3>\n <Show when={props.subtitle}>\n <p>{props.subtitle}</p>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-panel-dialog__actions\">{props.actions}</div>\n </Show>\n </header>\n <div class=\"k2b-panel-dialog__section-body\">{props.children}</div>\n </section>\n);\n\nconst PanelDialogTabs = <T extends string>(props: PanelDialogTabsProps<T>): JSX.Element => {\n const messages = useUiMessages();\n return (\n <Tabs\n class=\"k2b-panel-dialog__tabs\"\n value={props.value}\n onValueChange={props.onValueChange}\n ariaLabel={props.ariaLabel ?? props.label ?? messages().dialogTabs}\n options={props.options}\n />\n );\n};\n\nconst PanelDialog = ((props: PanelDialogProps): JSX.Element => {\n const surface = props.surface ?? \"contained\";\n return (\n <PanelDialogSurfaceContext.Provider value={surface}>\n <div class=\"k2b-panel-dialog\" data-surface={surface}>\n {props.children}\n </div>\n </PanelDialogSurfaceContext.Provider>\n );\n}) as PanelDialogComponent;\n\nPanelDialog.Header = PanelDialogHeader;\nPanelDialog.Body = PanelDialogBody;\nPanelDialog.Footer = PanelDialogFooter;\nPanelDialog.Section = PanelDialogSection;\nPanelDialog.Tabs = PanelDialogTabs;\n\nexport default PanelDialog;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createContext","Show","useContext","Tabs","prompts","resolveUiMessages","useUiMessages","PanelDialogSurfaceContext","usePanelDialogSurface","panelDialogBasePanelClass","panelDialogPanelClass","panelDialogOptions","panelClassName","contentClassName","panelDialogWidePanelClass","panelDialogWideOptions","panelDialogFixedPanelClass","panelDialogFixedOptions","panelDialogWorkspacePanelClass","panelDialogWorkspaceOptions","confirmDiscardIfDirty","dirty","hasChanges","Boolean","confirm","discardUnsavedChanges","title","unsavedChangesTitle","variant","confirmText","discard","PanelDialogHeader","props","messages","_$ssr","_tmpl$4","_$ssrAttribute","_$escape","subtitle","_$createComponent","when","icon","children","_tmpl$5","_tmpl$","actions","_tmpl$2","close","_tmpl$3","closeLabel","closeDialog","closeDisabled","PanelDialogBody","_tmpl$6","scrollPreserveKey","PanelDialogFooter","_tmpl$7","PanelDialogSection","_tmpl$8","_tmpl$9","PanelDialogTabs","value","onValueChange","ariaLabel","label","dialogTabs","options","PanelDialog","surface","Provider","_tmpl$0","Header","Body","Footer","Section"],"sources":["layout/PanelDialog.tsx"],"sourcesContent":["import { createContext, type JSX, Show, useContext } from \"solid-js\";\nimport { Tabs } from \"../actions/Tabs\";\nimport type { OpenDialogOptions } from \"../feedback/dialog-core\";\nimport { prompts } from \"../feedback/prompts\";\nimport { resolveUiMessages, useUiMessages } from \"../intl/messages\";\n\nexport type PanelDialogSurface = \"contained\" | \"floating\";\n\nexport type PanelDialogProps = {\n children: JSX.Element;\n surface?: PanelDialogSurface;\n};\n\nexport type PanelDialogHeaderProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n icon?: string;\n actions?: JSX.Element;\n close?: () => void;\n closeDisabled?: boolean;\n closeLabel?: string;\n};\n\nexport type PanelDialogBodyProps = {\n children: JSX.Element;\n scrollPreserveKey?: string;\n};\n\nexport type PanelDialogFooterProps = {\n children: JSX.Element;\n};\n\nexport type PanelDialogSectionProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n icon?: string;\n actions?: JSX.Element;\n children: JSX.Element;\n};\n\nexport type PanelDialogTabOption<T extends string = string> = {\n value: T;\n label: JSX.Element;\n icon?: string;\n disabled?: boolean;\n};\n\nexport type PanelDialogTabsProps<T extends string = string> = {\n options: readonly PanelDialogTabOption<T>[];\n value: T | (() => T);\n onValueChange: (value: T) => void;\n ariaLabel?: string;\n label?: string;\n};\n\ntype PanelDialogComponent = ((props: PanelDialogProps) => JSX.Element) & {\n Header: (props: PanelDialogHeaderProps) => JSX.Element;\n Body: (props: PanelDialogBodyProps) => JSX.Element;\n Footer: (props: PanelDialogFooterProps) => JSX.Element;\n Section: (props: PanelDialogSectionProps) => JSX.Element;\n Tabs: <T extends string>(props: PanelDialogTabsProps<T>) => JSX.Element;\n};\n\nconst PanelDialogSurfaceContext = createContext<PanelDialogSurface>(\"contained\");\nconst usePanelDialogSurface = () => useContext(PanelDialogSurfaceContext);\n\nconst panelDialogBasePanelClass = \"k2b-dialog k2b-panel-dialog-frame\";\n\nexport const panelDialogPanelClass = `${panelDialogBasePanelClass} is-standard`;\nexport const panelDialogOptions = {\n panelClassName: panelDialogPanelClass,\n contentClassName: \"k2b-panel-dialog-viewport\",\n} satisfies OpenDialogOptions;\n\nexport const panelDialogWidePanelClass = `${panelDialogBasePanelClass} is-wide`;\nexport const panelDialogWideOptions = {\n panelClassName: panelDialogWidePanelClass,\n contentClassName: \"k2b-panel-dialog-viewport\",\n} satisfies OpenDialogOptions;\n\nexport const panelDialogFixedPanelClass = `${panelDialogBasePanelClass} is-fixed`;\nexport const panelDialogFixedOptions = {\n panelClassName: panelDialogFixedPanelClass,\n contentClassName: \"k2b-panel-dialog-viewport is-fixed\",\n} satisfies OpenDialogOptions;\n\nexport const panelDialogWorkspacePanelClass = `${panelDialogBasePanelClass} is-workspace`;\nexport const panelDialogWorkspaceOptions = {\n panelClassName: panelDialogWorkspacePanelClass,\n contentClassName: \"k2b-panel-dialog-viewport is-workspace\",\n} satisfies OpenDialogOptions;\n\nexport const confirmDiscardIfDirty = async (dirty: boolean | (() => boolean)): Promise<boolean> => {\n const hasChanges = typeof dirty === \"function\" ? dirty() : dirty;\n if (!hasChanges) return true;\n return Boolean(\n await prompts.confirm(resolveUiMessages().discardUnsavedChanges, {\n title: resolveUiMessages().unsavedChangesTitle,\n variant: \"danger\",\n confirmText: resolveUiMessages().discard,\n }),\n );\n};\n\nconst PanelDialogHeader = (props: PanelDialogHeaderProps): JSX.Element => {\n const messages = useUiMessages();\n return (\n <header class=\"k2b-panel-dialog__header\" data-surface={usePanelDialogSurface()} data-has-subtitle={Boolean(props.subtitle)}>\n <Show when={props.icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>\n <div class=\"k2b-panel-dialog__heading\">\n <h2>{props.title}</h2>\n <Show when={props.subtitle}>\n <p>{props.subtitle}</p>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-panel-dialog__actions\">{props.actions}</div>\n </Show>\n <Show when={props.close}>\n <button\n type=\"button\"\n class=\"k2b-dialog__close\"\n aria-label={props.closeLabel ?? messages().closeDialog}\n disabled={props.closeDisabled}\n onClick={props.close}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </header>\n );\n};\n\nconst PanelDialogBody = (props: PanelDialogBodyProps): JSX.Element => (\n <div class=\"k2b-panel-dialog__body\" data-scroll-preserve={props.scrollPreserveKey} data-surface={usePanelDialogSurface()}>\n {props.children}\n </div>\n);\n\nconst PanelDialogFooter = (props: PanelDialogFooterProps): JSX.Element => (\n <footer class=\"k2b-panel-dialog__footer\" data-surface={usePanelDialogSurface()}>\n {props.children}\n </footer>\n);\n\nconst PanelDialogSection = (props: PanelDialogSectionProps): JSX.Element => (\n <section class=\"k2b-panel-dialog__section\" data-surface={usePanelDialogSurface()}>\n <header>\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-panel-dialog__section-icon\">\n <i class={icon()} aria-hidden=\"true\" />\n </span>\n )}\n </Show>\n <div>\n <h3>{props.title}</h3>\n <Show when={props.subtitle}>\n <p>{props.subtitle}</p>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-panel-dialog__actions\">{props.actions}</div>\n </Show>\n </header>\n <div class=\"k2b-panel-dialog__section-body\">{props.children}</div>\n </section>\n);\n\nconst PanelDialogTabs = <T extends string>(props: PanelDialogTabsProps<T>): JSX.Element => {\n const messages = useUiMessages();\n return (\n <Tabs\n class=\"k2b-panel-dialog__tabs\"\n value={props.value}\n onValueChange={props.onValueChange}\n ariaLabel={props.ariaLabel ?? props.label ?? messages().dialogTabs}\n options={props.options}\n />\n );\n};\n\nconst PanelDialog = ((props: PanelDialogProps): JSX.Element => {\n const surface = props.surface ?? \"contained\";\n return (\n <PanelDialogSurfaceContext.Provider value={surface}>\n <div class=\"k2b-panel-dialog\" data-surface={surface}>\n {props.children}\n </div>\n </PanelDialogSurfaceContext.Provider>\n );\n}) as PanelDialogComponent;\n\nPanelDialog.Header = PanelDialogHeader;\nPanelDialog.Body = PanelDialogBody;\nPanelDialog.Footer = PanelDialogFooter;\nPanelDialog.Section = PanelDialogSection;\nPanelDialog.Tabs = PanelDialogTabs;\n\nexport default PanelDialog;\n"],"mappings":"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","ignoreList":[]}
|