@c2-markdown-ui/vue 0.0.0-stage → 0.4.3

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 (61) hide show
  1. package/README.md +112 -2
  2. package/dist/MarkdownUI.vue.d.ts +15 -0
  3. package/dist/favicon.ico +0 -0
  4. package/dist/index.css +1 -0
  5. package/dist/index.d.ts +23 -0
  6. package/dist/index.js +10843 -0
  7. package/dist/index.umd.cjs +53 -0
  8. package/dist/widgets/Button.vue.d.ts +19 -0
  9. package/dist/widgets/ButtonGroup.vue.d.ts +13 -0
  10. package/dist/widgets/Cascader.vue.d.ts +48 -0
  11. package/dist/widgets/Chart.vue.d.ts +24 -0
  12. package/dist/widgets/DatePicker.vue.d.ts +42 -0
  13. package/dist/widgets/Form.vue.d.ts +59 -0
  14. package/dist/widgets/Incomplete.vue.d.ts +2 -0
  15. package/dist/widgets/MultipleChoiceQuestion.vue.d.ts +20 -0
  16. package/dist/widgets/NumberInput.vue.d.ts +37 -0
  17. package/dist/widgets/Quiz.vue.d.ts +39 -0
  18. package/dist/widgets/RadioGroup.vue.d.ts +43 -0
  19. package/dist/widgets/Select.vue.d.ts +27 -0
  20. package/dist/widgets/SelectMulti.vue.d.ts +38 -0
  21. package/dist/widgets/ShortAnswerQuestion.vue.d.ts +22 -0
  22. package/dist/widgets/Slider.vue.d.ts +21 -0
  23. package/dist/widgets/Switch.vue.d.ts +28 -0
  24. package/dist/widgets/Text.vue.d.ts +22 -0
  25. package/dist/widgets/TextInput.vue.d.ts +32 -0
  26. package/dist/widgets/TreeSelect.vue.d.ts +109 -0
  27. package/dist/widgets/Widget.vue.d.ts +8 -0
  28. package/dist/widgets/chartRemoteData.d.ts +17 -0
  29. package/dist/widgets/index.d.ts +20 -0
  30. package/dist/widgets/remoteChoices.d.ts +22 -0
  31. package/dist/widgets/treeSelectTypes.d.ts +43 -0
  32. package/package.json +46 -4
  33. package/src/App.vue +11 -0
  34. package/src/lib/MarkdownUI.vue +105 -0
  35. package/src/lib/index.ts +28 -0
  36. package/src/lib/widgets/Button.vue +47 -0
  37. package/src/lib/widgets/ButtonGroup.vue +43 -0
  38. package/src/lib/widgets/Cascader.vue +475 -0
  39. package/src/lib/widgets/Chart.vue +287 -0
  40. package/src/lib/widgets/DatePicker.vue +659 -0
  41. package/src/lib/widgets/Form.vue +479 -0
  42. package/src/lib/widgets/Incomplete.vue +56 -0
  43. package/src/lib/widgets/MultipleChoiceQuestion.vue +73 -0
  44. package/src/lib/widgets/NumberInput.vue +179 -0
  45. package/src/lib/widgets/Quiz.vue +205 -0
  46. package/src/lib/widgets/RadioGroup.vue +237 -0
  47. package/src/lib/widgets/Select.vue +279 -0
  48. package/src/lib/widgets/SelectMulti.vue +145 -0
  49. package/src/lib/widgets/ShortAnswerQuestion.vue +79 -0
  50. package/src/lib/widgets/Slider.vue +61 -0
  51. package/src/lib/widgets/Switch.vue +68 -0
  52. package/src/lib/widgets/Text.vue +59 -0
  53. package/src/lib/widgets/TextInput.vue +83 -0
  54. package/src/lib/widgets/TreeSelect.vue +872 -0
  55. package/src/lib/widgets/Widget.vue +185 -0
  56. package/src/lib/widgets/chartRemoteData.ts +84 -0
  57. package/src/lib/widgets/index.ts +20 -0
  58. package/src/lib/widgets/remoteChoices.ts +64 -0
  59. package/src/lib/widgets/treeSelectTypes.ts +49 -0
  60. package/src/lib/widgets.css +1754 -0
  61. package/src/main.ts +4 -0
package/README.md CHANGED
@@ -1,3 +1,113 @@
1
- # Temporary Holding Version
1
+ # @c2-markdown-ui/vue
2
+ **Transform Markdown into interactive Vue components—instantly.**
2
3
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
4
+ Turn static docs into live experiences users can click, select, and submit.
5
+
6
+ ✨ [Try the live demo](https://markdown-ui.com/) ✨
7
+
8
+ ## Get started in 30 seconds
9
+
10
+ ```bash
11
+ npm install @c2-markdown-ui/vue @c2-markdown-ui/marked-ext marked
12
+ ```
13
+
14
+ ```vue
15
+ <template>
16
+ <MarkdownUI :html="html" @widgetEvent="handleWidgetEvent" />
17
+ </template>
18
+
19
+ <script setup>
20
+ import { MarkdownUI } from '@c2-markdown-ui/vue'
21
+ import '@c2-markdown-ui/vue/widgets.css'
22
+ import { Marked } from 'marked'
23
+ import { markedUiExtension } from '@c2-markdown-ui/marked-ext'
24
+
25
+ const marked = new Marked()
26
+ marked.use(markedUiExtension)
27
+
28
+ const markdown = `
29
+ \`\`\`markdown-ui-widget
30
+ select env [dev staging prod]
31
+ \`\`\`
32
+ `
33
+
34
+ const html = marked.parse(markdown)
35
+
36
+ const handleWidgetEvent = (event) => {
37
+ console.log('User selected:', event.detail)
38
+ }
39
+ </script>
40
+ ```
41
+
42
+ ## What you can build
43
+
44
+ **Quick inputs**
45
+ ```vue
46
+ text-input username "Username" "Enter name"
47
+ button-group env [dev staging prod] dev
48
+ select region [us-east us-west] us-east
49
+ ```
50
+
51
+ **Complex forms**
52
+ ```vue
53
+ form deploy "Launch"
54
+ text-input name "App Name"
55
+ slider replicas 1 10 1 3
56
+ select env [dev prod] dev
57
+ ```
58
+
59
+ **Interactive charts**
60
+ ```vue
61
+ chart-line
62
+ title: Monthly Revenue
63
+ height: 300
64
+ Month,Sales,Target
65
+ Jan,45000,50000
66
+ Feb,52000,50000
67
+ Mar,48000,55000
68
+ ```
69
+
70
+ **Events made simple**
71
+ ```vue
72
+ const handleWidgetEvent = (event) => {
73
+ const { id, value } = event.detail
74
+ // That's it - perfect event data
75
+ }
76
+
77
+ // Form submit (fires after validation passes)
78
+ const handleSubmit = (event) => {
79
+ const { id, value } = event.detail // value = full form data (visible fields only)
80
+ }
81
+
82
+ // Form field stats (fires on every field change)
83
+ const handleFormChange = (event) => {
84
+ const { visibleCount, filledCount, values } = event.detail.stats
85
+ // e.g. "3/5 fields filled" - perfect for progress indicators
86
+ }
87
+ ```
88
+
89
+ ```vue
90
+ <MarkdownUI
91
+ :html="html"
92
+ @widget-event="handleWidgetEvent"
93
+ @submit="handleSubmit"
94
+ @form-change="handleFormChange"
95
+ />
96
+ ```
97
+
98
+ ## TypeScript ready
99
+
100
+ Full type safety out of the box. All components and events are properly typed for the best developer experience.
101
+
102
+ ## Works everywhere
103
+
104
+ **SSR-safe by design.** No special setup needed for Nuxt or any Vue framework.
105
+
106
+ ```vue
107
+ // Just import and use - SSR handled automatically
108
+ import { MarkdownUI } from '@c2-markdown-ui/vue'
109
+ ```
110
+
111
+ **Compatibility:** Vue 3+, Nuxt, Vite, and all modern Vue tooling.
112
+
113
+ MIT © 2025
@@ -0,0 +1,15 @@
1
+ interface MarkdownUIProps {
2
+ html: string;
3
+ /** 表单初始值:{ 字段id: 值 },作用于页面中所有 form widget(仅取各自 fields 声明的 id);优先级高于字段 default */
4
+ data?: Record<string, unknown>;
5
+ }
6
+ declare const _default: import("vue").DefineComponent<MarkdownUIProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ submit: (data: any) => any;
8
+ widgetEvent: (data: any) => any;
9
+ formChange: (data: any) => any;
10
+ }, string, import("vue").PublicProps, Readonly<MarkdownUIProps> & Readonly<{
11
+ onSubmit?: (data: any) => any;
12
+ onWidgetEvent?: (data: any) => any;
13
+ onFormChange?: (data: any) => any;
14
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ export default _default;
Binary file
package/dist/index.css ADDED
@@ -0,0 +1 @@
1
+ .widget{margin:1rem 0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}.widget-form{display:flex;flex-direction:column;gap:1rem;padding:1.5rem;border:1px solid #f0f0f0;border-radius:8px;background-color:#fff;box-shadow:0 1px 3px #0000001a}.widget-form.widget-form-inline{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:1rem}.widget-form-inline .widget-form-field{flex:1 1 calc(33.333% - 1rem);min-width:180px}.widget-form-inline[style*=--form-columns] .widget-form-field{flex-basis:calc((100% - (var(--form-columns) - 1) * 1rem) / var(--form-columns));min-width:120px}.widget-form-inline>button:last-child{flex:0 0 auto}.widget-form-row{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));column-gap:var(--row-gutter, 1rem);row-gap:1rem}.widget-form.widget-form-fields-grid{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));column-gap:1rem;row-gap:1rem;align-items:start}.widget-form-fields-grid .widget-form-field{min-width:0}.widget-form-fields-grid .widget-form-field[data-field-type=button]{width:max-content;max-width:100%;align-self:end;padding-bottom:0}.widget-form-fields-grid .widget-form-actions{grid-column:1 / -1}.widget-form-inline .widget-form-field[style*="flex: 0 1"]{flex-grow:0}.widget-form-row .widget-form-field{min-width:0}.widget-form-row .widget-form-field[data-field-type=button]{width:max-content;max-width:100%;align-self:end;padding-bottom:0}.widget-button{white-space:nowrap}.widget-grid-row{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));column-gap:var(--row-gutter, 1rem);row-gap:1rem;margin:1rem 0}.widget-grid-col{min-width:0}.widget-grid-col[data-field-type=button]{width:max-content;max-width:100%;align-self:end}.widget-text{margin:0;font-size:14px;line-height:1.6;color:inherit;word-break:break-word;overflow-wrap:anywhere}.widget-alert{display:flex;align-items:flex-start;gap:8px;padding:8px 12px;border-radius:8px;border:1px solid transparent;font-size:14px;line-height:1.5714;word-break:break-word;overflow-wrap:anywhere}.widget-alert .widget-alert-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:12px;font-weight:600;font-style:normal;line-height:1;border-radius:50%;margin-top:2px;-webkit-user-select:none;user-select:none}.widget-alert .widget-alert-message{flex:1 1 auto;min-width:0}.widget-alert-info{background-color:#e6f4ff;border-color:#91caff}.widget-alert-info .widget-alert-icon{color:#fff;background-color:#1677ff}.widget-alert-info .widget-alert-message{color:#1677ff}.widget-alert-warning{background-color:#fffbe6;border-color:#ffe58f}.widget-alert-warning .widget-alert-icon{color:#fff;background-color:#faad14}.widget-alert-warning .widget-alert-message{color:#d48806}.widget-alert-error{background-color:#fff2f0;border-color:#ffccc7}.widget-alert-error .widget-alert-icon{color:#fff;background-color:#ff4d4f}.widget-alert-error .widget-alert-message{color:#ff4d4f}.widget-form>button[type=button]:last-child{align-self:flex-start;margin-top:.5rem;padding:.75rem 1.5rem;background-color:#1677ff;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.widget-form-actions{display:flex;gap:.5rem;margin-top:.5rem}.widget-form-actions[data-align=left]{justify-content:flex-start}.widget-form-actions[data-align=center]{justify-content:center}.widget-form-actions[data-align=right]{justify-content:flex-end}.widget-form-actions button[type=button]{padding:.75rem 1.5rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.widget-form-actions .widget-form-submit{border:none;background-color:#1677ff;color:#fff}.widget-form-actions .widget-form-submit:hover{background-color:#4096ff}.widget-form-actions .widget-form-cancel,.widget-form-actions .widget-form-reset{background-color:#fff;color:#000000e0;border:1px solid #d9d9d9}.widget-form-actions .widget-form-cancel:hover,.widget-form-actions .widget-form-reset:hover{background-color:#fafafa;border-color:#00000073}.widget-form-actions button[type=button]:focus{outline:none;box-shadow:0 0 0 2px #1677ff}.widget-button{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:filter .2s ease}.widget-button:hover{filter:brightness(.9)}.widget-button:focus{outline:none;box-shadow:0 0 0 2px #1677ff}.widget-button.size-small{padding:.25rem .75rem;font-size:.75rem}.widget-button.size-medium{padding:.5rem 1.25rem;font-size:.875rem}.widget-button.size-large{padding:.75rem 1.75rem;font-size:1rem}.widget-button-group{display:flex;flex-direction:column;gap:.5rem}.widget-button-group label{font-weight:500;color:#000000e0;margin-bottom:.25rem}.widget-button-group div[role=group]{display:flex;gap:.25rem;flex-wrap:wrap}.widget-form .widget-button-group button,.widget-button-group button{padding:.5rem 1rem;border:1px solid #d9d9d9;background-color:#fff;color:#000000e0;border-radius:6px;cursor:pointer;transition:all .2s ease;font-size:.875rem;font-weight:500}.widget-form .widget-button-group button:hover,.widget-button-group button:hover{background-color:#fafafa;border-color:#00000073}.widget-form .widget-button-group button[aria-pressed=true],.widget-button-group button[aria-pressed=true]{background-color:#1677ff;color:#fff;border-color:#1677ff}.widget-form .widget-button-group button:focus,.widget-button-group button:focus{outline:none;box-shadow:0 0 0 2px #0591ff1a}.widget-text-input{display:flex;flex-direction:column;gap:.5rem}.widget-text-input>.widget-field-content,.selector>.widget-field-content,.selector-multi>.widget-field-content,.widget-cascader>.widget-field-content,.widget-slider>.widget-field-content{width:100%;max-width:100%}.widget-text-input input[type=text],.selector select{width:100%;max-width:100%;box-sizing:border-box}.widget-field-content>.checkbox-group,.widget-field-content>.radio-group,.widget-field-content>.slider-container{width:100%;max-width:100%}.widget-label-row{display:flex;align-items:center;gap:.375rem}.widget-form-layout-horizontal .widget-form-field>.widget-text-input,.widget-form-layout-horizontal .widget-form-field>.selector,.widget-form-layout-horizontal .widget-form-field>.selector-multi,.widget-form-layout-horizontal .widget-form-field>.widget-cascader,.widget-form-layout-horizontal .widget-form-field>.widget-slider,.widget-form-layout-horizontal .widget-form-field>.widget-switch{display:flex;flex-direction:row;align-items:flex-start;gap:.75rem}.widget-form-layout-horizontal .widget-label-row{flex:0 0 var(--form-label-width, 80px);width:var(--form-label-width, 80px);justify-content:flex-end;text-align:right}.widget-form-layout-horizontal .widget-label-row>label,.widget-form-layout-horizontal .widget-label-row>.selector-multi-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.widget-form-layout-horizontal .widget-required-mark{order:-1}.widget-form-layout-horizontal .widget-text-input>.widget-field-content,.widget-form-layout-horizontal .selector>.widget-field-content,.widget-form-layout-horizontal .selector-multi>.widget-field-content,.widget-form-layout-horizontal .widget-cascader>.widget-field-content,.widget-form-layout-horizontal .widget-slider>.widget-field-content,.widget-form-layout-horizontal .widget-switch>.widget-field-content{flex:1 1 auto;width:var(--form-content-width, auto);max-width:100%;min-width:0;display:flex;flex-direction:column;gap:.375rem}.widget-form-layout-horizontal .widget-field-content>input,.widget-form-layout-horizontal .widget-field-content>select,.widget-form-layout-horizontal .widget-field-content>.slider-container,.widget-form-layout-horizontal .widget-field-content>.checkbox-group,.widget-form-layout-horizontal .widget-field-content>.radio-group{width:100%;max-width:100%}.widget-form-layout-horizontal[style*=--form-content-width] .widget-text-input>.widget-field-content,.widget-form-layout-horizontal[style*=--form-content-width] .selector>.widget-field-content,.widget-form-layout-horizontal[style*=--form-content-width] .selector-multi>.widget-field-content,.widget-form-layout-horizontal[style*=--form-content-width] .widget-cascader>.widget-field-content,.widget-form-layout-horizontal[style*=--form-content-width] .widget-slider>.widget-field-content,.widget-form-layout-horizontal[style*=--form-content-width] .widget-switch>.widget-field-content{flex:0 1 var(--form-content-width)}.widget-form-layout-horizontal .widget-form-field>.widget-text-input:not(:has(.widget-label-row))>.widget-field-content,.widget-form-layout-horizontal .widget-form-field>.selector:not(:has(.widget-label-row))>.widget-field-content,.widget-form-layout-horizontal .widget-form-field>.selector-multi:not(:has(.widget-label-row))>.widget-field-content,.widget-form-layout-horizontal .widget-form-field>.widget-cascader:not(:has(.widget-label-row))>.widget-field-content,.widget-form-layout-horizontal .widget-form-field>.widget-slider:not(:has(.widget-label-row))>.widget-field-content,.widget-form-layout-horizontal .widget-form-field>.widget-switch:not(:has(.widget-label-row))>.widget-field-content{margin-left:calc(var(--form-label-width, 80px) + .75rem)}.widget-form-layout-horizontal.widget-form-inline .widget-form-field{display:flex;align-items:flex-start}.widget-hint{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;font-size:.75rem;font-weight:600;font-style:normal;line-height:1;color:#000000a6;border:1px solid #d9d9d9;border-radius:50%;background-color:#fafafa;cursor:help;flex-shrink:0;-webkit-user-select:none;user-select:none}.widget-hint:hover{color:#4096ff;border-color:#4096ff;background-color:#e6f4ff}.widget-hint:before{content:attr(data-hint);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);padding:.5rem .75rem;min-width:8rem;max-width:18rem;width:max-content;white-space:normal;font-size:.75rem;font-weight:400;color:#fafafa;background-color:#000000e0;border-radius:6px;box-shadow:0 4px 12px #00000026;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease,transform .15s ease;z-index:100}.widget-hint:after{content:"";position:absolute;bottom:calc(100% + 3px);left:50%;transform:translate(-50%) translateY(4px);border:5px solid transparent;border-top-color:#000000e0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease,transform .15s ease;z-index:100}.widget-hint:hover:before,.widget-hint:hover:after,.widget-hint:focus-visible:before,.widget-hint:focus-visible:after{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.widget-required-mark{color:#ff4d4f;font-weight:600;line-height:1;flex-shrink:0;-webkit-user-select:none;user-select:none}.widget-error-text{font-size:.75rem;color:#ff4d4f;line-height:1.4;margin-top:-.25rem}.widget-text-input input.widget-input-error{border-color:#ff4d4f}.widget-text-input input.widget-input-error:focus{border-color:#ff4d4f;box-shadow:0 0 0 3px #ff4d4f1a}.widget-field-error .checkbox-group,.widget-field-error .radio-group{border-color:#ff4d4f}.widget-text-input label{font-weight:500;color:#000000e0}.widget-text-input input[type=text]{padding:.75rem;border:1px solid #d9d9d9;border-radius:6px;font-size:.875rem;background-color:#fff;transition:border-color .2s ease,box-shadow .2s ease}.widget-text-input input[type=text]:focus{outline:none;border-color:#1677ff;box-shadow:0 0 0 3px #0591ff1a}.widget-text-input input[type=text]::placeholder{color:#00000073}.widget-number-input{display:flex;flex-direction:column;gap:.5rem}.widget-number-input>.widget-field-content{width:100%;max-width:100%}.ni-wrap{position:relative;display:flex;width:100%;max-width:100%;box-sizing:border-box}.ni-wrap input{width:100%;min-width:0;box-sizing:border-box;padding:.6875rem 2rem .6875rem .75rem;border:1px solid #d9d9d9;border-radius:6px;font-size:.875rem;background-color:#fff;transition:border-color .2s ease,box-shadow .2s ease}.ni-wrap input:focus{outline:none;border-color:#1677ff;box-shadow:0 0 0 3px #0591ff1a}.ni-wrap input::placeholder{color:#00000073}.ni-wrap input.widget-input-error{border-color:#ff4d4f}.ni-wrap input.widget-input-error:focus{border-color:#ff4d4f;box-shadow:0 0 0 3px #ff4d4f1a}.ni-wrap:focus-within .ni-steps{border-color:#1677ff}.ni-steps{position:absolute;top:1px;right:1px;bottom:1px;display:flex;flex-direction:column;width:1.375rem;border-left:1px solid #d9d9d9;border-radius:0 5px 5px 0;background-color:#fafafa;overflow:hidden}.ni-steps button{flex:1;display:flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:#000000a6;cursor:pointer;min-height:0}.ni-step-down{border-top:1px solid #d9d9d9}.ni-steps button:hover:not(:disabled){color:#4096ff;background-color:#e6f4ff}.widget-form-layout-horizontal .widget-form-field>.widget-number-input{display:flex;flex-direction:row;align-items:flex-start;gap:.75rem}.widget-form-layout-horizontal .widget-number-input>.widget-field-content{flex:1 1 auto;width:var(--form-content-width, auto);max-width:100%;min-width:0;display:flex;flex-direction:column;gap:.375rem}.widget-form-layout-horizontal[style*=--form-content-width] .widget-number-input>.widget-field-content{flex:0 1 var(--form-content-width)}.widget-form-layout-horizontal .widget-form-field>.widget-number-input:not(:has(.widget-label-row))>.widget-field-content{margin-left:calc(var(--form-label-width, 80px) + .75rem)}.selector,.selector-multi{display:flex;flex-direction:column;gap:.5rem}.selector label,.selector-multi-label{font-weight:500;color:#000000e0}.selector select{padding:.75rem;border:1px solid #d9d9d9;border-radius:6px;font-size:.875rem;background-color:#fff;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.selector select:focus{outline:none;border-color:#1677ff;box-shadow:0 0 0 3px #0591ff1a}.selector option{padding:.5rem}.checkbox-group{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;border:1px solid #d9d9d9;border-radius:6px;background-color:#fff;max-height:200px;overflow-y:auto}.checkbox-group[data-direction=horizontal]{flex-direction:row;flex-wrap:wrap;gap:.5rem 1.5rem}.checkbox-group[data-direction=grid]{display:grid;gap:.5rem}.radio-group{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;border:1px solid #d9d9d9;border-radius:6px;background-color:#fff;width:100%;max-width:100%;box-sizing:border-box}.radio-group[data-direction=horizontal]{flex-direction:row;flex-wrap:wrap;gap:.5rem 1.5rem}.radio-group[data-direction=grid]{display:grid;gap:.5rem}.radio-item{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.25rem 0;font-weight:400}.radio-item input[type=radio]{margin:0;cursor:pointer;accent-color:#1677ff}.radio-item span{font-size:.875rem;color:#000000e0}.radio-item:hover{background-color:#fafafa;border-radius:4px;margin:-.25rem 0;padding:.5rem .25rem}.radio-button-group{display:flex;gap:.25rem;flex-wrap:wrap}.radio-button-group[data-direction=vertical]{flex-direction:column;flex-wrap:nowrap}.radio-button-group[data-direction=grid]{display:grid;gap:.5rem}.checkbox-item{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.25rem 0;font-weight:400}.checkbox-item input[type=checkbox]{margin:0;cursor:pointer}.checkbox-item span{font-size:.875rem;color:#000000e0}.checkbox-item:hover{background-color:#fafafa;border-radius:4px;margin:-.25rem 0;padding:.5rem .25rem}.widget-slider{display:flex;flex-direction:column;gap:.5rem}.widget-slider label{font-weight:500;color:#000000e0}.slider-container{display:flex;flex-direction:column;gap:.25rem}.slider-values{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:#000000a6;margin-bottom:.25rem}.current-value{font-weight:600;color:#1677ff;background:#e6f4ff;padding:.25rem .5rem;border-radius:4px;min-width:2rem;text-align:center}.min-value,.max-value{font-weight:500}.widget-slider input[type=range]{width:100%;height:6px;border-radius:3px;background:#f0f0f0;outline:none;cursor:pointer}.widget-slider input[type=range]::-webkit-slider-thumb{appearance:none;width:20px;height:20px;border-radius:50%;background:#1677ff;cursor:pointer;transition:background-color .2s ease}.widget-slider input[type=range]::-webkit-slider-thumb:hover{background:#4096ff}.widget-slider input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#1677ff;cursor:pointer;border:none;transition:background-color .2s ease}.widget-slider input[type=range]::-moz-range-thumb:hover{background:#4096ff}.widget-switch{display:flex;flex-direction:column;gap:.5rem}.widget-switch label{font-weight:500;color:#000000e0}.switch-track{position:relative;display:inline-flex;align-items:center;box-sizing:content-box;width:44px;height:22px;padding:0;border:none;border-radius:11px;background-color:#00000040;cursor:pointer;transition:background-color .2s ease;flex-shrink:0}.switch-track[data-checked=true]{background-color:#1677ff}.switch-track:hover:not(:disabled){background-color:#00000073}.switch-track[data-checked=true]:hover:not(:disabled){background-color:#4096ff}.switch-track .switch-thumb{display:block;width:18px;height:18px;margin:2px;border-radius:50%;background-color:#fff;box-shadow:0 2px 4px #0003;transition:transform .2s ease}.switch-track[data-checked=true] .switch-thumb{transform:translate(22px)}.switch-track .switch-text{position:absolute;top:50%;transform:translateY(-50%);font-size:.75rem;font-weight:500;color:#fff;line-height:1;-webkit-user-select:none;user-select:none}.switch-track .switch-text-unchecked{right:6px}.switch-track .switch-text-checked{left:6px}.switch-track[data-checked=true] .switch-text-unchecked,.switch-track[data-checked=false] .switch-text-checked{display:none}.switch-track:disabled{cursor:not-allowed;opacity:.5}.switch-track:focus-visible{outline:none;box-shadow:0 0 0 2px #1677ff}.widget-form>button[type=button]:last-child:hover{background-color:#4096ff}.widget-form>button[type=button]:last-child:focus{outline:none;box-shadow:0 0 0 2px #0591ff1a}.widget span[style*="color:red"]{color:#ff4d4f!important;font-weight:500;padding:.75rem;background-color:#fff2f0;border:1px solid #ffccc7;border-radius:6px;display:inline-block}.widget-mcq{display:flex;flex-direction:column;gap:1rem;padding:1.5rem;border:1px solid #f0f0f0;border-radius:8px;background-color:#fff}.mcq-question{font-weight:600;font-size:1.1rem;color:#000000e0;margin-bottom:.5rem}.mcq-choices{display:flex;flex-direction:column;gap:.75rem}.mcq-choice{padding:1rem;border:2px solid #d9d9d9;border-radius:8px;background-color:#fff;text-align:left;cursor:pointer;transition:all .2s ease;font-size:.9rem}.mcq-choice:hover:not(:disabled){border-color:#00000073;background-color:#fafafa}.mcq-choice-selected{border-color:#1677ff;background-color:#e6f4ff}.mcq-choice-correct{border-color:#52c41a;background-color:#f6ffed;color:#389e0d}.mcq-choice-incorrect{border-color:#ff4d4f;background-color:#fff2f0;color:#cf1322}.mcq-choice:disabled{cursor:not-allowed;opacity:.8}.mcq-feedback{padding:.75rem;border-radius:6px;font-weight:500;font-size:.9rem}.mcq-feedback.correct{background-color:#f6ffed;color:#389e0d;border:1px solid #b7eb8f}.mcq-feedback.incorrect{background-color:#fff2f0;color:#cf1322;border:1px solid #ffccc7}.widget-saq{display:flex;flex-direction:column;gap:1rem;padding:1.5rem;border:1px solid #f0f0f0;border-radius:8px;background-color:#fff}.saq-question{font-weight:600;font-size:1.1rem;color:#000000e0;margin-bottom:.5rem}.saq-input-container{display:flex;gap:.75rem;align-items:stretch}.saq-input{flex:1;padding:.75rem;border:2px solid #d9d9d9;border-radius:6px;font-size:.9rem;background-color:#fff;transition:border-color .2s ease,box-shadow .2s ease}.saq-input:focus{outline:none;border-color:#1677ff;box-shadow:0 0 0 3px #0591ff1a}.saq-input-correct{border-color:#52c41a;background-color:#f6ffed}.saq-input-incorrect{border-color:#ff4d4f;background-color:#fff2f0}.saq-submit{padding:.75rem 1.25rem;background-color:#1677ff;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s ease;white-space:nowrap}.saq-submit:hover:not(:disabled){background-color:#4096ff}.saq-submit:disabled{background-color:#f5f5f5;color:#00000040;cursor:not-allowed}.saq-feedback{padding:.75rem;border-radius:6px;font-weight:500;font-size:.9rem}.saq-feedback.correct{background-color:#f6ffed;color:#389e0d;border:1px solid #b7eb8f}.saq-feedback.incorrect{background-color:#fff2f0;color:#cf1322;border:1px solid #ffccc7}.widget-quiz{max-width:800px;margin:0 auto;background:#fff;border:1px solid #f0f0f0;border-radius:12px;box-shadow:0 2px 8px #0000001a}.quiz-header{padding:2rem 2rem 1rem;border-bottom:1px solid #f0f0f0;background:linear-gradient(135deg,#1677ff,#0958d9);color:#fff;border-radius:12px 12px 0 0}.quiz-title{font-size:1.5rem;font-weight:700;margin:0 0 1rem;text-align:center;color:#fff}.quiz-stats{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;color:#fff}.quiz-progress{flex:1;min-width:200px}.quiz-progress-text{font-size:.9rem;font-weight:500;margin-bottom:.5rem;display:block;color:#fff}.quiz-progress-bar{width:100%;height:8px;background:#fff3;border-radius:4px;overflow:hidden}.quiz-progress-fill{height:100%;background:linear-gradient(90deg,#52c41a,#73d13d);border-radius:4px;transition:width .3s ease}.quiz-score{text-align:right}.quiz-score-text{font-size:1.1rem;font-weight:600;color:#fff}.quiz-questions{padding:1.5rem}.quiz-question{margin-bottom:2rem;padding:1.5rem;border:2px solid #f0f0f0;border-radius:8px;background:#fafafa;transition:all .2s ease}.quiz-question:hover{border-color:#f0f0f0;box-shadow:0 2px 4px #0000000d}.quiz-question-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:1rem}.quiz-question-text{font-size:1.1rem;font-weight:600;color:#000000e0;margin:0;flex:1}.quiz-question-points{background:#1677ff;color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:600;white-space:nowrap}.quiz-choices{display:flex;flex-direction:column;gap:.75rem}.quiz-choice{padding:.75rem 1rem;border:2px solid #d9d9d9;border-radius:6px;background:#fff;text-align:left;cursor:pointer;transition:all .2s ease;font-size:.95rem}.quiz-choice:hover:not(:disabled){border-color:#00000073;background-color:#fafafa}.quiz-choice-selected{border-color:#1677ff;background-color:#e6f4ff}.quiz-choice-correct{border-color:#52c41a;background-color:#f6ffed;color:#389e0d}.quiz-choice-incorrect{border-color:#ff4d4f;background-color:#fff2f0;color:#cf1322}.quiz-choice:disabled{cursor:not-allowed;opacity:.9}.quiz-input-container{display:flex;gap:.75rem;align-items:stretch}.quiz-input{flex:1;padding:.75rem 1rem;border:2px solid #d9d9d9;border-radius:6px;font-size:.95rem;background:#fff;transition:border-color .2s ease,box-shadow .2s ease}.quiz-input:focus{outline:none;border-color:#1677ff;box-shadow:0 0 0 3px #0591ff1a}.quiz-input-correct{border-color:#52c41a;background-color:#f6ffed}.quiz-input-incorrect{border-color:#ff4d4f;background-color:#fff2f0}.quiz-submit{padding:.75rem 1.5rem;background:#1677ff;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:background-color .2s ease;white-space:nowrap}.quiz-submit:hover:not(:disabled){background-color:#4096ff}.quiz-submit:disabled{background-color:#f5f5f5;color:#00000040;cursor:not-allowed}.quiz-feedback{margin-top:1rem;padding:1rem;border-radius:6px;font-weight:600;font-size:.95rem}.quiz-feedback.correct{background:#f6ffed;color:#389e0d;border:1px solid #b7eb8f}.quiz-feedback.incorrect{background:#fff2f0;color:#cf1322;border:1px solid #ffccc7}.quiz-summary{margin-top:2rem;padding:2rem;background:linear-gradient(135deg,#fafafa,#f0f0f0);border-radius:8px;text-align:center;border:2px solid #f0f0f0}.quiz-summary h3{font-size:1.5rem;font-weight:700;color:#000000e0;margin:0 0 1rem}.quiz-final-score{font-size:1.2rem;font-weight:600;color:#000000e0;margin-bottom:1rem}.quiz-result{font-size:1.1rem;font-weight:700;padding:.75rem 1.5rem;border-radius:6px;display:inline-block}.quiz-result.passed{background:#f6ffed;color:#389e0d;border:1px solid #b7eb8f}.quiz-result.failed{background:#fff2f0;color:#cf1322;border:1px solid #ffccc7}@media (max-width: 640px){.widget-button-group div[role=group]{flex-direction:column}.widget-button-group button{width:100%}.widget-form{padding:1rem}.saq-input-container{flex-direction:column}.widget-mcq,.widget-saq,.widget-quiz{padding:1rem}}.widget-button:disabled{background-color:#f5f5f5!important;color:#00000040!important;cursor:not-allowed;filter:none}.widget-button:disabled:hover{filter:none}.widget-form .widget-button-group button:disabled,.widget-button-group button:disabled{background-color:#f5f5f5;color:#00000040;border-color:#d9d9d9;cursor:not-allowed;opacity:1}.widget-form .widget-button-group button[aria-pressed=true]:disabled,.widget-button-group button[aria-pressed=true]:disabled{background-color:#91caff;border-color:#91caff;color:#fffc;cursor:not-allowed}.widget-text-input input[type=text]:disabled{background-color:#f5f5f5;color:#00000040;border-color:#d9d9d9;cursor:not-allowed}.ni-wrap input:disabled{background-color:#f5f5f5;color:#00000040;border-color:#d9d9d9;cursor:not-allowed}.widget-slider input[type=range]:disabled{background:#f0f0f0;cursor:not-allowed}.widget-slider input[type=range]:disabled::-webkit-slider-thumb{background:#d9d9d9;cursor:not-allowed}.widget-slider input[type=range]:disabled::-moz-range-thumb{background:#d9d9d9;cursor:not-allowed}.widget-slider input[type=range]:disabled::-webkit-slider-thumb:hover{background:#d9d9d9}.widget-slider input[type=range]:disabled::-moz-range-thumb:hover{background:#d9d9d9}.widget-slider:has(input:disabled) .current-value{color:#00000040;background:#f5f5f5}.selector select:disabled{background-color:#f5f5f5;color:#00000040;border-color:#d9d9d9;cursor:not-allowed}.checkbox-group:has(input:disabled){background-color:#f5f5f5;border-color:#d9d9d9}.checkbox-group:has(input:disabled) .checkbox-item{cursor:not-allowed}.checkbox-group:has(input:disabled) .checkbox-item:hover{background-color:transparent}.checkbox-group:has(input:disabled) .checkbox-item span{color:#00000040}.radio-group:has(input:disabled){background-color:#f5f5f5;border-color:#d9d9d9}.radio-group:has(input:disabled) .radio-item{cursor:not-allowed}.radio-group:has(input:disabled) .radio-item:hover{background-color:transparent}.radio-group:has(input:disabled) .radio-item span{color:#00000040}.widget-form-actions button[type=button]:disabled{background-color:#f5f5f5;color:#00000040;border-color:#d9d9d9;cursor:not-allowed;box-shadow:none}.widget-form-actions .widget-form-submit:disabled{background-color:#91caff;color:#fffc}.widget-form-actions button[type=button]:disabled:hover{background-color:#f5f5f5;border-color:#d9d9d9}.widget-form-actions .widget-form-submit:disabled:hover{background-color:#91caff}.widget-form>button[type=button]:last-child:disabled{background-color:#91caff;color:#fffc;cursor:not-allowed}.widget-form>button[type=button]:last-child:disabled:hover{background-color:#91caff}.mcq-choice:disabled{cursor:not-allowed;opacity:1}.mcq-choice:disabled:not(.mcq-choice-correct):not(.mcq-choice-incorrect):not(.mcq-choice-selected){background-color:#f5f5f5;color:#00000040;border-color:#d9d9d9}.mcq-choice:disabled.mcq-choice-correct,.mcq-choice:disabled.mcq-choice-incorrect{opacity:1}.saq-input:disabled{background-color:#f5f5f5;color:#00000040;border-color:#d9d9d9;cursor:not-allowed}.quiz-choice:disabled{cursor:not-allowed;opacity:1}.quiz-choice:disabled:not(.quiz-choice-correct):not(.quiz-choice-incorrect):not(.quiz-choice-selected){background-color:#f5f5f5;color:#00000040;border-color:#d9d9d9}.quiz-input:disabled{background-color:#f5f5f5;color:#00000040;border-color:#d9d9d9;cursor:not-allowed}.dp-input:disabled{background-color:#f5f5f5;color:#00000040;border-color:#d9d9d9;cursor:not-allowed}.dp-input:disabled:hover{border-color:#d9d9d9}.mcq-choice:disabled{opacity:1}.quiz-choice:disabled{opacity:1}.ni-steps button:disabled{color:#d9d9d9;cursor:not-allowed}.widget-cascader[data-v-9fed9363]{position:relative}.cas-input[data-v-9fed9363]{display:flex;align-items:center;gap:.375rem;width:100%;padding:.625rem .75rem;border:1px solid #d9d9d9;border-radius:6px;font-size:.875rem;background-color:#fff;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;text-align:left}.cas-input[data-v-9fed9363]:hover{border-color:#4096ff}.cas-input[data-v-9fed9363]:focus{outline:none;border-color:#1677ff;box-shadow:0 0 0 2px #0591ff1a}.cas-input[data-v-9fed9363]:disabled{background-color:#f5f5f5;color:#00000040;border-color:#d9d9d9;cursor:not-allowed}.cas-input[data-v-9fed9363]:disabled:hover{border-color:#d9d9d9}.cas-input-text[data-v-9fed9363]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;min-width:0}.cas-placeholder[data-v-9fed9363]{color:#00000073}.cas-arrow[data-v-9fed9363]{color:#00000073;font-size:.75rem;transition:transform .2s ease}.cas-arrow-open[data-v-9fed9363]{transform:rotate(180deg)}.cas-clear[data-v-9fed9363]{padding:0 .25rem;color:#00000073;font-size:1rem;line-height:1}.cas-clear[data-v-9fed9363]:hover{color:#000000e0}.cas-panel[data-v-9fed9363]{position:absolute;z-index:50;top:calc(100% + 4px);left:0;display:flex;background:#fff;border:1px solid #d9d9d9;border-radius:8px;box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.cas-menu[data-v-9fed9363]{width:160px;max-height:240px;overflow-y:auto;padding:.375rem}.cas-menu+.cas-menu[data-v-9fed9363]{border-left:1px solid #f0f0f0}.cas-option[data-v-9fed9363]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.375rem .5rem;border:none;border-radius:4px;background:transparent;font-size:.875rem;color:#000000e0;cursor:pointer;text-align:left;transition:background .15s ease}.cas-option[data-v-9fed9363]:hover{background:#f5f5f5}.cas-option-active[data-v-9fed9363]{background:#e6f4ff;color:#1677ff;font-weight:500}.cas-option-active[data-v-9fed9363]:hover{background:#bae0ff}.cas-option-label[data-v-9fed9363]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cas-option-arrow[data-v-9fed9363]{color:#00000073;font-size:.875rem;flex:0 0 auto}.cas-empty[data-v-9fed9363]{padding:.75rem .5rem;font-size:.8125rem;color:#00000073;text-align:center}.widget-chart[data-v-2c33e8c9]{position:relative;width:100%}canvas[data-v-2c33e8c9]{max-width:100%;height:100%}.chart-empty[data-v-2c33e8c9]{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;color:#00000073;font-size:13px;background:#fff}.chart-loading[data-v-2c33e8c9]{position:absolute;top:8px;right:8px;z-index:1;padding:2px 8px;border-radius:4px;background:#0000000d;font-size:12px}.widget-date-picker[data-v-97efc0bb]{position:relative}.dp-input[data-v-97efc0bb]{display:flex;align-items:center;gap:.375rem;width:100%;padding:.625rem .75rem;border:1px solid #d9d9d9;border-radius:6px;font-size:.875rem;background-color:#fff;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;text-align:left}.dp-input[data-v-97efc0bb]:hover{border-color:#4096ff}.dp-input[data-v-97efc0bb]:focus-within,.dp-input[data-v-97efc0bb]:focus{outline:none;border-color:#1677ff;box-shadow:0 0 0 2px #0591ff1a}.dp-input[data-v-97efc0bb]:disabled{background-color:#f5f5f5;color:#00000040;border-color:#d9d9d9;cursor:not-allowed}.dp-input[data-v-97efc0bb]:disabled:hover{border-color:#d9d9d9}.dp-input-icon[data-v-97efc0bb]{font-size:.875rem}.dp-input-text[data-v-97efc0bb]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dp-seg[data-v-97efc0bb]{flex:1 1 0;min-width:0}.dp-sep[data-v-97efc0bb]{color:#00000073;font-size:.75rem}.dp-placeholder[data-v-97efc0bb]{color:#00000073}.dp-clear[data-v-97efc0bb]{padding:0 .25rem;color:#00000073;font-size:1rem;line-height:1}.dp-clear[data-v-97efc0bb]:hover{color:#000000e0}.dp-panel[data-v-97efc0bb]{position:absolute;z-index:50;top:calc(100% + 4px);left:0;width:288px;padding:.75rem;background:#fff;border:1px solid #d9d9d9;border-radius:8px;box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.dp-panel.dp-range[data-v-97efc0bb]{width:auto}.dp-panels[data-v-97efc0bb]{display:flex;gap:.75rem}.dp-calendar[data-v-97efc0bb]{width:264px}.dp-header[data-v-97efc0bb]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.dp-title[data-v-97efc0bb]{font-weight:600;font-size:.875rem;color:#000000e0}.dp-title-year[data-v-97efc0bb]{font-weight:400;color:#00000073;margin-right:.25rem}.dp-header-nav[data-v-97efc0bb]{display:flex;align-items:center;gap:.125rem;min-width:3.25rem}.dp-header-nav[data-v-97efc0bb]:last-child{justify-content:flex-end}.dp-nav[data-v-97efc0bb]{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:#000000a6;font-size:1.1rem;cursor:pointer;border-radius:4px}.dp-nav[data-v-97efc0bb]:hover{background:#f5f5f5;color:#000000e0}.dp-week-header[data-v-97efc0bb]{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:.25rem}.dp-week[data-v-97efc0bb]{text-align:center;font-size:.75rem;color:#00000073;padding:.25rem 0}.dp-grid[data-v-97efc0bb]{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dp-cell[data-v-97efc0bb]{position:relative;height:2rem;border:none;background:transparent;border-radius:4px;font-size:.8125rem;color:#000000e0;cursor:pointer;transition:background .15s ease}.dp-cell[data-v-97efc0bb]:hover:not(.dp-cell-disabled){background:#f5f5f5}.dp-cell-out[data-v-97efc0bb]{color:#00000040}.dp-cell-disabled[data-v-97efc0bb]{color:#00000040;cursor:not-allowed}.dp-cell-today[data-v-97efc0bb]{color:#1677ff;font-weight:600}.dp-cell-selected[data-v-97efc0bb],.dp-cell-range-start[data-v-97efc0bb],.dp-cell-range-end[data-v-97efc0bb]{background:#1677ff;color:#fff;font-weight:600}.dp-cell-range-start[data-v-97efc0bb]{border-radius:4px 0 0 4px}.dp-cell-range-end[data-v-97efc0bb]{border-radius:0 4px 4px 0}.dp-cell-range-start.dp-cell-range-end[data-v-97efc0bb]{border-radius:4px}.dp-cell-in-range[data-v-97efc0bb]{background:#e6f4ff;color:#1677ff}.dp-cell-in-range[data-v-97efc0bb]:hover{background:#bae0ff}.dp-time[data-v-97efc0bb]{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #f0f0f0}.dp-time-groups[data-v-97efc0bb]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.dp-time-group[data-v-97efc0bb]{display:flex;align-items:center;gap:.25rem}.dp-time-label[data-v-97efc0bb]{font-size:.75rem;color:#000000a6}.dp-time-arrow[data-v-97efc0bb]{color:#00000073;font-size:.75rem}.dp-time-input[data-v-97efc0bb]{width:2.75rem;padding:.25rem;text-align:center;border:1px solid #d9d9d9;border-radius:4px;font-size:.8125rem}.dp-time-input[data-v-97efc0bb]:focus{outline:none;border-color:#1677ff;box-shadow:0 0 0 2px #0591ff1a}.dp-time-sep[data-v-97efc0bb]{color:#000000a6}.dp-footer[data-v-97efc0bb]{display:flex;justify-content:flex-end;margin-top:.5rem}.dp-ok[data-v-97efc0bb]{margin-left:auto;padding:.3rem .75rem;background:#1677ff;color:#fff;border:none;border-radius:4px;font-size:.8125rem;cursor:pointer}.dp-ok[data-v-97efc0bb]:hover:not(:disabled){background:#4096ff}.dp-ok[data-v-97efc0bb]:disabled{background:#91caff;cursor:not-allowed}.widget-select-content[data-v-8fbaaa98]{position:relative;display:flex;flex-direction:column}.cas-input[data-v-8fbaaa98]{display:flex;align-items:center;gap:.375rem;width:100%;padding:.625rem .75rem;border:1px solid #d9d9d9;border-radius:6px;font-size:.875rem;background-color:#fff;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;text-align:left}.cas-input[data-v-8fbaaa98]:hover{border-color:#4096ff}.cas-input[data-v-8fbaaa98]:focus{outline:none;border-color:#1677ff;box-shadow:0 0 0 2px #0591ff1a}.cas-input[data-v-8fbaaa98]:disabled{background-color:#f5f5f5;color:#00000040;border-color:#d9d9d9;cursor:not-allowed}.cas-input[data-v-8fbaaa98]:disabled:hover{border-color:#d9d9d9}.cas-input-text[data-v-8fbaaa98]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;min-width:0}.cas-placeholder[data-v-8fbaaa98]{color:#00000073}.cas-arrow[data-v-8fbaaa98]{color:#00000073;font-size:.75rem;transition:transform .2s ease}.cas-arrow-open[data-v-8fbaaa98]{transform:rotate(180deg)}.cas-panel[data-v-8fbaaa98]{position:absolute;z-index:50;top:calc(100% + 4px);left:0;display:flex;background:#fff;border:1px solid #d9d9d9;border-radius:8px;box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.cas-panel-single[data-v-8fbaaa98]{flex-direction:column;min-width:100%;width:auto}.cas-search[data-v-8fbaaa98]{padding:.5rem;border-bottom:1px solid #f0f0f0}.cas-search-input[data-v-8fbaaa98]{width:100%;padding:.375rem .625rem;border:1px solid #d9d9d9;border-radius:4px;font-size:.8125rem;box-sizing:border-box}.cas-search-input[data-v-8fbaaa98]:focus{outline:none;border-color:#1677ff;box-shadow:0 0 0 2px #0591ff1a}.cas-menu[data-v-8fbaaa98]{max-height:240px;overflow-y:auto;padding:.375rem}.cas-menu-full[data-v-8fbaaa98]{width:100%;flex:1 1 auto;min-width:0}.cas-option[data-v-8fbaaa98]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.375rem .5rem;border:none;border-radius:4px;background:transparent;font-size:.875rem;color:#000000e0;cursor:pointer;text-align:left;transition:background .15s ease}.cas-option[data-v-8fbaaa98]:hover{background:#f5f5f5}.cas-option-active[data-v-8fbaaa98]{background:#e6f4ff;color:#1677ff;font-weight:500}.cas-option-active[data-v-8fbaaa98]:hover{background:#bae0ff}.cas-option-label[data-v-8fbaaa98]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cas-empty[data-v-8fbaaa98]{padding:.75rem .5rem;font-size:.8125rem;color:#00000073;text-align:center}.widget-tree-select[data-v-09f21e85]{position:relative}.ts-input[data-v-09f21e85]{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:.375rem;width:100%;min-height:42px;padding:.5rem .75rem;border:1px solid #d9d9d9;border-radius:6px;font-size:.875rem;background-color:#fff;cursor:pointer;transition:border-color .2s,box-shadow .2s;text-align:left}.ts-input[data-v-09f21e85]:hover{border-color:#4096ff}.ts-input[data-v-09f21e85]:focus{outline:none;border-color:#1677ff;box-shadow:0 0 0 2px #0591ff1a}.ts-input[data-v-09f21e85]:disabled{background-color:#f5f5f5;color:#00000040;cursor:not-allowed}.ts-input-text[data-v-09f21e85]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ts-placeholder[data-v-09f21e85]{color:#00000073}.ts-arrow[data-v-09f21e85]{color:#00000073;font-size:.75rem;transition:transform .2s;margin-left:auto}.ts-arrow-open[data-v-09f21e85]{transform:rotate(180deg)}.ts-clear[data-v-09f21e85]{padding:0 .25rem;color:#00000073;font-size:1rem;line-height:1;margin-left:auto}.ts-clear[data-v-09f21e85]:hover{color:#000000e0}.ts-input[data-full][data-v-09f21e85]:not([data-full=""]):after{content:attr(data-full);position:absolute;top:calc(100% + 8px);left:0;padding:.5rem .75rem;max-width:18rem;width:max-content;white-space:normal;word-break:break-all;font-size:.75rem;font-weight:400;text-align:left;color:#fafafa;background-color:#000000e0;border-radius:6px;box-shadow:0 4px 12px #00000026;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease;z-index:100}.ts-input[data-full][data-v-09f21e85]:not([data-full=""]):not([aria-expanded=true]):hover:after{opacity:1;visibility:visible}.ts-tag[data-v-09f21e85]{display:inline-flex;align-items:center;padding:1px 8px;background:#f0f0f0;border-radius:4px;font-size:.8125rem;color:#000000e0}.ts-tag-more[data-v-09f21e85]{color:#00000073}.ts-panel[data-v-09f21e85]{position:absolute;z-index:50;top:calc(100% + 4px);left:0;min-width:240px;max-height:320px;overflow:hidden;display:flex;flex-direction:column;background:#fff;border:1px solid #d9d9d9;border-radius:8px;box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.ts-search[data-v-09f21e85]{padding:.5rem;border-bottom:1px solid #f0f0f0}.ts-search-input[data-v-09f21e85]{width:100%;padding:.375rem .5rem;border:1px solid #d9d9d9;border-radius:4px;font-size:.875rem;outline:none}.ts-search-input[data-v-09f21e85]:focus{border-color:#1677ff}.ts-toolbar[data-v-09f21e85]{display:flex;gap:.5rem;padding:.375rem .5rem;border-bottom:1px solid #f0f0f0}.ts-tool-btn[data-v-09f21e85]{padding:.125rem .5rem;border:1px solid #d9d9d9;border-radius:4px;background:transparent;font-size:.75rem;color:#000000a6;cursor:pointer;transition:color .15s,border-color .15s}.ts-tool-btn[data-v-09f21e85]:hover{color:#1677ff;border-color:#1677ff}.ts-tree[data-v-09f21e85]{flex:1;overflow-y:auto;padding:.375rem 0}.ts-node[data-v-09f21e85]{display:flex;align-items:center;gap:.375rem;padding:.375rem .5rem;cursor:pointer;font-size:.875rem;color:#000000e0;border-radius:4px;margin:0 .25rem;transition:background .15s}.ts-node[data-v-09f21e85]:hover{background:#f5f5f5}.ts-node.ts-tree-line[data-v-09f21e85]{position:relative}.ts-node.ts-tree-line[data-v-09f21e85]:before{content:"";position:absolute;top:0;bottom:0;left:8px;border-left:1px solid #d9d9d9}.ts-node.ts-tree-line[data-v-09f21e85]:first-child:before{top:50%}.ts-node.ts-tree-line[data-v-09f21e85]:last-child:before{bottom:50%}.ts-node.ts-tree-line[data-v-09f21e85]:after{content:"";position:absolute;top:50%;left:8px;width:12px;border-top:1px solid #d9d9d9}.ts-checkbox[data-v-09f21e85],.ts-radio[data-v-09f21e85]{display:inline-flex;align-items:center;font-size:.9375rem;color:#1677ff;flex-shrink:0;width:16px;justify-content:center}.ts-node-arrow[data-v-09f21e85]{display:inline-flex;align-items:center;width:16px;font-size:.625rem;color:#00000073;transition:transform .2s;flex-shrink:0;cursor:default}.ts-node-label[data-v-09f21e85]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ts-node-leaf[data-v-09f21e85]{display:inline-block;width:16px;text-align:center;color:#00000040;font-size:1rem;flex-shrink:0}.ts-empty[data-v-09f21e85]{padding:1rem;text-align:center;font-size:.875rem;color:#00000073}
@@ -0,0 +1,23 @@
1
+ import './widgets.css';
2
+ import './widgets/Button.vue';
3
+ import './widgets/ButtonGroup.vue';
4
+ import './widgets/Cascader.vue';
5
+ import './widgets/Chart.vue';
6
+ import './widgets/DatePicker.vue';
7
+ import './widgets/Form.vue';
8
+ import './widgets/Incomplete.vue';
9
+ import './widgets/MultipleChoiceQuestion.vue';
10
+ import './widgets/NumberInput.vue';
11
+ import './widgets/Quiz.vue';
12
+ import './widgets/RadioGroup.vue';
13
+ import './widgets/Select.vue';
14
+ import './widgets/SelectMulti.vue';
15
+ import './widgets/ShortAnswerQuestion.vue';
16
+ import './widgets/Slider.vue';
17
+ import './widgets/Switch.vue';
18
+ import './widgets/Text.vue';
19
+ import './widgets/TextInput.vue';
20
+ import './widgets/TreeSelect.vue';
21
+ import './widgets/Widget.vue';
22
+ export { default as MarkdownUI } from './MarkdownUI.vue';
23
+ export * from './widgets/index';