@urbicon-ui/design-content 6.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +54 -0
  2. package/content/auth/components/account-settings/llm.txt +33 -0
  3. package/content/auth/components/forgot-password-page/llm.txt +25 -0
  4. package/content/auth/components/invitation-manager/llm.txt +28 -0
  5. package/content/auth/components/login-page/llm.txt +34 -0
  6. package/content/auth/components/notification-badge/llm.txt +21 -0
  7. package/content/auth/components/notification-center/llm.txt +33 -0
  8. package/content/auth/components/notification-listener/llm.txt +24 -0
  9. package/content/auth/components/passkey-manager/llm.txt +27 -0
  10. package/content/auth/components/push-permission-prompt/llm.txt +32 -0
  11. package/content/auth/components/register-page/llm.txt +35 -0
  12. package/content/auth/components/reset-password-page/llm.txt +26 -0
  13. package/content/auth/components/session-manager/llm.txt +32 -0
  14. package/content/auth/components/two-factor-manager/llm.txt +40 -0
  15. package/content/auth/components/verify-email-page/llm.txt +25 -0
  16. package/content/blocks/components/area-chart/llm.txt +46 -0
  17. package/content/blocks/components/bar-chart/llm.txt +44 -0
  18. package/content/blocks/components/calendar/llm.txt +105 -0
  19. package/content/blocks/components/chart-frame/llm.txt +38 -0
  20. package/content/blocks/components/command-palette/llm.txt +60 -0
  21. package/content/blocks/components/composition-bar/llm.txt +69 -0
  22. package/content/blocks/components/currency-input/llm.txt +65 -0
  23. package/content/blocks/components/date-picker/llm.txt +90 -0
  24. package/content/blocks/components/donut-chart/llm.txt +45 -0
  25. package/content/blocks/components/empty-state/llm.txt +43 -0
  26. package/content/blocks/components/file-upload/llm.txt +76 -0
  27. package/content/blocks/components/guide/llm.txt +49 -0
  28. package/content/blocks/components/guide-article/llm.txt +30 -0
  29. package/content/blocks/components/guide-beacon/llm.txt +38 -0
  30. package/content/blocks/components/guide-hint/llm.txt +41 -0
  31. package/content/blocks/components/guide-marker/llm.txt +36 -0
  32. package/content/blocks/components/guide-mention/llm.txt +31 -0
  33. package/content/blocks/components/guide-panel/llm.txt +42 -0
  34. package/content/blocks/components/guide-provider/llm.txt +31 -0
  35. package/content/blocks/components/line-chart/llm.txt +45 -0
  36. package/content/blocks/components/locale-switcher/llm.txt +44 -0
  37. package/content/blocks/components/planner/llm.txt +68 -0
  38. package/content/blocks/components/sankey/llm.txt +72 -0
  39. package/content/blocks/components/sidebar-layout/llm.txt +87 -0
  40. package/content/blocks/components/sparkline/llm.txt +33 -0
  41. package/content/blocks/components/theme-switcher/llm.txt +40 -0
  42. package/content/blocks/primitives/accordion/llm.txt +57 -0
  43. package/content/blocks/primitives/alert/llm.txt +54 -0
  44. package/content/blocks/primitives/avatar/llm.txt +61 -0
  45. package/content/blocks/primitives/badge/llm.txt +60 -0
  46. package/content/blocks/primitives/breadcrumb/llm.txt +47 -0
  47. package/content/blocks/primitives/button/llm.txt +80 -0
  48. package/content/blocks/primitives/button-group/llm.txt +65 -0
  49. package/content/blocks/primitives/card/llm.txt +68 -0
  50. package/content/blocks/primitives/checkbox/llm.txt +61 -0
  51. package/content/blocks/primitives/collapsible/llm.txt +66 -0
  52. package/content/blocks/primitives/combobox/llm.txt +86 -0
  53. package/content/blocks/primitives/confirm-dialog/llm.txt +47 -0
  54. package/content/blocks/primitives/dialog/llm.txt +59 -0
  55. package/content/blocks/primitives/drawer/llm.txt +54 -0
  56. package/content/blocks/primitives/form-field/llm.txt +43 -0
  57. package/content/blocks/primitives/input/llm.txt +73 -0
  58. package/content/blocks/primitives/menu/llm.txt +81 -0
  59. package/content/blocks/primitives/pagination/llm.txt +68 -0
  60. package/content/blocks/primitives/popover/llm.txt +72 -0
  61. package/content/blocks/primitives/progress/llm.txt +55 -0
  62. package/content/blocks/primitives/radio-group/llm.txt +53 -0
  63. package/content/blocks/primitives/segment-group/llm.txt +51 -0
  64. package/content/blocks/primitives/select/llm.txt +130 -0
  65. package/content/blocks/primitives/separator/llm.txt +45 -0
  66. package/content/blocks/primitives/sidebar/llm.txt +79 -0
  67. package/content/blocks/primitives/skeleton/llm.txt +54 -0
  68. package/content/blocks/primitives/slider/llm.txt +82 -0
  69. package/content/blocks/primitives/spinner/llm.txt +46 -0
  70. package/content/blocks/primitives/stepper/llm.txt +60 -0
  71. package/content/blocks/primitives/tab/llm.txt +72 -0
  72. package/content/blocks/primitives/textarea/llm.txt +61 -0
  73. package/content/blocks/primitives/toast/llm.txt +45 -0
  74. package/content/blocks/primitives/toggle/llm.txt +62 -0
  75. package/content/blocks/primitives/toolbar/llm.txt +60 -0
  76. package/content/blocks/primitives/tooltip/llm.txt +54 -0
  77. package/content/component-catalog.json +5010 -0
  78. package/content/design-system/patterns/dashboard.md +55 -0
  79. package/content/design-system/patterns/form-page.md +69 -0
  80. package/content/design-system/patterns/onboarding-guide.md +50 -0
  81. package/content/design-system/patterns/planning-board.md +46 -0
  82. package/content/design-system/patterns/settings-page.md +48 -0
  83. package/content/design-system/patterns/tab-navigation.md +136 -0
  84. package/content/design-system/principles.md +260 -0
  85. package/content/docs/components/api-reference/llm.txt +32 -0
  86. package/content/docs/components/code-example/llm.txt +44 -0
  87. package/content/docs/components/code-panel/llm.txt +26 -0
  88. package/content/docs/components/docs-layout/llm.txt +61 -0
  89. package/content/docs/components/info-card/llm.txt +31 -0
  90. package/content/docs/components/playground-configurator/llm.txt +49 -0
  91. package/content/docs/components/section/llm.txt +46 -0
  92. package/content/docs/components/table-of-contents/llm.txt +48 -0
  93. package/content/docs/components/types-reference/llm.txt +38 -0
  94. package/content/guides/llms-full-template.md +1019 -0
  95. package/content/icons.json +4834 -0
  96. package/content/meta.json +5 -0
  97. package/content/table/table/llm.txt +110 -0
  98. package/content/verbs/adopt.md +33 -0
  99. package/content/verbs/audit.md +29 -0
  100. package/content/verbs/compose.md +38 -0
  101. package/content/verbs/critique.md +27 -0
  102. package/content/verbs/fix.md +29 -0
  103. package/content/verbs/migrate.md +30 -0
  104. package/content/verbs/onboard.md +33 -0
  105. package/content/verbs/polish.md +25 -0
  106. package/content/verbs/redesign.md +29 -0
  107. package/content/verbs/retheme.md +29 -0
  108. package/package.json +45 -0
  109. package/src/content-loader.test.ts +78 -0
  110. package/src/content-loader.ts +97 -0
  111. package/src/index.ts +23 -0
@@ -0,0 +1,46 @@
1
+
2
+ ---
3
+
4
+ ## Spinner
5
+ Animated loading indicator with multiple animation styles and semantic intents.
6
+
7
+ **Import:** `import { Spinner } from '@urbicon-ui/blocks';`
8
+
9
+ ### Examples
10
+ ```svelte
11
+ <Spinner size="md" intent="primary" />
12
+ ```
13
+
14
+ ```svelte
15
+ <Spinner variant="bars" speed="fast" intent="success" />
16
+ ```
17
+
18
+ ### Variants
19
+ - intent: current, danger, neutral, primary, secondary, success, warning (default: primary)
20
+ - variant: bars, default, dots, pulse, ring (default: default)
21
+ - size: lg, md, sm, xl, xs (default: md)
22
+ - speed: fast, normal, slow (default: normal)
23
+
24
+ ### Api
25
+ | Prop | Type | Required | Default | Description |
26
+ | --- | --- | :---: | --- | --- |
27
+ | ...HTMLAttributes<HTMLDivElement> | `HTMLAttributes` | no | | HTML attributes (excluding: 'children') |
28
+ | ...SpinnerVariants | `VariantProps` | no | | Styling variants from SpinnerVariants |
29
+ | children | `Snippet` | no | | Optional content rendered beside the spinner (e.g. loading text). |
30
+ | class | `string` | no | | Extra classes merged onto the root element. |
31
+ | intent | `SpinnerVariants['intent']` | no | | Semantic color applied via `text-*` token. |
32
+ | label | `string` | no | | Accessible label announced by screen readers. Defaults to "Loading...". |
33
+ | preset | `string` | no | | Apply a named preset registered via `<BlocksProvider presets={{ Spinner: {...} }}>`. Prefer this over `class` overrides when the requested look falls outside the semantic intent palette — presets keep hover/active/dark-mode logic coherent and make the custom look reusable across the project. |
34
+ | size | `SpinnerVariants['size']` | no | | Physical dimensions from `xs` (16 px) to `xl` (40 px). |
35
+ | slotClasses | `Partial<Record<'base' | 'svg' | 'svgCircle' | 'svgPath' | 'dots' | 'dot' | 'pulse' | 'pulseCenter' | 'pulseRing' | 'ring' | 'ringElement' | 'bars' | 'bar' | 'content' | 'srOnly', string>>` | no | | Per-slot class overrides merged with (or replacing, when `unstyled`) tv() output. |
36
+ | speed | `SpinnerVariants['speed']` | no | | Animation speed — controls `--spinner-speed` custom property. |
37
+ | unstyled | `boolean` | no | | Strip all default tv() classes. Combine with `slotClasses` for full control. |
38
+ | variant | `SpinnerVariants['variant']` | no | | Animation style. `default` is an SVG arc, `dots` bounces three dots, `pulse` radiates a sonar ping, `ring` spins cascading borders, `bars` animates vertical equalizer bars. |
39
+ | visible | `boolean` | no | | When false the spinner is removed from the DOM. |
40
+
41
+ Inherited from:
42
+ - SpinnerVariants (external)
43
+ - Omit<HTMLAttributes<HTMLDivElement>, 'children'> (omit-pattern)
44
+
45
+ ### Slots (slotClasses keys)
46
+ `base`, `svg`, `svgCircle`, `svgPath`, `dots`, `dot`, `pulse`, `pulseCenter`, `pulseRing`, `ring`, `ringElement`, `bars`, `bar`, `content`, `srOnly`
@@ -0,0 +1,60 @@
1
+
2
+ ---
3
+
4
+ ## Stepper
5
+ Multi-step progress indicator with horizontal/vertical layout,
6
+ clickable navigation, and per-step state overrides (error, warning).
7
+
8
+ **Import:** `import { Stepper } from '@urbicon-ui/blocks';`
9
+
10
+ ### Examples
11
+ ```svelte
12
+ <Stepper activeStep={1}>
13
+ <StepperStep label="Account" description="Create your account" />
14
+ <StepperStep label="Profile" description="Set up your profile" />
15
+ <StepperStep label="Review" description="Review and submit" />
16
+ </Stepper>
17
+ ```
18
+
19
+ ```svelte
20
+ <Stepper activeStep={0} orientation="vertical" clickable>
21
+ <StepperStep label="Details" description="Enter your information">
22
+ <p>Form content here...</p>
23
+ </StepperStep>
24
+ <StepperStep label="Confirm" description="Verify and submit" />
25
+ </Stepper>
26
+ ```
27
+
28
+ ### Variants
29
+ - variant: default, minimal, outlined (default: default)
30
+ - size: lg, md, sm (default: md)
31
+ - orientation: horizontal, vertical (default: horizontal)
32
+ - tier: commit, modify (default: commit)
33
+
34
+ ### Api
35
+ | Prop | Type | Required | Default | Description |
36
+ | --- | --- | :---: | --- | --- |
37
+ | children | `Snippet` | yes | | StepperStep children. |
38
+ | ...HTMLAttributes<HTMLOListElement> | `HTMLAttributes` | no | | HTML attributes (excluding: 'children') |
39
+ | ...StepperVariants | `VariantProps` | no | | Styling variants from StepperVariants |
40
+ | activeStep | `number` | no | 0 | Current active step index (0-based). Supports bind:activeStep. |
41
+ | class | `string` | no | | Extra classes merged onto the root element. |
42
+ | clickable | `boolean` | no | false | Allow clicking step indicators to navigate between steps. |
43
+ | disabled | `boolean` | no | false | Disable all steps and prevent navigation. |
44
+ | linear | `boolean` | no | false | Restrict navigation to sequential order — only completed steps and the next step are clickable. |
45
+ | onStepChange | `(step: number) => void` | no | | Fires when a step is activated via click. Passes the new step index. |
46
+ | orientation | `'horizontal' | 'vertical'` | no | 'horizontal' | Orientation property for the Stepper component |
47
+ | preset | `string` | no | | Apply a named preset registered via `<BlocksProvider presets={{ Stepper: {...} }}>`. Prefer this over `class` overrides when the requested look falls outside the semantic intent palette — presets keep hover/active/dark-mode logic coherent and make the custom look reusable across the project. |
48
+ | responsive | `boolean | { breakpoint?: number }` | no | false | Container-responsive mode: when the Stepper's container is narrower than `breakpoint`, automatically switch to `orientation="vertical"` and `variant="minimal"` so the steps stay readable. - `false` (default): never auto-switch. - `true`: switch below 640 px container width. - `{ breakpoint: 480 }`: switch below 480 px. Uses `ResizeObserver` on the root element — works inside Drawers, Cards, or split layouts where viewport-based media queries miss the actual available width. |
49
+ | size | `'sm' | 'md' | 'lg'` | no | 'md' | Size variant that controls dimensions and spacing of the Stepper |
50
+ | slotClasses | `Partial<Record<'base' | 'stepItem' | 'step' | 'indicatorColumn' | 'indicator' | 'labelGroup' | 'label' | 'description' | 'separator' | 'content', string>>` | no | | Per-slot class overrides. |
51
+ | tier | `InteractiveTier` | no | 'commit' | Semantic radius tier propagated to every StepperStep. Default `commit` — step indicators read as identity circles. Set to `modify` (or inherit via TierContext from a wrapping `<Toolbar tier="modify">`) to render a compact soft-rectangle stepper for inline wizards. |
52
+ | unstyled | `boolean` | no | | Remove all default tv() classes. |
53
+ | variant | `'default' | 'outlined' | 'minimal'` | no | 'default' | Visual style of step indicators. |
54
+
55
+ Inherited from:
56
+ - Omit<StepperVariants, 'stepState' | 'clickable' | 'stepDisabled' | 'separatorComplete'> (omit-pattern)
57
+ - Omit<HTMLAttributes<HTMLOListElement>, 'children'> (omit-pattern)
58
+
59
+ ### Slots (slotClasses keys)
60
+ `base`, `stepItem`, `step`, `indicatorColumn`, `indicator`, `labelGroup`, `label`, `description`, `separator`, `content`
@@ -0,0 +1,72 @@
1
+
2
+ ---
3
+
4
+ ## Tab
5
+ Tab container that manages tab switching and content display.
6
+ Supports horizontal/vertical orientation, visual variants, and keyboard navigation.
7
+
8
+ **Import:** `import { Tab } from '@urbicon-ui/blocks';`
9
+
10
+ ### Examples
11
+ ```svelte
12
+ <Tab
13
+ tabs={[
14
+ { value: 'overview', label: 'Overview' },
15
+ { value: 'settings', label: 'Settings' },
16
+ { value: 'billing', label: 'Billing' }
17
+ ]}
18
+ bind:value={activeTab}
19
+ >
20
+ {#snippet panels()}
21
+ {#if activeTab === 'overview'}<p>Overview content</p>{/if}
22
+ {#if activeTab === 'settings'}<p>Settings content</p>{/if}
23
+ {#if activeTab === 'billing'}<p>Billing content</p>{/if}
24
+ {/snippet}
25
+ </Tab>
26
+ ```
27
+
28
+ ```svelte
29
+ <Tab
30
+ tabs={[
31
+ { value: 'code', label: 'Code' },
32
+ { value: 'preview', label: 'Preview' }
33
+ ]}
34
+ variant="underline"
35
+ size="sm"
36
+ defaultValue="code"
37
+ >
38
+ {#snippet panels()}
39
+ <div>Tab panel content</div>
40
+ {/snippet}
41
+ </Tab>
42
+ ```
43
+
44
+ ### Variants
45
+ - variant: enclosed, line, pills, solid (default: line)
46
+ - size: lg, md, sm (default: md)
47
+ - fullWidth: true (default: false)
48
+ - orientation: horizontal, vertical (default: horizontal)
49
+ - tier: commit, modify (default: modify)
50
+
51
+ ### Api
52
+ | Prop | Type | Required | Default | Description |
53
+ | --- | --- | :---: | --- | --- |
54
+ | class | `string` | no | | Additional CSS class merged onto the root element. |
55
+ | defaultValue | `string` | no | | Default active tab for uncontrolled mode. Ignored when `value` is set. |
56
+ | disabled | `boolean` | no | false | Disables all tabs, preventing interaction and dimming the UI. |
57
+ | fullWidth | `boolean` | no | false | Stretch triggers to fill the available width. Only meaningful on horizontal tabs. |
58
+ | mint | `MintProp` | no | 'none' | Micro-interaction animation applied to each tab trigger (per-item, not the container). |
59
+ | onValueChange | `(value: string) => void` | no | | Fires when the active tab changes. Receives the new tab value string. |
60
+ | orientation | `'horizontal' | 'vertical'` | no | 'horizontal' | Tab strip axis. Determines whether triggers stack horizontally or vertically. |
61
+ | panels | `Snippet` | no | | Snippet containing TabPanel components for the content area. |
62
+ | preset | `string` | no | | Apply a named preset registered via `<BlocksProvider presets={{ Tab: {...} }}>`. Prefer this over `class` overrides when the requested look falls outside the semantic intent palette — presets keep hover/active/dark-mode logic coherent and make the custom look reusable across the project. |
63
+ | slotClasses | `Partial<Record<'base' | 'list' | 'trigger' | 'panel' | 'indicator', string>>` | no | | Per-slot class overrides merged with (or replacing when unstyled) tv() styles. |
64
+ | tabs | `Snippet` | no | | Snippet containing TabItem components for the tab strip. |
65
+ | tier | `InteractiveTier` | no | 'modify' | Semantic radius tier propagated to every TabItem. Default `modify` — tabs read as navigation tap surfaces. Set to `commit` (or inherit via TierContext from a wrapping `<Toolbar tier="commit">`) for full-pill tab strips in marketing/product-overview contexts. Only the `pills`, `solid`, and `enclosed` variants render a visible corner; `line` is radius-agnostic. |
66
+ | unstyled | `boolean` | no | | Strip all default tv() styles from the container and children. |
67
+ | value | `string` | no | | Controlled active tab value. Use with `bind:value` for two-way binding. When set, the component is controlled — you must handle `onValueChange` to update it. |
68
+ | variant | `'enclosed' | 'line' | 'pills' | 'solid'` | no | line | Controls the visual style and presentation of the Tab. Determines the component's visual treatment. Available options: enclosed, line, pills, solid. |
69
+ | size | `'lg' | 'md' | 'sm'` | no | md | Controls the dimensions, padding, and text size of the Tab. Affects the component's physical footprint. Available options: lg, md, sm. |
70
+
71
+ ### Slots (slotClasses keys)
72
+ `base`, `list`, `trigger`, `panel`, `indicator`
@@ -0,0 +1,61 @@
1
+
2
+ ---
3
+
4
+ ## Textarea
5
+ Multi-line text input with auto-resize, character counter, and validation states.
6
+ Shares the same variant/intent/size system as Input for visual consistency.
7
+
8
+ **Import:** `import { Textarea } from '@urbicon-ui/blocks';`
9
+
10
+ ### Examples
11
+ ```svelte
12
+ <Textarea label="Description" placeholder="Tell us more..." bind:value={text} />
13
+ ```
14
+
15
+ ```svelte
16
+ <Textarea label="Bio" maxlength={280} showCounter autoResize />
17
+ ```
18
+
19
+ ### Variants
20
+ - intent: danger, default, success, warning (default: default)
21
+ - size: lg, md, sm (default: md)
22
+ - autoResize: true (default: false)
23
+ - disabled: true (default: false)
24
+ - messageType: error, helper (default: helper)
25
+ - readonly: true (default: false)
26
+ - required: true (default: false)
27
+ - tier: commit, modify (default: modify)
28
+
29
+ ### Api
30
+ | Prop | Type | Required | Default | Description |
31
+ | --- | --- | :---: | --- | --- |
32
+ | ...HTMLTextareaAttributes | `HTMLAttributes` | no | | HTML attributes (excluding: 'size' | 'class' | 'children') |
33
+ | ...TextareaVariants | `VariantProps` | no | | Styling variants from TextareaVariants |
34
+ | autoResize | `boolean` | no | false | Automatically grow the textarea height to fit content. Disables manual resize handle. |
35
+ | class | `string` | no | | Extra classes merged onto the root wrapper element. |
36
+ | counterWarningThreshold | `number` | no | 0.9 | Character threshold (percentage of maxlength) at which the counter turns warning color. |
37
+ | disabled | `boolean` | no | false | Whether the Textarea is disabled and non-interactive |
38
+ | error | `string` | no | | Error message below the textarea. Overrides `helper` and forces danger border styling. |
39
+ | helper | `string` | no | | Helper text below the textarea. Hidden when `error` is set. |
40
+ | label | `string` | no | | Label text displayed above the textarea, auto-linked via `for`/`id`. |
41
+ | maxRows | `number` | no | | Maximum number of visible text rows when autoResize is enabled. |
42
+ | minRows | `number` | no | 3 | Minimum number of visible text rows. |
43
+ | mint | `MintProp` | no | 'none' | Micro-interaction preset applied to the textarea element. |
44
+ | preset | `string` | no | | Apply a named preset registered via `<BlocksProvider presets={{ Textarea: {...} }}>`. Prefer this over `class` overrides when the requested look falls outside the semantic intent palette — presets keep hover/active/dark-mode logic coherent and make the custom look reusable across the project. |
45
+ | readonly | `boolean` | no | false | Readonly property for the Textarea component |
46
+ | required | `boolean` | no | false | Adds a required asterisk to the label and sets the native `required` attribute. |
47
+ | showCounter | `boolean` | no | | Show a live character counter. Requires `maxlength` to display remaining count. |
48
+ | slotClasses | `Partial<Record<'wrapper' | 'base' | 'label' | 'footer' | 'message' | 'counter', string>>` | no | | Per-slot class overrides merged with tv() styles. |
49
+ | unstyled | `boolean` | no | | Remove all default tv() classes. Only user-provided classes apply. |
50
+ | variant | `TextareaVariants['variant']` | no | 'outlined' | Visual style. - `outlined` (default) — visible border, surface-base background - `filled` — surface-interactive fill, no border - `ghost` — transparent until hover/focus - `underline` — bottom-line only, no border-box (editorial style) |
51
+ | intent | `'danger' | 'default' | 'success' | 'warning'` | no | default | Controls the color theme and semantic meaning of the Textarea. Affects the overall appearance and user perception. Available options: danger, default, success, warning. |
52
+ | size | `'lg' | 'md' | 'sm'` | no | md | Controls the dimensions, padding, and text size of the Textarea. Affects the component's physical footprint. Available options: lg, md, sm. |
53
+ | messageType | `'error' | 'helper'` | no | helper | Controls the messageType behavior and appearance of the Textarea component. Available options: error, helper. |
54
+ | tier | `'commit' | 'modify'` | no | modify | Controls the tier behavior and appearance of the Textarea component. Available options: commit, modify. |
55
+
56
+ Inherited from:
57
+ - Omit<TextareaVariants, 'error' | 'counterState' | 'variant'> (omit-pattern)
58
+ - Omit<HTMLTextareaAttributes, 'size' | 'class' | 'children'> (omit-pattern)
59
+
60
+ ### Slots (slotClasses keys)
61
+ `wrapper`, `base`, `label`, `footer`, `message`, `counter`
@@ -0,0 +1,45 @@
1
+
2
+ ---
3
+
4
+ ## Toast
5
+ Container that renders and manages toast notifications.
6
+ Place once in your root layout. Use the toaster store to trigger toasts from anywhere.
7
+
8
+ **Import:** `import { Toast } from '@urbicon-ui/blocks';`
9
+
10
+ ### Examples
11
+ ```svelte
12
+ <!-- +layout.svelte -->
13
+ <Toaster placement="bottom-right" />
14
+ ```
15
+
16
+ ```svelte
17
+ <script>
18
+ import { toaster } from '@urbicon-ui/blocks';
19
+
20
+ toaster.success('Saved!', { description: 'Changes applied.' });
21
+ toaster.danger('Error', { description: 'Something went wrong.', duration: 8000 });
22
+ </script>
23
+ ```
24
+
25
+ ### Variants
26
+ - intent: danger, info, neutral, primary, success, warning (default: neutral)
27
+ - placement: bottom-center, bottom-left, bottom-right, top-center, top-left, top-right (default: bottom-right)
28
+
29
+ ### Api
30
+ | Prop | Type | Required | Default | Description |
31
+ | --- | --- | :---: | --- | --- |
32
+ | ...HTMLAttributes<HTMLDivElement> | `HTMLAttributes` | no | | HTML attributes (excluding: 'children') |
33
+ | class | `string` | no | | Extra classes merged onto the container element. |
34
+ | max | `number` | no | 5 | Maximum number of toasts visible at once. Oldest are hidden first. |
35
+ | placement | `ToastPlacement` | no | 'bottom-right' | Screen corner where toasts stack. |
36
+ | preset | `string` | no | | Apply a named preset registered via `<BlocksProvider presets={{ Toaster: {...} }}>`. Prefer this over `class` overrides when the requested look falls outside the semantic intent palette — presets keep hover/active/dark-mode logic coherent and make the custom look reusable across the project. |
37
+ | slotClasses | `Partial<Record<'container' | 'toast' | 'icon' | 'content' | 'title' | 'description' | 'dismissButton' | 'progress', string>>` | no | | Per-slot class overrides merged with (or replacing, when `unstyled`) the default styles. |
38
+ | unstyled | `boolean` | no | | Strip all default tv classes. Use with `slotClasses` for a fully custom look. |
39
+ | intent | `'danger' | 'info' | 'neutral' | 'primary' | 'success' | 'warning'` | no | neutral | Controls the color theme and semantic meaning of the Toast. Affects the overall appearance and user perception. Available options: danger, info, neutral, and 3 more. |
40
+
41
+ Inherited from:
42
+ - Omit<HTMLAttributes<HTMLDivElement>, 'children'> (omit-pattern)
43
+
44
+ ### Slots (slotClasses keys)
45
+ `container`, `toast`, `icon`, `content`, `title`, `description`, `dismissButton`, `progress`
@@ -0,0 +1,62 @@
1
+
2
+ ---
3
+
4
+ ## Toggle
5
+ Accessible switch control for boolean on/off states.
6
+ Built on a hidden native input with semantic intents and Mint micro-interactions.
7
+
8
+ **Import:** `import { Toggle } from '@urbicon-ui/blocks';`
9
+
10
+ ### Examples
11
+ ```svelte
12
+ <Toggle label="Enable notifications" bind:checked />
13
+ ```
14
+
15
+ ```svelte
16
+ <Toggle
17
+ intent="success"
18
+ size="lg"
19
+ withBorder
20
+ onCheckedChange={(val) => console.log('toggled', val)}
21
+ />
22
+ ```
23
+
24
+ ### Variants
25
+ - intent: danger, neutral, primary, secondary, success, warning (default: primary)
26
+ - size: lg, md, sm, xs (default: md)
27
+ - appearance: default, dot (default: default)
28
+ - disabled: true (default: false)
29
+ - tier: commit, modify (default: commit)
30
+ - withBorder: false, true (default: false)
31
+
32
+ ### Api
33
+ | Prop | Type | Required | Default | Description |
34
+ | --- | --- | :---: | --- | --- |
35
+ | ...HTMLInputAttributes | `HTMLAttributes` | no | | HTML attributes (excluding: 'type' | 'size' | 'checked' | 'class' | 'children') |
36
+ | ...ToggleVariants | `VariantProps` | no | | Styling variants from ToggleVariants |
37
+ | appearance | `ToggleVariants['appearance']` | no | 'default' | Visual style. `default` renders a classic Switch-Pill (track + sliding thumb). `dot` renders a small monochrome circular indicator instead — outline-only when off, filled in the intent colour when on. Use `dot` for dense settings rows, inline-toolbars, or anywhere the Switch-Pill is visually too loud. |
38
+ | checked | `boolean` | no | | Current on/off state. Supports two-way binding via `bind:checked`. |
39
+ | class | `string` | no | | Extra classes merged onto the outermost wrapper element. |
40
+ | disabled | `boolean` | no | | Prevent interaction and dim the control. |
41
+ | helper | `string` | no | | Hint text shown below the control. Useful for explaining side-effects of the toggle. |
42
+ | id | `string` | no | | Explicit `id` to link `<label>` and `<input>`. Auto-generated if omitted. |
43
+ | label | `string` | no | | Text label displayed to the right of the toggle track. |
44
+ | mint | `MintProp` | no | | Micro-interaction preset applied to the control area on hover/click. |
45
+ | name | `string` | no | | The `name` attribute of the underlying `<input>`. Used for form submission. |
46
+ | onCheckedChange | `(checked: boolean) => void` | no | | Fired after the checked state changes. Receives the new `checked` value. |
47
+ | preset | `string` | no | | Apply a named preset registered via `<BlocksProvider presets={{ Toggle: {...} }}>`. Prefer this over `class` overrides when the requested look falls outside the semantic intent palette — presets keep hover/active/dark-mode logic coherent and make the custom look reusable across the project. |
48
+ | required | `boolean` | no | | Mark the native input as required for form validation. |
49
+ | slotClasses | `Partial<Record<'wrapper' | 'control' | 'track' | 'thumb' | 'label' | 'message', string>>` | no | | Per-slot class overrides merged with (or replacing, when `unstyled`) the default styles. |
50
+ | tier | `InteractiveTier` | no | | Semantic radius tier. Default `commit` — a toggle declares status (on/off identity), and reads as a pill. Set to `modify` (usually via a wrapping `<Toolbar tier="modify">` propagating through TierContext) for inline-toolbar contexts where the Pill feels oversized — the track and thumb shrink to a soft-rectangle. Inherited from TierContext when omitted; falls back to `commit` outside of any tier-aware container. |
51
+ | unstyled | `boolean` | no | | Strip all default tailwind-variants classes. Use with `slotClasses` for a fully custom look. The track exposes `data-state` for conditional styling. |
52
+ | value | `string` | no | | The value submitted when checked. Defaults to `'on'`. |
53
+ | withBorder | `boolean` | no | | Draw a subtle border around the track. Helps distinguish the control on busy backgrounds. |
54
+ | intent | `'danger' | 'neutral' | 'primary' | 'secondary' | 'success' | 'warning'` | no | primary | Controls the color theme and semantic meaning of the Toggle. Affects the overall appearance and user perception. Available options: danger, neutral, primary, and 3 more. |
55
+ | size | `'lg' | 'md' | 'sm' | 'xs'` | no | md | Controls the dimensions, padding, and text size of the Toggle. Affects the component's physical footprint. Available options: lg, md, sm, xs. |
56
+
57
+ Inherited from:
58
+ - Omit<ToggleVariants, 'checked'> (omit-pattern)
59
+ - Omit<HTMLInputAttributes, 'type' | 'size' | 'checked' | 'class' | 'children'> (omit-pattern)
60
+
61
+ ### Slots (slotClasses keys)
62
+ `wrapper`, `control`, `track`, `thumb`, `label`, `message`
@@ -0,0 +1,60 @@
1
+
2
+ ---
3
+
4
+ ## Toolbar
5
+ Container for grouping related controls in a horizontal or vertical bar.
6
+ Renders with role="toolbar" and auto-sets aria-orientation.
7
+
8
+ **Import:** `import { Toolbar } from '@urbicon-ui/blocks';`
9
+
10
+ ### Examples
11
+ ```svelte
12
+ <Toolbar aria-label="Text formatting">
13
+ <Button variant="ghost" size="sm">B</Button>
14
+ <Button variant="ghost" size="sm">I</Button>
15
+ <Separator orientation="vertical" size="sm" />
16
+ <Button variant="ghost" size="sm">Left</Button>
17
+ <Button variant="ghost" size="sm">Center</Button>
18
+ </Toolbar>
19
+ ```
20
+
21
+ ```svelte
22
+ <Toolbar aria-label="Actions" orientation="horizontal">
23
+ <ButtonGroup connected size="sm" variant="ghost">
24
+ <Button value="undo">Undo</Button>
25
+ <Button value="redo">Redo</Button>
26
+ </ButtonGroup>
27
+ <Separator orientation="vertical" />
28
+ <Button variant="ghost" size="sm" intent="danger">Delete</Button>
29
+ </Toolbar>
30
+ ```
31
+
32
+ ### Variants
33
+ - variant: elevated, ghost, outlined, quiet (default: quiet)
34
+ - gap: lg, md, sm, xl, xs (default: sm)
35
+ - orientation: horizontal, vertical (default: horizontal)
36
+ - padding: lg, md, sm, xl, xs (default: sm)
37
+
38
+ ### Api
39
+ | Prop | Type | Required | Default | Description |
40
+ | --- | --- | :---: | --- | --- |
41
+ | aria-label | `string` | yes | | Accessible label describing the toolbar's purpose (e.g. "Formatting toolbar"). Required. |
42
+ | children | `Snippet` | yes | | Toolbar content — typically Buttons, Toggles, Separators, or ButtonGroups. |
43
+ | ...HTMLAttributes<HTMLDivElement> | `HTMLAttributes` | no | | HTML attributes (excluding: 'children') |
44
+ | ...ToolbarVariants | `VariantProps` | no | | Styling variants from ToolbarVariants |
45
+ | class | `string` | no | | Additional CSS class applied to the root element. |
46
+ | preset | `string` | no | | Apply a named preset registered via `<BlocksProvider presets={{ Toolbar: {...} }}>`. Prefer this over `class` overrides when the requested look falls outside the semantic intent palette — presets keep hover/active/dark-mode logic coherent and make the custom look reusable across the project. |
47
+ | slotClasses | `Partial<Record<'base', string>>` | no | | Per-slot class overrides merged with (or replacing when `unstyled`) the default classes. |
48
+ | tier | `InteractiveTier` | no | 'modify' | Semantic radius tier propagated to tier-aware children (Buttons, Badges, Inputs, …). The Toolbar's own surface stays `r-structure` regardless of this prop. Default `modify` — toolbars typically hold compact, icon-only actions where pill-shaped buttons read as tags. Set to `commit` for marketing or hero toolbars with full CTAs. |
49
+ | unstyled | `boolean` | no | | Remove all default tv() classes. Combine with `slotClasses` to restyle from scratch. |
50
+ | variant | `'elevated' | 'ghost' | 'outlined' | 'quiet'` | no | quiet | Controls the visual style and presentation of the Toolbar. Determines the component's visual treatment. Available options: elevated, ghost, outlined, quiet. |
51
+ | gap | `'lg' | 'md' | 'sm' | 'xl' | 'xs'` | no | sm | Controls the gap behavior and appearance of the Toolbar component. Available options: lg, md, sm, and 2 more. |
52
+ | orientation | `'horizontal' | 'vertical'` | no | horizontal | Controls the orientation behavior and appearance of the Toolbar component. Available options: horizontal, vertical. |
53
+ | padding | `'lg' | 'md' | 'sm' | 'xl' | 'xs'` | no | sm | Controls the padding behavior and appearance of the Toolbar component. Available options: lg, md, sm, and 2 more. |
54
+
55
+ Inherited from:
56
+ - ToolbarVariants (external)
57
+ - Omit<HTMLAttributes<HTMLDivElement>, 'children'> (omit-pattern)
58
+
59
+ ### Slots (slotClasses keys)
60
+ `base`
@@ -0,0 +1,54 @@
1
+
2
+ ---
3
+
4
+ ## Tooltip
5
+ Contextual overlay that displays brief, supplementary text on hover or focus.
6
+ Built with Floating UI for precise positioning and accessibility support.
7
+
8
+ **Import:** `import { Tooltip } from '@urbicon-ui/blocks';`
9
+
10
+ ### Examples
11
+ ```svelte
12
+ <Tooltip label="Save your changes">
13
+ <Button>Save</Button>
14
+ </Tooltip>
15
+ ```
16
+
17
+ ```svelte
18
+ <Tooltip label="Copy to clipboard" placement="right" arrow showDelay={100}>
19
+ <Button variant="ghost" size="sm" onclick={handleCopy}>Copy</Button>
20
+ </Tooltip>
21
+ ```
22
+
23
+ ### Variants
24
+ - intent: danger, info, neutral, primary, secondary, success, warning (default: neutral)
25
+ - size: lg, md, sm (default: md)
26
+ - visible: false, true (default: false)
27
+
28
+ ### Api
29
+ | Prop | Type | Required | Default | Description |
30
+ | --- | --- | :---: | --- | --- |
31
+ | children | `Snippet` | yes | | The trigger element(s) that activate the tooltip. |
32
+ | label | `string` | yes | | Text displayed inside the tooltip bubble. |
33
+ | ...HTMLAttributes<HTMLDivElement> | `HTMLAttributes` | no | | HTML attributes (excluding: 'children') |
34
+ | ...TooltipVariants | `VariantProps` | no | | Styling variants from TooltipVariants |
35
+ | arrow | `boolean` | no | true | Whether to show a directional arrow pointing at the trigger. |
36
+ | class | `string` | no | | Additional CSS class for the tooltip panel. |
37
+ | disabled | `boolean` | no | false | Prevent the tooltip from appearing regardless of hover/focus. |
38
+ | hideDelay | `number` | no | 100 | Milliseconds before the tooltip disappears after leaving the trigger. |
39
+ | onVisibleChange | `(visible: boolean) => void` | no | | Fires when tooltip visibility changes (hover in/out, Escape key). |
40
+ | placement | `Placement` | no | 'top' | Where the tooltip appears relative to the trigger. Auto-flips when clipped. |
41
+ | preset | `string` | no | | Apply a named preset registered via `<BlocksProvider presets={{ Tooltip: {...} }}>`. Prefer this over `class` overrides when the requested look falls outside the semantic intent palette — presets keep hover/active/dark-mode logic coherent and make the custom look reusable across the project. |
42
+ | showDelay | `number` | no | 200 | Milliseconds before the tooltip appears after hover/focus. Prevents accidental activation. |
43
+ | slotClasses | `Partial<Record<'base' | 'arrow', string>>` | no | | Per-slot class overrides merged with (or replacing, when unstyled) tv styles. |
44
+ | unstyled | `boolean` | no | | Remove default tv classes; only consumer classes apply. |
45
+ | intent | `'danger' | 'info' | 'neutral' | 'primary' | 'secondary' | 'success' | 'warning'` | no | neutral | Controls the color theme and semantic meaning of the Tooltip. Affects the overall appearance and user perception. Available options: danger, info, neutral, and 4 more. |
46
+ | size | `'lg' | 'md' | 'sm'` | no | md | Controls the dimensions, padding, and text size of the Tooltip. Affects the component's physical footprint. Available options: lg, md, sm. |
47
+ | visible | `'false' | 'true'` | no | false | Controls the visible behavior and appearance of the Tooltip component. Available options: false, true. |
48
+
49
+ Inherited from:
50
+ - TooltipVariants (external)
51
+ - Omit<HTMLAttributes<HTMLDivElement>, 'children'> (omit-pattern)
52
+
53
+ ### Slots (slotClasses keys)
54
+ `base`, `arrow`